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.
There existed a race condition where either the client could pass an
item from one pipe to another (with intact ItemStack NBT data) or a
packet could arrive from the server to inject the item into the pipe
(without NBT data). This resulted in incorrect Icons being occasionally
displayed for a moment for Items that use NBT to determine the Icon
(Forestry Bees/Trees).
To eliminate this race condition, all Traveling Items are now cached
(weakly) and ItemStacks are no longer sent as part of the Traveler
Packet. The client must instead request the ItemStack from the server.
The bonus being that the ItemStack (NBT and all) needs only be requested
when it first enters the network.
This also has the affect of further reducing bandwidth usage by Item
pipes, though it should be noted that Item pipes where already the least
bandwidth intensive pipe.
Additionally I rewrote the Item Grouping code. I'd never looked at it
before, but I figured I should make sure it properly maintains the pipe
state after grouping. What I found was 200 lines of wtf code that was
horribly outdated and broken. I replaced it with 20 lines of code that
are less dependent on implementation details of how pipes work. -.-
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
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.
They have been replaced by TravelingItem. Which means yes, I broke the
various pipe hooks again.
Additionally IPipedItem and IEntityPassiveItemContribution have been
deleted. Contributions were replaced by a simple NBTCompoundTag field in
TravelingItem (which is essentially all that contributions were anyway).
PipeLogic is now only used by Iron and Wooden pipes. All other pipes use
the empty PipeLogic() class.
Pipe connections are now handled by the new PipeConnectionBans class.
And fixed a issue with the PowerProvider casting objects to TileEntities
that aren't TileEntities. Fixed by adding a getWorldObj() function to
IPowerReceptor.
PowerFrameWork is gone.
PowerProvider is final.
Can have multiple PowerProviders (one for each block side).
PowerProviders can either accept power from pipes or they can't, defined
in constructor.
Removed a bunch of excess code that just cluttered the API.
Ported Pipe textures (Pipe "api" changed for submods)
Ported Wire textures
Updated pipe sync to accomodate Icons
Updated all pipes to new "api"
Nerfed Herobrine
Fixed for recent MCP update in forge as well. Refreshed the TileEntityPickupFX code
from the vanilla source. Easier to diff against that source too now.
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