Blueprint identification has been adjusted a bit in order to make it easier
to have an ordered list. Loading functions are temporary deactivated waiting
for some more insights on the serialization. Server and client databases have
been separated.
This patch changes a bit the behavior of the Library. Instead of being an
item browsing blueprints on the server, it's going to retreive blueprints
built on the server for the client, and then allow the client to send back
its blueprints to the server.
This patch is a first milestone, with functional serialization and
deserialization of a blueprint over the newtork, using the Library as interface.
ClassMapping now supports more advanced behavior, in particlar cases where
the destination object do not exist. It has now a much more comprehensive
documentation. TileNetworkData has been renamed NetworkData, as it's used
for more than just tile synchronization. Some additional markers have been
placed on the blueprints to make progress and identify which areas still
need support.
same system as tiles, and fields selected through @TileEntityNetwork. Improved
the TileLibrary rpc calls to take advantage of this new capability. The RPC
world identification has been fixed as well.
implementation.
Through the process of implementing RPC, a intrusive simplification in the
network message system has been implemented, completely removing the use
of PayloadArray. On top of that, ClassMapping is now much more flexible,
and doesn't need to be provided with a static size anymore, making it closer
to a suitable class for the needs of RPC message passing.
The result of this simplification is also a slight optimization of message
passing, where certain data needed to be passed over the network (for example
on null objects) which is not needed anymore.
With regards to the TileLibrary itself, the implementation is yet pretty
basic, showcasing the use of RPC to retreive a list of strings computed on
the server.
Attempt at improving SafeTimeTracker interface and implement
automatic randomization. If interface is confirmed, other places
in the code will need to be updated to the interface.