Commit graph

1062 commits

Author SHA1 Message Date
CovertJaguar
f19ab165ef Oil Tweaks
Fix Oil being consumed by Fire.
Reduce Oil Biome oil spawn bonus: 40x -> 30x.
Nerf Ocean Oil Field spawns a bit.
Fix Oil on Water, Closes #919
2013-06-10 03:27:58 -07:00
Christian
0bb43992d7 Attempt to workaround trigger api change for backward compatibility 2013-06-08 13:37:41 -04:00
Krapht
5662741cd2 Remove old double-chest detection code and use the vanilla approach. Fixes #914 2013-06-07 02:17:31 +02:00
Player
f04af071b8 Fix pump not passing through air blocks 2013-06-01 02:11:38 +02:00
CovertJaguar
fa3d0bb7b6 Smarter space check for buffer. 2013-05-29 09:49:53 -07:00
CovertJaguar
e43cf0a2b6 Add legacy migration to AWB
This should prevent wiping of the crafting grid on upgrade.
2013-05-28 23:16:56 -07:00
CovertJaguar
02e2fadcf4 Tweaks and code cleanup 2013-05-28 22:54:59 -07:00
CovertJaguar
8a6022962c Name crafting fake players just in case 2013-05-28 20:21:22 -07:00
CovertJaguar
f581682158 Added some comments 2013-05-28 19:00:24 -07:00
CovertJaguar
2451b6925f Complete reimagining of the ACT
Renamed "Auto Workbench" to reduce confusion with the "Advanced Crafting
Table".

Once again I barrowed liberally from Railcraft. This time from the
Rolling Machine. You will recognize the new GUI.

Auto Workbenches are 100% compatible with vanilla Hoppers, or whatever
you want to use to interface with it. It no longer implements
ISpecialInventory at all. Even RP2 would work with it now.

Implemented the same "Sample Output" vs "Real Output" design that the
Rolling Machine uses. If there are enough items to craft multiple times,
it will craft automatically. But if there are only enough items for one
craft job, you must click the sample output slot to start the process.
Separating the display from the output helps reduce the complexity of
the code by a large factor.

Banned all items that can't stack or that have containers from being
used in the Auto Workbench. Supporting these types of items is the major
reason the previous version was so buggy. The Advanced Crafting Table
does a much better job with that kind of thing, use it instead.

Crafting now has a time cost. It take 256 ticks to craft an item. Unlike
the Rolling Machine, it DOES NOT require power.

Removed ability to pull from adjacent inventories. Its laggy, complex,
and unnecessary now. If you need more capacity, use a Hopper or Chute.
2013-05-28 18:50:03 -07:00
CovertJaguar
95114cf79a Added BiomeDictionary support to Oil gen
Can't believe I didn't see this thing sooner.
2013-05-28 05:11:05 -07:00
CovertJaguar
7e8bcadbb2 Added BiomeDictionary support to Oil gen 2013-05-28 04:53:19 -07:00
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
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
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
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
CovertJaguar
0d392a1b6e Major Backport of Button code
I recently did a major overhaul of Railcraft's button code for some
upcoming features. Figured I backport it to Buildcraft as well.

Texture information was abstracted into an easily swapped object.
Multi-Buttons can now have different textures for each state.
Added tool tip support for all buttons (with mouse over delay!).
Added textures and states for a "Lock" Multi-Button.
Greatly reduced code duplication.
2013-05-15 04:17:26 -07:00
CovertJaguar
8721cb9719 This is how you make Oil Burn
@viliml seriously test your PRs, BlockFluid intercepts the fire methods

I also made Oil burn forever like Netherrack.
2013-05-13 18:54:04 -07:00
Krapht
232494a662 I think buildcraft has enough explosions already. ref #850 2013-05-13 22:08:53 +02:00
viliml
0de81a36ea Make still oil flammable and prone to explode(like real oil) 2013-05-13 20:43:50 +02:00
viliml
8d98cba857 Make flowing oil flammable and prone to explode(like real oil) 2013-05-13 20:42:15 +02:00
target-san
a8c3d9400b Added NBT persistence for pipe wires and redstone broadcast. Allows logic circuits with memory 2013-05-13 09:18:32 +03:00
Player
5617b67ef4 Prevent client crash from invalid pipe items. 2013-05-12 10:22:35 +02:00
SirSengir
722a3837bf 3.5.2 build changes. Removed SidedInventoryAdapter.java to cut down on helper classes. 2013-05-12 08:19:28 +02:00
Player
eb836c3ad0 Actually only use the slots for the side we're extracting from... 2013-05-12 04:57:03 +02:00
CovertJaguar
d2711c7427 Merge pull request #841 from KingLemming/master
Updated Liquid Pipe Connection Logic
2013-05-11 19:45:38 -07:00
Player
cdc86c0591 Fix inventory size calculating being 1 too low 2013-05-12 03:58:39 +02:00
King Lemming
092e40fb8f Fixed Liquid Pipe Connections for updated Pipe Connection logic.
Signed-off-by: King Lemming <kinglemming@gmail.com>
2013-05-11 14:34:05 -04:00
CovertJaguar
6e76d4bec5 Filler Flatten no longer stopped by flowers
Closes #769
2013-05-11 03:19:26 -07:00
SirSengir
fa38e293e5 Rewrote vanilla inventory handling to use dedicated classes. 2013-05-11 11:40:46 +02:00
SirSengir
02c3b19ea9 Removed unused SurroundingInventory.java. 2013-05-11 11:06:42 +02:00
SirSengir
15c16d433c Removed unused InventoryUtil.java. 2013-05-11 11:04:58 +02:00
SirSengir
afdaa18868 Minor cleanups to ISidedInventory handling. No special casing for vanilla furnace required anymore. 2013-05-11 11:03:38 +02:00
immibis
88f336c799 Call isStackValidForSlot when inserting. 2013-05-11 16:55:41 +12:00
immibis
cede00e162 Vanilla ISidedInventory support for wooden pipes. 2013-05-11 16:44:34 +12:00
Krapht
a40e7c5365 Merge branch 'BCPlug' 2013-05-09 16:25:41 +02:00
CovertJaguar
f578aa0e2c Possible fix for Power Pipe load issues
Closes #829
Closes #717
2013-05-09 05:11:42 -07:00
Krapht
cd08b69662 Added additional render component to plug, finally removed old code 2013-05-08 20:24:40 +02:00
Andrew Meehan
b1064b659f uodated tilehopper to return true rather than attempting to scan the inventory attached 2013-05-08 10:33:06 -04:00
Andrew Meehan
d559946562 implimented isStackValidForSlot to return true if valid to allow for automation inserst (mainly Applied Energistics)
Signed-off-by: Andrew Meehan <andrew@meehan.me.uk>
2013-05-08 10:18:29 -04:00
Krapht
a9636aa119 Make pipes not connect if either has a plug, fixed issue with pipes not recalculating its connections on plug placement 2013-05-07 21:32:54 +02:00
Krapht
fdd5648a05 Added add/remove of plugs, fixed plug render sync issue, fix renderer, prevent render of gate on plugged sides 2013-05-07 20:48:19 +02:00
Krapht
b39802f210 Added recipe for plug 2013-05-07 19:09:22 +02:00
Krapht
b1ed48da37 Added plug item and item renderer 2013-05-07 19:03:03 +02:00
Krapht
6a6ba168c7 Added initial rendering for plugs 2013-05-07 18:35:27 +02:00
Krapht
2324400ea0 Save/Load + netsync for plugs 2013-05-07 18:23:10 +02:00
viliml
25c5439637 Lower engine heat 10 times
I don't think a temperature of 10000°C or 0°C doesn't make sense. This way it will at least always be under the melting point of iron and above the freezing point of water.
2013-05-07 18:57:01 +03:00
Player
1bc52bc16f add equals to BlockIndex 2013-05-06 15:21:17 +02:00
Player
fddf865298 optimize TilePump.initializePumpFromPosition by using a HashSet instead of a TreeSet for markedBlocks 2013-05-06 14:47:10 +02:00
Flow86
6687d8baf8 add isPipeRegistered for mods to check if pipe-id already taken. 2013-05-06 14:10:48 +02:00
CovertJaguar
e1d88a7d8f Added config option to disable Oil Springs
And made the code ID Resolver compatible.
2013-05-05 06:41:29 -07:00
CovertJaguar
842e520b60 Pipes with missing info are now deleted
Closes #782
2013-05-04 20:25:04 -07:00
CovertJaguar
4ee70e100b Merge pull request #825 from viliml/patch-2
Add LiquidMotionEvents to waterproof pipes
2013-05-04 13:56:17 -07:00
SirSengir
8f15b6371c Reduced Forge requirement. Last one for 1.5.1 should be fine. 2013-05-04 19:34:26 +02:00
viliml
95323927fe Add LiquidMotionEvents to waterproof pipes
Why would it exist if it was never to be used?
2013-05-04 18:07:45 +03:00
CovertJaguar
f35d63ecb4 Fire is now a soft block. 2013-05-04 00:16:33 -07:00
CovertJaguar
4d601e976e More Oil improvements and tweaks
Added a 50% bonus to well gen in biomes that spawn Lakes.

Added Taiga to biomes that spawn Oil Lakes (waves at Canada and
Siberia).
2013-05-03 13:56:41 -07:00