5,286 Commits over 1,492 Days - 0.15cph!
Add support to break into rooms with a master key
- one time use
- takes 10s to break in
- gives 5m access
- can steal stuff from the rooms in that time
- can let yourself out of the room if you are left inside
Add apartment master lock for breaking into apartments
▇ ▄▌▉▋▅ ▇▇▉▌ ▍▉▅▌▆▊▅▍▇▌▇▌▅▌▌▉█▄▄▄▉▉▅▌▌ █▆ ▄▄▄▇
▌ ▋▅▇▆▆▍ ▌▇ █▅▌█ ▇▉▄▊ ▆▆█▆▉▄▉▋▌▉ █▌ ▆▅▆▋▌ ██ █▇▌▉▉▊▆▊▊▋ █▇█▉▌▄ █▌█▆▋ ▉▉▇▊▉▄▅▆ ▍▄▊▌▅▉▇ █▋▍▊▇▇▌▍█▆▍
merge from fix_compile_sim_parallel -> main
Fix compile simulator being slower after adding props file
- rewriting prop file each time causes every project to be marked as dirty
merge from fix_compile_sim_parallel -> main
Time how long it takes to fetch define constants
Cherrypick CS
152617 (prevent dotnet processes lingering & fix MSBuild error messages not being printed)
Fix compile simulator not working in parallel mode
- use CustomBeforeDirectoryBuildProps parameter to pass in a custom props file to overwrite BaseIntermediateOutputPath
- accomplishes the same thing as passing in the BaseIntermediateOutputPath parameter used to
- each platform is now in /Temp/CompileSimulation/{Platform} again like it used to be
merge from apartment_complex_monument/prototype -> apartment_complex_monument
Also set telephones to be always powered
- was setting them to not require power but that was only applying on the server
Set fridge as powered by default inside apartments
Prevent players from picking up deployables inside monuments when they require building permission to pickup (aka all the beautiful entities I spawned inside apartment rooms)
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
▍ ▍▍▊█▍█ ▋▆▊ ▍█▄▌▋▇▉▊▇▇ ▄▊▌▉▊▌▊ ▍█ █▄▇ ▋▆▊ ▊█▌▅█▌▅▇▉▊▄▉ ▍▉▌▊▌ ▌▉█▆ ▅▇▍ ▊▆█▇▋ ▉▊▊ ▋▆▅▌▋█▌ ▉▌▇▆▍▊▆ ▋█ ▉ ▋▆█▆▋ ▇▉▄▍█▅▇ ▌▉ ▍▍█▋
▇ ▊▆▇▄▄▍ ▆▅▆▆▊▇▇▄▋▅ ▍▆▍▌█▊▆ ▉▅▌▇ ▅▊ ▊▄▇ ▆▆▊▊▅▍▍▄▌▋▇▄▅▆▌█▊▉▇▅▇▆▍▍▄▋▌▆▉▄█▉▅ ▆▅▄█▄▍▄ ▇▍▄▊▆ ▅█ ▍▍▍█▄▇▍▄▍▇ ▊▉▇▅▊█ ▋▆▌▍▍▄▌▍ ▊▉▇▋ █▆▆▋▍▇
▇ ▄▌▍▅ ▇▄▆▌▉▋▄ ▍▇▊█▇▋▆▆▊▍▆▉▇▌▄▅ ▉▄▍▉ ▉▅▉▉▍▌▊▋▉▆ ▊▅▄█▉▌
▇ ██▉▆▉▅ ▆▊▋▇▉▉▆▆▆█ ▉▅█▇ █▍▌▆ ▊▇▌▄█▆▄▋▅▌█▇ █▆▊▍▋ █▍▍▊ ▌▌▄▅▅ ▉▆ ▉█▌█▊▇▊
▋ ▅▋▇▋▋▋▋█ █▉ ▋▌▋▉▉▄▌ ▅▄▆▆▋█ ▅ ▍▉▆▋▊▌▋▇▄ ▉▇█ ▋▅▄▆█▍▌ █▋ ▉▌▍▄▍▅█▇▆▉▇▆▆▌▆█▍▌▉▌▇▌▆▅▅▆▋▄▌▋▇▍ ▄▇█ ▋▇▋▊▋▆▄▋▍▄▅▉▇▌▋▉▄ ▆▊▇▋▉ ▋▍▋▇██ ▉▆ █▆▌▇▉▅▆ ▆▌▉▇▄▆▅▍ ▋█▆ ▄▆▆▊█▍▋▅▉ ▋▍▇▌▉▆▋ ▊▍▊▍▇ ▊▆ ▋█▄▄▊▇▊ ▍▍▌ ▅█▆▍▋▌▍▊▇▊█ ▇█▊▌ ▋▉▉▄▄▉▌█
▋ ▉▇▌▌▍▌ ▋▆▊▄▅▉▋▅▇ ▆▊▄▆ ▍▋█▋▍▊▋▄▆▄ ▅▆ ▉▄▌ ▇▌█▋▍▊▍▋▊▇ ▄▌▋▋▋▋▆▄▍▌▄▅▊▍▆▅▋▉▆▉▌▊█▌▌▉▌▌▅▊▄▍▌▇▍▌▄▆█▆▌▅▊▅▌ ▅▆█▉▋▌█▉▄▉▇▇▌▍▆▍▇▌▇▌▄▆▆ ▄▇▅▉▄▄▊▊▍▇▄▊▆▇▆▇▋▊█▌▌▉█▅▇▅▆▉▇▆▇▋ ▍▄▇▆▉▇▇▉▇▌▇▍▌▆▍▉▄█▊▅▉█▇▉▌▄▅▍▋▅▇▋▄▆▋▆▄▄▌▇ ▇▍█▄▅█▆▅▆▋█▌▊▅▅█▊▋▇▉▆█▋▅▉▊▍▉█▊▉▍▊
▇ ▆▌▄ ▋▆▋▊▄ ▄▌▅▅▇▉▄ ▊█▊▇▉▇██▅▄ ▇▌ ▆▉██▇▉ ▉▉▍▅ ▊▋▌
▋ █▋█▇ ▊█▅▊▍▊▋▄▋█▆▇▊▉▅▅▉▍█▌▅▋▄█▄▇ ▊▅ ▉█▇█ ▄▅ ▄▉▄ ▋▆▇▉▊█ ▋▍▇▋▋▊▊▅
▆ ▅▄▅▍▋▍▊ ▉▉▌ ▄▇▆▋▉▍ ▄▉▋▄▇▋▄ ▋▉▌▇▅▆▍ █▋ █▅ ▇▉█ ▄█ ▋▋▅▅▋▊▇█
▅ ▉▊▋▄▄▄ ▊▆▌██▄▆ ▇▇▅▋ █▍▋▌▇▇▉▆▅▅ ▉▊▆ ▍▍██▆▍▄▊▇▆▆ ▄▌▋ ▌▊██▊▍ █▉▄▄▇ ▅▆▆▌▌▍▄ ▊▉▉ ▉▉▋ ▄█▄▅▅ ▋▉▌▉▊▊▉▋▋▍ ▊▌▇▌▇▄▅▋▌ ▌█▇▅ █▇▆▇▄▊ ▇▅▌▇█▇▉ ▉▊▉▉▆▄▅▅ ▍▋▅▊▆▊ ▍▊▆▆ ▊█▇▇▅█▇ █▅█▋▌ ▉▌ ▉▋▉▉▅▇ ▊▇▅ ▄▉▉▄ ▊▌▍▇▉▊▄▋▍▅ ▅█▅▅▋▍▋ ▇▅▆▇▅█ ▅██▍▊▆▆▇▌▊ ▇▊ ▊▅▄▆