3,309 Commits over 945 Days - 0.15cph!
Implement running PreProcess at runtime on each prefab in the scene
Add support for shared scenes that have client + server components in them
- avoids adding complexity of running preprocess at build time to first release
- handles editor only spawning a single monument
- keep support for client only & server only scenes
- default to only building shared scenes rather than individual client & server scenes
- run preprocess at runtime for shared scenes instead of during build
- internally refered to as "generic" scenes because "shared" is easy to mix up with "server"
Output both scenes when running Scene2Prefab/Update All as well as the prefab
Mark more components as [MapGeneration]
Implement spawning in a scene when a monument's prefab is spawned in the world
- async loads the scene
- supports multiple scenes with same name loading at once
- unloads the scene when the monument's prefab is destroyed
- keep track of both server & client version of the prefab
Tag more components as [MapGeneration]
Allow MapGeneration to overwrite delete status (to delete MaterialSetup)
Automatically enable scene output mode if the scene represents a monument
- only enable it when running Scene2Prefab/Update All
Add ScenePrefab before removing components from output prefab
Fix compile errors
Do multiple delete passes to ensure [Required] components get deleted (as it's easier than tracking everything that is required & only done inside editor)
Mark TerrainAnchor and TerrainModified with [MapGeneration]
Cleanup for a bit more readability
Start processing output prefab in scene mode
- remove everything except for terrain generation components
- add MapGeneration attribute to tag components we want to keep
- add ScenePrefab spawner onto the output prefab once S2P is done
Add some context menu tools to calculate amount of components
- "Stats/Transform Count" shows amount of transforms and components for each selected object in heirarchy
- "Stats/Hierarchy" prints amount of gameobjects at each depth
Add ability for SceneToPrefab to output to a scene instead of a prefab
- output prefab identical to normal S2P
- after runs PreProcess on the output prefab's scene so it doesn't need to be ran during startup
- create a seperate scene for the client vs server version of the "prefab"
- can view all 3 versions of the monument / prefab at once (editor, server, client)
- applies label 'PrefabScene' in output scene
- way faster than normal S2P
Fix the pie menu not starting off at a diagonal after changes to hammer pie menu
Manually mark seeds & ladders as "don't show monument building blocked"
Keep showing monument building blocked outline for prefabs that can bypass building privledge (floors, ladders)
- instead manually mark every prefab that shouldn't show an outline
Fix teammate building guide staying visible after the teammate has disconnected
Try catch serialization so 1 error doesn't stop the entire thing from working
Fix runtime profiling hooks not being called on the server (due to UpdateHandler only bein on client)
- move hooks from UpdaetHandler -> UnityHookHandler
- ensure hooks get created in bootstrap
Fix reserved slots not being added to list when created
Fixed convar defaulting to disabled instead of enabled
Also make sure the renderer is disabled on startup
Instead of leaving largest collider null, remove from the static list
Fix icelake showing a 1m red sphere in middle
- caused by no buillding blocked for the "monument" so it defaults to 1m instead of being disabled
Show "Can't place on monument" when trying to place barricades onto concrete inside monument instead of `Failed Check: Sphere Test ( "assets/blah/blah/blah" )`
- work with detailed error mode
Merge main -> fix_barricade_building_error
Fix invoke NRE caused when trying to fix a different InvokeHandler NRE
Fix barricades showing the long debug error of "Not In Terrain" to normal players
- switch from admin check to convar`detailed_building_errors` to turn on debug building error messages
Fix console spam from mixing table loot panel
Prevent barricades, seeds & ladders from showing the building blocked outline around monuments
Fix ladders being placeable inside monuments
Fix NRE when teammate's building guide is near certain building blocked volumes
Implement lerping to smooth the 10hz update rate of teammates building guide
- fix player guides being removed & recreated every update (due to client team comparison)
- snap to last position whenever building prefab is changed
- fix building guide not disappearing when going to sleep
Fix rocket consuming ammo before EyeHack is checked, causing rocket to be consumed even though nothing was fired
merge from qol_show_teammate_building_guide -> aux2
merge from allow_barricades_monuments -> aux2
Attempt #3 to get the monument of a collider, keeping in mind that client builds split the monument into a flat hierarchy so we can't just look for the MonumentInfo in the parent
- fast path is see if the `prevent_building` collider is already tagged
- slow path is using a physics cast to search for `prevent_building`
- caches to avoid falling back on the slow path every time
Pass null when checking IsInvoking() instead of getting a profiler key
Fix NRE in profiling key creation if an entity is killed while an invoke is happening
Merge from main -> allow_barricade_monuments
Add "Building Guide Preview" to options menu
- Always
- When Building (default)
- Disabled
Also exclude serializing default value of required fields
Skip serialization of optional fields set to their default value
Split off code into static class BuildingGuideManager.cs instead of inside Planner (where there can be multiple)
Start adding convar
Merge from main -> qol_show_teammate_building_guide