8,451 Commits over 2,131 Days - 0.17cph!
Actually revert that commit for now because it breaks things in client/server only modes.
Undone some item serialization
Converted PlayerBelt (untested)
Converted PlayableCharacterInventory
Ported the rest of the serialization methods. all untested.
Character conversion work. See notes above 'Action subLateUpdate' in Character.cs for more info.
Character still has a bunch to do but not kinda works. You can walk around. Switching the default spawn to character instead of spectator.
Needed to add some #if SERVER flags around serializing to remove errors when in Client-only mode. We may be able to remove these later. Also fixed a bug in SingleUserInteractableEntity.
Character interface stuff
Connection token provider.
Moe conversion. Belt seems to be broken in particular. I can send 236 bytes out and only get 2 bytes back. Not serializing to ItemContainer sub-entity maybe?
Character state send (see Character.Server changes). Still need to update it to not use the ProtoBuf-based CharacterState object.
More stuff. Things a bit broken right now
Revert my serialization changes to health and belt as they seemed to break things. Not sure why yet.
Fixing up errors in C/S only modes. Unfortunately means a few #if defines are back in for now.
Fixed some deserialization errors.
Collision masking for twin entities.
New singleton classes that support two copies of the same singleton on listen servers, one for server and one for client.
Reducing the server/client split singleton types to one for simplicity. This should be enough for now at least. In summary:
- The old singleton types are fine if you're only going to have one even in listen server mode
- If you're going to have one on client and another of the same type on server, use ServerClientSingleton
ItemManager and everything that uses it converted to the new ServerClientSingleton. HeldItems not showing up anymore, need to work out why.
You can use ItemManagerClient or ItemManagerServer calls if you KNOW method calls will be be server or client origin specifically. If you're not sure which it'll be called from, methods in the base class let you pass an isServer bool.
Fixed problems with helditem spawning
Fixed gun issues stemming from itemcontainer deserialization
Working on per-level scripting stuff. Looks like lots of changes but a lot of it is renaming.
Spawn points work again + some other work.
Change load order so city stuff that's spawning can use the managers.
- Changed mission global observer system to one that only affects the mission runners
- NPC manager stuff
Note about testing the mission watching methods if/when missions return