* Add dual interfaces to supported P2P list
* Fix the AMC eating a static p2p without changing type
* Move packet data into a dedicated package in network
* Remove unused classes
TransportPlayer -> It's no longer allowed!
AEPartLocationMessage -> Superceded in the next version
LinkException -> Never used.
* Rewrite the network code
Performs major changes to the structure of how netcode is laid out.
1. Move packets to their own package and rewrite them.
2. Move methods from P2PUtil to GridServerCache, which will serve as the
main channel for client <-> server communication.
3. Remove P2PCache - merged with GridServerCache and ModNetwork.
Specific packets of note:
1. S2CListP2P has been renamed to S2COpenGui, as that was its original
intent. It is only sent when the memory card is used. Use
S2CUpdateInfo to send only a list of changed P2PInfos (see below).
2. P2PLocation - This is used to store p2p location information and is
the preferred data structure to send across the network. True, it
has more data to be sent over the net, but it ensures that hash
collisions don't break the card's functionality. Most packet types
will use this for operations.
3. P2PInfo - This is used to handle sending updated p2p information
over the net. When P2PLocation does not provide enough info (such
as when connections are dirty)
* Finishing touches to the refactor + rewrite
* Change shown type when changing P2P type
Because Sampsa wanted it
* Remove debug
* Update buildscript
* Use CityHash64
Should fix an insidious bug where two p2ps could have the same hash if the
first p2p has coords (x=a,y=b,z=c,facing=F,dim=D) and the second p2p has
coords (x=-a-1,y=b,z=c,facing=F,dim=D). This is because using XOR with a
negative coord causes it to flip in two's complement.
* Add support for new static p2p types
Add some error messages too
* Pre-merge cleanup
* Move mode change button to the side.
- Mode change now on the side w/ resize button
- Some code cleanup
- New description (en only for now), texture.
* Update ae2 to beta-204
* Add OC/Pneumaticraft support
* Create a proxy for client/server
Mostly for convenience of getting icons and other GUI elements.
* Large refactor to make way for "refresh" functionality
Features:
- New "refresh" capability (no button available yet) so the
client can have an updated GUI.
- The player can now control which types to be queried/displayed.
A great number of changes were made to allow this to happen to the mod
internally, as started from the last commit.
- P2PCache has been revisited. Instead of being a one-time instantiation,
the cache can now be queried from the client many times.
- Network has changed. Instead of sending an ItemStack (as previously), we
keep that info locally and send a byte only instead, so that should save
some network traffic.
- New packet for sending the refresh signal has been made. Other packets
send a "type" discriminator to make way for the typing feature.
Because I was lazy and didn't separate the commits, here are some other
changes made:
- Cleaned up a bit of the code to make it easier to read. This includes
code I've written before...
- Some name refactors. Some of the names were (mine) were quite frankly,
bad.
Signed-off-by: Firenoo <49818773+firenoo@users.noreply.github.com>
* More cleanup + texture for type change
Some more code cleanup (spacing and labels)
* Disable ability to use copy outputs when output selected
Because it doesn't work, and has strange behavior, this is being disabled
for now (possibly forever).
* Remove unused method + remove unused imports
* Add unbinding mode
+ tooltip explanation
* Add type to filter options
* Add enUS localization
* Add refresh button, and prevent excessive packet spam.
Packets are sent only once every 250 ms to avoid DDOSing someone.
Accomplishes this by adding a new scheduled executor.
* Add the ability to change P2P types from the GUI
* tooltip was actually lying, now it's lying less
* Fix CME from resizing GUI, and add patterns to drops when changing P2P interface type
CME caused by iterating over the button list. Clicking on resize button forces
the GUI to reset, so the button list changes and causes the CME.
P2P interfaces now drop their items if changing their type from the GUI.
* Make the refresh icon look a little less like MSPaint
Also minor change to tooltip when changing types.
---------
Signed-off-by: Firenoo <49818773+firenoo@users.noreply.github.com>