5,272 Commits over 1,492 Days - 0.15cph!
Assign bed to apartment owner after the furniture is spawned in the room (when room is rented)
Use the new method in SleepingBagCamper too
Refactor SleepingBag so code can reassign bags outside of RPC calls
Set upkeep terminal to only accept scrap (in the prefab)
Fix NRE from static list of client apartment buildings not being cleared when disconnecting
- put it inside EntityRealmClient so it's cleared along the main list of entities
merge from fix_baseentity_query_nre -> main
Call BaseEntity.Query.Server.Remove() earlier inside DoServerDestroy so if it does throw an NRE later in OnServerDestroy it's still removed from the lookup grid
Fix BaseEntity.Query not checking if the entity is null / destroyed (to prevent entities that fail to be destroyed from breaking queries)
Fix DeepSeaManager using Destroy() when killing the deep sea after it's disabled instead of Kill()
- probably not the cause but better to be safe
merge from main -> apartment_complex_monument
Fix `immortalProtection` static field inside ProtectionProperties not being cached on the server (because it was only calling IsImmortal() on client in the item info panel
- fixes server apartment entities not being set immortal
merge from apartment_complex_monument/prototype -> apartment_complex_monument
▇ ▊▆▅▅ ▉▅▊▄▇ ▆▇▅▋▆▌▍▍ █▍▆▋ ▉▅▊▆ ▉▅▊▌▌▅▇ ▌▅▅ ▍█▉▍▆
▇ ▄▌▋ ▆▌▆▊▋▉▋ ▋▌▋▌▉▅▊█ ▆▍▆▆█ █▍▋▍▄▆▅▊▉ ▌█▄▇▄▅ ▌▋▆▌▆▆▊▄ ▄▆▉▆▇▍▅▅ ▅▌▇▆▆▄▇ ▊▉█▅▆▍▆▌▆▄ █▊█ ▋█ ▍▅▌▍▋▋█▄ ▋▊▇▊ ▇▆▍▌▍ ▌█▉ ▆▌▅█▄ ▋█▇▆▌▇▊▇▋▌▅█▇ ▆▉▅ ▉▊▉▌ ▇▌▉▇▆▉▌▄ ▅▅▅▄▇▌▍▆▅▌
Fix NRE in PhoneController.Server_AddSavedNumber()
Fix apartment upkeep terminal not being immortal
Prevent players from reskinning boxes inside monuments
- fixes being able to reskin apartment furniture
Remove logging "Waiting for player to leave"
update apartment_complex_monument/prototype
merge from main -> apartment_complex_monument
update apartment_complex_monument/prototype
merge from optimize_train_track_meshes -> main
Fix IsAnyLODVisible() not being inverted in OnMeshJobFinished() causing rail meshes to be always deleted instead of only deleted if the LOD was hidden before the mesh generation job finished
Fix filter to only generate lowest LOD only checking if filter is null, not if filter is empty
- fixes rivers + roads + train track meshes not generating at all
merge from main -> optimize_train_track_meshes
▍ ▍▍▊█▍█ ▋▆▊ ▍█▄▌▋▇▉▊▇▇ ▄▊▌▉▊▌▊ ▍█ █▄▇ ▋▆▊ ▊█▌▅█▌▅▇▉▊▄▉ ▍▉▌▊▌ ▌▉█▆ ▅▇▍ ▊▆█▇▋ ▉▊▊ ▋▆▅▌▋█▌ ▉▌▇▆▍▊▆ ▋█ ▉ ▋▆█▆▋ ▇▉▄▍█▅▇ ▌▉ ▍▍█▋
▇ ▊▆▇▄▄▍ ▆▅▆▆▊▇▇▄▋▅ ▍▆▍▌█▊▆ ▉▅▌▇ ▅▊ ▊▄▇ ▆▆▊▊▅▍▍▄▌▋▇▄▅▆▌█▊▉▇▅▇▆▍▍▄▋▌▆▉▄█▉▅ ▆▅▄█▄▍▄ ▇▍▄▊▆ ▅█ ▍▍▍█▄▇▍▄▍▇ ▊▉▇▅▊█ ▋▆▌▍▍▄▌▍ ▊▉▇▋ █▆▆▋▍▇
▇ ▄▌▍▅ ▇▄▆▌▉▋▄ ▍▇▊█▇▋▆▆▊▍▆▉▇▌▄▅ ▉▄▍▉ ▉▅▉▉▍▌▊▋▉▆ ▊▅▄█▉▌
▇ ██▉▆▉▅ ▆▊▋▇▉▉▆▆▆█ ▉▅█▇ █▍▌▆ ▊▇▌▄█▆▄▋▅▌█▇ █▆▊▍▋ █▍▍▊ ▌▌▄▅▅ ▉▆ ▉█▌█▊▇▊
▋ ▅▋▇▋▋▋▋█ █▉ ▋▌▋▉▉▄▌ ▅▄▆▆▋█ ▅ ▍▉▆▋▊▌▋▇▄ ▉▇█ ▋▅▄▆█▍▌ █▋ ▉▌▍▄▍▅█▇▆▉▇▆▆▌▆█▍▌▉▌▇▌▆▅▅▆▋▄▌▋▇▍ ▄▇█ ▋▇▋▊▋▆▄▋▍▄▅▉▇▌▋▉▄ ▆▊▇▋▉ ▋▍▋▇██ ▉▆ █▆▌▇▉▅▆ ▆▌▉▇▄▆▅▍ ▋█▆ ▄▆▆▊█▍▋▅▉ ▋▍▇▌▉▆▋ ▊▍▊▍▇ ▊▆ ▋█▄▄▊▇▊ ▍▍▌ ▅█▆▍▋▌▍▊▇▊█ ▇█▊▌ ▋▉▉▄▄▉▌█
▋ ▉▇▌▌▍▌ ▋▆▊▄▅▉▋▅▇ ▆▊▄▆ ▍▋█▋▍▊▋▄▆▄ ▅▆ ▉▄▌ ▇▌█▋▍▊▍▋▊▇ ▄▌▋▋▋▋▆▄▍▌▄▅▊▍▆▅▋▉▆▉▌▊█▌▌▉▌▌▅▊▄▍▌▇▍▌▄▆█▆▌▅▊▅▌ ▅▆█▉▋▌█▉▄▉▇▇▌▍▆▍▇▌▇▌▄▆▆ ▄▇▅▉▄▄▊▊▍▇▄▊▆▇▆▇▋▊█▌▌▉█▅▇▅▆▉▇▆▇▋ ▍▄▇▆▉▇▇▉▇▌▇▍▌▆▍▉▄█▊▅▉█▇▉▌▄▅▍▋▅▇▋▄▆▋▆▄▄▌▇ ▇▍█▄▅█▆▅▆▋█▌▊▅▅█▊▋▇▉▆█▋▅▉▊▍▉█▊▉▍▊
▇ ▆▌▄ ▋▆▋▊▄ ▄▌▅▅▇▉▄ ▊█▊▇▉▇██▅▄ ▇▌ ▆▉██▇▉ ▉▉▍▅ ▊▋▌
▋ █▋█▇ ▊█▅▊▍▊▋▄▋█▆▇▊▉▅▅▉▍█▌▅▋▄█▄▇ ▊▅ ▉█▇█ ▄▅ ▄▉▄ ▋▆▇▉▊█ ▋▍▇▋▋▊▊▅
▆ ▅▄▅▍▋▍▊ ▉▉▌ ▄▇▆▋▉▍ ▄▉▋▄▇▋▄ ▋▉▌▇▅▆▍ █▋ █▅ ▇▉█ ▄█ ▋▋▅▅▋▊▇█
▅ ▉▊▋▄▄▄ ▊▆▌██▄▆ ▇▇▅▋ █▍▋▌▇▇▉▆▅▅ ▉▊▆ ▍▍██▆▍▄▊▇▆▆ ▄▌▋ ▌▊██▊▍ █▉▄▄▇ ▅▆▆▌▌▍▄ ▊▉▉ ▉▉▋ ▄█▄▅▅ ▋▉▌▉▊▊▉▋▋▍ ▊▌▇▌▇▄▅▋▌ ▌█▇▅ █▇▆▇▄▊ ▇▅▌▇█▇▉ ▉▊▉▉▆▄▅▅ ▍▋▅▊▆▊ ▍▊▆▆ ▊█▇▇▅█▇ █▅█▋▌ ▉▌ ▉▋▉▉▅▇ ▊▇▅ ▄▉▉▄ ▊▌▍▇▉▊▄▋▍▅ ▅█▅▅▋▍▋ ▇▅▆▇▅█ ▅██▍▊▆▆▇▌▊ ▇▊ ▊▅▄▆
▄ ▋██▇▋ ▇▊▉▊ ▍▋▌▅ ▅▊ ▊▄▆▊▍▇▇
▄ ▊▋▄▌█ ▍▅▍▌ ▉▇█▅██▋▄▋▉▅▆▌▍▍ ▌▍ █▅▍▆
▉ ▇▄▋ ▇▉▉ ▊▌ █▋▉▋▊▋▌▇█▊▅▄▍▊▊▌▆▄▌▌▅ ▍▉▊▋▊ ▄▋▍▌█▋ █▄▋▍▆▅ ▍▊▍▋▋▆▇█▊ ▊█▍▅ █▋▋▊▉▆▍▄▍▋▅ ▇▉▆▇▉▍▍▊▊▄▅ ▅▍█▅ ▆▇▆▄█▇ ▍▋▍▄▊▇▅▋▆▄ ▍▍ ▋▇▆▍▍▌ ▊▋▋ ▇▄▇▉▌ ▆█▍ ▊▋▍▇▋█▌ ▇▇▍▊ ▌▍▇▍▅▅▅▄ ▌▇▇ ▇█▊▉ ▊▊ ▊█▌▄ ▊▋▊▇▄▊ ▍▍ █▊▉▍▍▌ ▌▄▅▅ █▊▆▊▊▆ ██▊▆ ▌▆▊▍▄▊ ▅▅ ▊▊▄▉ ▅▅█▊▋▇ █▌▊ ▉▉█ ▄▅▌
merge from optimize_train_track_meshes -> main
Fix "Double invocation of a deferred action"
Fix null check using .Equals() instead of == null
Fix CLIENT compile errors
merge from main -> optimize_train_track_meshes
▍ ▊▌▆ ▊▌▌▉ ▊▍ ▊▆▌▅▉▊█ ▆▍▄ ▉▉▆▉▆ ▉▋ ▊▊▅▇▊▅▄▉ ▍▆▆█▊▋▆ ▅▋▆▇▇ ▉▅█ ▋▄▇▄▆▇█ ▇▍▅▄▅ ▍█▉▍ ▄▌▉▊█▅ ▌▇ ▆▇██▆▍
▋ ▋▌▅ ▅▄▇▉▇▆ ▆█ ▄▍▉▇ ▆▄▋▆▆▅ ▉▄▆▄▅▉▌▅▊▄▅▌▅ █▍ █▋▍▅██▊▍ ▉▌█▅▅▉▉ ▄▄▆▊ ▅▌▌▄▍▌▊▆ ▉▆▇▆▌ ▄█ ▋▇▋▄▌▋ ▍▄▋▅ ▋▇▋▉▄ ▍▅▉█▇▄
▆ █▅▌ ▊▅▍▄▆▌▉▊▇█▌▋▌█▊▌▅▌█▊ ▅█▆ ▌▊▇▆▋▋▋ ▋█▄▋▉█▇▅▌▉█▊▉▇▄▄█▅▇▌▄▇▄ █▋ ▆▍▄ █▍▉ ▋▍▉▊█▊▄ ▍▆█▍▄ ▌▆▉▌▌ ▌▊ ▍▅█▍▋██▊▄▆█ ▆▋▍▍▋▋▄ ▋▊▇▇▅▄ ▇▅▆ ▅▆▅▇▄▆▌▄ █▇▍ ▌▆▄▄▄▊▌▅ ▆▅▍█▌▌ ▅▅▆ ▉▍▇▊▊▅▆▇ ▌▌ █▄▍▍█ █▋▆█▊ ▇▇▉▆▅▍▅ ▆▋▆▉ ▌▄▉█▉▍▇▅▅▋ ▊▅ ▋▇▅ ▆▆█▄ ▅▊▊▉▍▅ █▅█▋▍▄▉▉
merge from apartment_complex_monument/prototype -> apartment_complex_monument
merge from apartment_complex_monument -> apartment_complex_monument/prototype
merge apartment_complex_monument/prototype/mailbox