Commit graph

1388 commits

Author SHA1 Message Date
CovertJaguar
56567d73af Made Inv Iterator subclasses private 2013-05-28 04:52:58 -07:00
CovertJaguar
e3420842fe Transactor Optimization
It was an O(n^2) operation to insert an item. Now its just O(n). The
functions for checking to see if a stack is valid in a slot are
expensive and should never be called more than once per slot, let alone
n^2 times (where n is the length of the inventory).

Additionally, by wrapping inventory in a slot iterator, I was able to
eliminate the need to handle FSided and VSided differently from
IInventory.
2013-05-27 20:06:27 -07:00
CovertJaguar
0a18ae34ff Adjusted Shift code to support Phantom slots
Yes, this also was stolen from Railcraft. Its also much more robust than
the code BC was using.
2013-05-27 18:08:17 -07:00
CovertJaguar
6d6e05044c Transactors should obey isValid() for partials 2013-05-27 16:37:51 -07:00
CovertJaguar
6169b8b9b5 Clean up var names in Laser Table 2013-05-27 15:56:16 -07:00
CovertJaguar
a989d00223 Various fixes to the Laser Crafting Table
It no longer eats Golden Tickets or dupes items, yay!
2013-05-27 15:52:27 -07:00
CovertJaguar
f1fcd6a0db Added RC's Phantom Slot System
And replaced BC's Advanced Slot System in Advanced Crafting Tables,
Emerald Pipes and Diamond Pipes.

The advantages of the Phantom Slot System is that it uses the same
Mojang code for net sync that normal Slots do. This results in much
simpler code and the slots can be treated just like any other inventory
slot instead of all the special case code that Advanced Slot does.

The Advanced Slot System is still used in several places (Assembly
Tables, Refineries, etc...), Gates but in these cases the Slot often
contains non-ItemStacks. So I'm not going to touch them for the moment.

Additionally, I cleaned up the names of some of the classes in the
Silicon package.
2013-05-27 14:19:51 -07:00
CovertJaguar
0723ab4b17 Minor build.xml jar name change 2013-05-26 10:37:15 -07:00
Krapht
3d460705ea Fixed combustion engines not dropping its inventory when broken 2013-05-25 10:15:44 +02:00
Krapht
3f7dc90e04 Made Combustion engines only accept Liquid containers and Ice 2013-05-25 09:09:50 +02:00
Krapht
2606aaccf9 Made the stirling engine accept only fuel-type items 2013-05-25 08:58:08 +02:00
Krapht
47cbc9fab0 Removed isStackValidForSlot from TileBuildCraft and moved it to subclasses. Fixes #878 2013-05-25 08:52:07 +02:00
Christian
9a68dcc304 Fix canonical liquid if there isn't one. gah! 2013-05-24 22:57:53 -04:00
CovertJaguar
a70eacc7fc Make addToRandomInventory type safe
Better, Faster, Stronger

Closes #877
2013-05-24 19:40:42 -07:00
Flow86
3cf2ff96d0 fix to addToRandomInventory not providing the correct side
fixed some space/tabs things (exactly eclipse did it for me...)
fixes #875
2013-05-23 14:13:08 +02:00
CovertJaguar
3e2a232f47 Pipe Chunk Boundary Optimization
Liquid and Power pipes will no longer query unloaded chunks for
neighbors. Item pipes however will continue to do in order to prevent
item spewing.
2013-05-22 12:10:57 -07:00
CovertJaguar
91e7edc256 Merge branch 'master' of https://github.com/BuildCraft/BuildCraft 2013-05-22 12:06:53 -07:00
CovertJaguar
b142a11917 Better Error for Pipe Render 2013-05-22 11:57:57 -07:00
Flow86
fb3cac293d fix smp-crash on pipe with facade removal
fixes #871
2013-05-22 09:07:51 +02:00
Flow86
a237829c3a cleaned up format and var names as requested by @CovertJaguar at #872 2013-05-22 08:11:05 +02:00
Flow86
bece4fb77f Merge pull request #872 from viliml/patch-1
Add ISpecialInventory support to gate triggers
2013-05-21 12:10:06 -07:00
viliml
41cb9b04bd Add ISpecialInventory support to gate triggers
Fixes https://github.com/BuildCraft/BuildCraft/issues/356
2013-05-21 19:52:57 +03:00
Flow86
514260078d Merge pull request #868 from target-san/master
Pipe wires persistence between runs: update
2013-05-21 03:23:15 -07:00
target-san
3570f10d41 Added persistence for redstone broadcast. Now it should be possible to create two-gate loops based on redstone signal, though I doubt someone would use this 2013-05-21 08:08:05 +03:00
target-san
098cc8e66d Modified pipe persistence. Only pipe gates can actually broadcast wire signal. And redstone broadcast is generated from only from triggers and only on gates - so no sense to store it 2013-05-21 07:46:54 +03:00
SirSengir
46c0d7deaa Removed old, commented out code. 2013-05-19 23:33:54 +02:00
CovertJaguar
a5bb01d2cb Comment out unused portions of Simplex Lib 2013-05-19 12:27:07 -07:00
CovertJaguar
f32507da07 Some minor optimizations 2013-05-19 03:45:36 -07:00
CovertJaguar
50e08beb82 Merged Oil into Master 2013-05-19 02:54:31 -07:00
CovertJaguar
3cf74d7986 Merge branch 'master' of https://github.com/BuildCraft/BuildCraft 2013-05-19 02:48:02 -07:00
Krapht
104885f934 Disable grass facades 2013-05-19 09:25:38 +02:00
SirSengir
43c904ed02 Merge pull request #857 from immibis/nether-pump
pumping.controlList again.
2013-05-18 10:21:38 -07:00
Krapht
7e98d5e61e Merge pull request #860 from mcrobin4002/patch-1
And remove the builder from the creative tab
2013-05-18 09:37:04 -07:00
robin
41622ab83e And remove the builder from the creative tab
Complete the last commit
(#6653aaa3893da023f350a48bb6fddeba3008e2e9)
2013-05-18 19:25:03 +03:00
CovertJaguar
03b583ce74 Biomes complete
Add Ocean Oil Field and Desert Oil Field biomes. Rare chance of
spawning. I only found a single Ocean Oil Field within 4k blocks of
spawn. But if you find one, you will never run out of Oil, ever.

These two biomes have a 40x multiplier on oil spawn chance.

They can be disabled by setting the biome Id in the config to -1.
2013-05-18 07:37:08 -07:00
SirSengir
05ae8e7994 Organize imports. 2013-05-18 16:17:58 +02:00
SirSengir
6653aaa389 Disable crafting recipe for the builder. 2013-05-18 16:15:56 +02:00
CovertJaguar
7b47ac8743 Update less Oil during gen so we don't crash
The game doesn't really like generating 50 oil wells at once
2013-05-18 07:01:37 -07:00
CovertJaguar
279d729d03 Moved OilPopulate to the worldgen package 2013-05-18 05:44:53 -07:00
immibis
a14a627627 Removed explosions, pumps will just ignore disallowed liquids. 2013-05-18 11:33:57 +12:00
CovertJaguar
f83341ece8 Ditched Chunk Spanning Algo
The chunk spanning gen code turned out to be unnecessary. The real
problem was that the Lake gen code was poorly balanced. That's fixed
now.

I've also added some code to prevent Wells and Lake from spawning on
overly rough terrain. No more wells on the edges of cliff faces for
example. I had to rebalance the spawn chances though. Of note is the
fact that I increased the chance multiplier for surface deposit biomes
from 1.5 to 4.  Distribution balance may need some more work.

Additionally, I've started work on an Oil Field biome, a rare biome that
spawns massive amounts of Oil. Its currently disabled, but the ground
work is there. Next step is creating a suitably sparse Simplex noise
field for the biome replacer.
2013-05-17 10:49:41 -07:00
immibis
2a643d4c45 Added missing class. 2013-05-17 20:03:37 +12:00
CovertJaguar
c5a5d037c9 More improvements
Height is "fixed", but there is still an issue with lakes generate in an
L shape consistently.
2013-05-17 00:12:35 -07:00
CovertJaguar
9e117c0b31 Make Oil physics somewhere between Water and Lava 2013-05-16 19:31:22 -07:00
immibis
645b3a35e6 Added pumping.controlList option.
Also fixed BlockIndex hashcode (massively speeding up pump searches) and added a timeout for pump searches.
2013-05-17 10:48:55 +12:00
CovertJaguar
50df601134 Simplification
Still some kind of bug with the groundLevel var. Many wells are 2-3
times taller than they should be.
2013-05-16 09:52:20 -07:00
CovertJaguar
ee16c288aa An attempt to create a chunk spanning gen algo
This is mostly just a proof of concept, Oil doesn't really need it.
2013-05-16 08:20:50 -07:00
Flow86
8e2613d60a Merge pull request #849 from target-san/master
Pipe wires persistence between runs
2013-05-16 04:04:03 -07:00
CovertJaguar
2705e74ad0 Fixed Typo 2013-05-16 01:59:21 -07:00
CovertJaguar
dd6fc63de8 Some cosmetic fixes for the last commit
Damn tabs!
2013-05-15 04:30:31 -07:00