1. It empties from the top down now.
2. It uses less "max power" now.
3. Entity items dropped by the filler last 20 ticks.
It still works very well (better in fact) as a clearing and building
tool, but it's not a mining tool any more.
With thanks to the Mindcrack crew for demonstrating it's obvious flaws.
Eliminates some client-server sync issues (given that the TE alerts server).
Also enables things like Factorization Barrels to update their item count.
PipedItem IDs reduced to Short.MIN - Short.MAX to shave bytes off the
packet size. It could in theory be reduced to a byte and changed to a
per pipe ID, but that would require a larger rewrite.
The packet no longer send the pipe location and instead derives the pipe
location from the item location.
In total, 13 bytes were removed from the item packet size.
Also a number of cpu optimizations were performed, mainly by using more
appropriate collections and cleaning up some simple but often called
functions.
By increasing the number of display stages to 100, I was able to easily
map internal power to display stage by sending a byte representing the
display stage rather that the amount of power in the pipe. This allows
me to reduce the packet size in half by converting from Shorts to Bytes.
Additionally, I created an alternative display list that uses a red
texture to indicate that pipe is nearing maximum capacity.
Unfortunately, this still gives no visual cue that a wooden pipe is
about to explode, becasue for some reason wooden pipes don't render the
power they contain when connected to an engine. This should probably be
rectified in the future.
column above the target on each target hit. It forces the list to recompute only if it finds a block.
Behaviour is almost identical to before, but should be a lot more efficient in terms of computing resources.
Gate GUI gets it's state from the server
SuppressWarnings on ItemGate
failonerror for build.xml to prevent packaging bad jars
Gate GUI now uses boolean array for indicators which is updated via
progressBar