Triggers and actions are moving towards more factorization in statements.
Actions will now accept parameters.
Triggers and actions will accept up to 3 parameters.
Parameters will not only be stacks, in particular for pipe wire.
This is supporting in particular the emerald gate implementation, for #1880.
I've done a bit of cleanup in the BuildCraft code by removing any
redundant/unnessecary little things and removing all deprecated
LanguageRegistry methods from main mod classes.
-Added a craftingHandler
-Added "A bit rough around the edges"
-Added "Hard as a rock"
-Added "Is it stainless?"
-Added "No, it isn't made of honey"
-Added "Shiny!"
-Added Integration Table Recipes
-Finished and tested Integration Table
-Re-added all Gate recipes
-Clean up Pipe Wires, Chipsets, etc...
Changes:
-Gate Logic Swap recipes moved from Workbench to Integration Table.
-Pipe Wires condensed into a single Item
-Pipe Wires are now distributed evenly between the gates: Red with the
Basic Gate, Blue with Iron, Yellow with Gold, and Green with Diamond.
Recipes adjusted to match.
As of this commit, Gates should be both craftable and usable again. The
Integration Table is also ready to be used. Gate Expansions are
completely implemented and usable.
Enjoy!
GateKind enum is gone, replaced with two enums: GateMaterial and
GateLogic.
Pulsars and Timers are abstracted into GateExpansions that can be
applied to "upgrade" a gate. (Incomplete)
GateExpansions will eventually be moved to the API so that other can
define new expansions easily.
GateExpansions are not currently serialized or synced to the client.
This remains to be done.
Legacy migration support is included, but untested.
Currently only the base logic texture layer (white/black) are being
rendered. Eventually the material and expansions will each render an
additional texture layer onto the gate.
Quartz gates act like gold gates with 2 exceptions:
They can connect to all pipe wire types.
There are 3 additional gate triggers that function as timers.
The timers have a short, medium, and long mode which can be set via config.
Modified Logemerald:
-Added ability to paint items as they are extracted
-Renamed to Emzuli, texture and recipe changed accordingly
PipeEvents:
-Added PipeEvents a replacement for Hook interfaces, precursor to 1.7
Pipe API
-Implement methods with signature "eventHandler(PipeEventClass event)"
to receive events
Widgets:
-General improvements for use as a button
This is an action sensitive extraction pipe. The pipe can be configured
with 4 different items and actions will decide which one to extract from
the connected inventory.
Changes:
-The "crafting grid" is gone.
-API completely reworked
-Patterns can be "stateful", this could bring major improvements to the
scanning algorithms if utilized
-You can change the pattern via Gate Actions
-Various peripherally related GUI framework changes
The Daizuli Pipe is similar to a Iron Pipe, except it only routes
matching colored itemstacks that have been painted by a Lapis Pipe.
The color can be set via Gate Action or via shift-click with a Wrench.
This pipe paints passing items pretty colors.
TODO:
Add support to Diamond Pipe for painted items.
Add actions to set the Pipe color.
NOTES:
This required way more changes to the Pipe code that it should have.
Killed Engine class, merged into TileEngine and subclasses.
Converted to Forge rotation API.
Split heat from stored energy and set proper temp bounds.
Rewrote IronEngineCoolant API, changed to degree based temp reductions
(its 0.0025 times the previous values). Added support for solid coolants
(they have to melt into a liquid coolant, like Ice to Water).
There is a commented out alternative implementation for constant power
output instead of pulsed.
Requests Energy: Activated when the pipe has an active power request.
Use to allow your network to respond to demand dynamically.
Energy Overloaded: Activated when the pipe turns red, in case anyone
wants to know when that happens.
Split inventory into input/output sections.
Added support for retrieving ingredients from neighboring inventories.
Yes, this means crafting chains are possible.
Various other minor tweaks to when it requests power, how it decides it
has everything it needs to craft, etc...
Item and Power.
Item Pipe won't connect to Stone or Cobblestone and has half the
friction of Stone.
Power Pipe takes the place of Gold (64 MJ/t) and bumps Gold and Diamond
up to 256 MJ/t and 1024 MJ/t respectively. Expanding the upper tier
power distribution capacity.
Various textures adjusted to keep pipes distinct.
This pattern is basically the old Flatten pattern that would clear all
the way to the sky.
Recipe
GGG
GGG
BBB
Flatten got a matching recipe:
GGG
BBB
BBB
Explosions are gone, loss over distance is gone.
Added two new Power pipes, Cobble and Diamond.
All pipes have much smaller max throughput:
Cobble = 8 MJ/t
Stone = 16 MJ/t
Gold = 64 MJ/t
Diamond = 256 MJ/t
The power display will turn red if a pipe has hit its max capacity. You
can use smaller pipes to throttle certain parts of your power net.
Machines are more lossy now to make up for the lossless pipes. Expect
low power draws even when idle.
Also added on/off Gate action support to lasers and ACTs.
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.
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.
Oil Lakes can no longer only spawn in sand. Added IMC calls for Lakes
and excluded Biomes.
"oil-lake-biome" and "oil-gen-exclude", both take the BiomeID as an
argument.
Increased specular highlights on Oil texture, you shouldn't have to jump
in the pool to tell the difference between lighting glitches and oil
anymore.
Oil Lakes now have 50% chance of being 2 blocks deep. Improved gen to
prevent floating trees, etc.
Oil Wells should no longer gen in mod added trees.
Spawns an infinite Oil Spring at bedrock under 25% of large Oil Wells.
This Spring slowly produced more oil over time.
More balance testing needed, but I need to fix that damn Redstone Engine
bug first.