This version isn't backwards compatiable because of changes in the CompressedStreamTools. I don't know if you want to push an update to the 5.0.x branch, but I thought I'd do it, just in case you did.
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.
Closes#1246
Its now much easier and more consistent to remove specific addons from a
pipe. Sneak-click with a gate to remove a gate, sneak-click with a
Yellow Wire to remove a Yellow Wire, etc...
Plugs can now be placed easily and simply on any side of the pipe in any
configuration.
Selection Box now highlights the part of the pipe you are pointing at.
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.
Mainly just cleaned up the code and replaced the TreeSets with Deques.
Also made it so the pump will only keep the pumping the same type of
liquid it started on. If you wish to reset it to pump any liquid hit
with a wrench and the next liquid it pumps will be the new filter.
Added a alternative payload system for update packets that uses data
streams instead of arrays. Note: It is not compatible with
@TileNetworkData so you will have to handle all the data yourself.
Also added a TankManager class to contain commonly needed code for
tanks: Serialization, TankInfo, Network Data, etc...
The Refinery still needs a fair bit of work, but its mostly limited to
the GUI filter code. That needs a complete rewrite of some kind since
Fluids aren't items and can't be rendered as such.
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.
Made the quarry much more scalable
Power pipes now have a risk of exploding if they don't have anywhere to dump their power to
Power pipe needs some work to seize rather than exploding