- More / better static Game properties
- Instance now initialized on _EnterTree
- Players moved in from MultiplayerManager
- MultiplayerManager renamed to Multiplayer
- LocalPlayer now static
- Minor preparation for multiple workshops
- Add Players script for easy enumerating
of players and getting them by peer id
- Simplify Player.PeerId and .IsLocal
- Remove unnecessary Synchronizer script
("Player:velocity" property specified manually)
- Add RpcMode and TransferMode enums to GlobalUsings
- Add a bunch more extension functions
- Add RPC class to send RPCs in a fancy, type-safe way
Relating to item synchronization:
- Grid now assumes Grid-local transforms etc
- Item functions to pickup, place and throw
- This is no longer handled by PickupController
- ItemManager is used to relay RPCs due to a bug
- Move snapping logic to Grid class
- Add Grid.CanPlaceAt to check for item overlap
(no test for collision with physics-enabled items)
- Change outline color depending on if can place
- IsLocal is now false by default and
set in the editor for the local player.
- PeerId is calculated from and sets the node's
Name instead of having its own backing field.
- Add GetPlayerByPeerId to MultiplayerManager.