243,110 Commits over 3,898 Days - 2.60cph!
set bike and horse mountables to animate cloth in worldspace
added head/clavicle/neck to ignored bones on ghostsheet to help collision behaviour at some lookangles
Merge: from remove_treeentity_update
This eliminates the many calls of TreeEntity.Update in editor play mode, saves ~16ms on 6k procgen map
Tests: booted editor with swamp_a scene and shut down, booted into craggy then switched to swamp_a, added and moved trees to swamp_a, changed tree prefabs - all cases could see expected visuals.
Fixed hotbar 1-3 inputs not working while the RPS gesture isn't active
Log cleanup
Show different text on computer station when camera is disabled
- "No Signal" = incorrect camera code or camera destroyed
- "Weak Signal" = camera disabled
Using the ram consumes fuel
Added RemoveFuel in IFuelSystem to allow removal of a specified amount of fuel in one go
Bugfix: TreeToolRenderer can render on editor start
- Replaced sceneOpened with activeSceneChangedInEditMode, as former didn't react to boot process changing scenes
Tests: closed editor and reopened, trees started to render
Merge: from main
Tests: none (trivial merge)
Merge from corrupt_prefab_handling
Node menu: list all scene refs
https://files.facepunch.com/ziks/2024-10-23/sbox-dev_qisG1bsjT4.mp4
Remove mock GameObject/Prefab code from managed MapEntity
Add CMapGameObject map node with managed counter part that wraps a GameObject
Hammer world's Scene uses HammerSceneEditorSession
Add HammerManagedInspector that can take over if it likes the MapNode. We only like MapGameObject for now
Run Scene.EditorDraw() on MapView for gizmos, remove old Entity.DrawGizmos
Hammer: Create GameObject Test option
More explicit HammerEvents
Managed map node callback interface, a little convoluted because of mapdoclib <-> hammer <-> managed. But this is easier to do callbacks and can return values
And the managed side
Serialize/deserialize CMapGameObject
CMapGameObject::GeneratesEntityModelGeometry()
Expose CMapGameObject JSON to MapBuilder via IHammerMapLoader
Collect CMapGameObjects, compile them into scene.json inside the vpk and let MapInstance load them (Very hacky code needs cleaning up)
MapWorld.Scene sets a Scene.Source in an attempt to make AG happy
Tie Meshes to GameObject button
Add def for CMapNode.GetRootDocument()
ActionGraph source location refactor
Add MapSourceLocation, fix editing action graphs in .vmap files
Check for MapSourceLocation in ActionGraphView
Open source map when inspecting graph from .vmap
Parent action graph editor to hammer window if editing map graph
Push AG serialization options when saving map game object
Makes sure we replace any cached versions of graphs
Implement setting HammerSceneEditorSession.HasUnsavedChanges
Fix action graphs from maps not caching correctly
Only OpenContainingResource if not already open
Fix action graphs in unsaved hammer maps
Associate graphs with a HammerSceneEditorSession if open in hammer,
which is resilient to renaming etc
Normalize map path name
Can tie map meshes to GameObjects, these get built into models and any components on the GameObject with a Model property get populated by it
Trim world builder
Implement CMapGameObject::Copy
Sync native transforms to managed
Scene changes (new component, prop edits, etc.) mark Hammer map as having unsaved changes (otherwise it refuses to save)
Several assumptions of SceneEditorSession.Active.Scene should be GameObject.Scene
Clean up Entity tool as you can no longer add/target games this way
Kill Hammer EntityIO buttons (unusable)
CMapGameObject overrides child selection
Hammer GizmoInstance.Input.IsHovered is controlled by native MapView IsActive()
Add jsoncpp so we can read/write json properly without fucking around with kv3
Replace manual scene serialization with jsoncpp, can map guids to map meshes better and it's cleaner
Clean up MapView tick and scene render list
Hammer sync managed gizmo selections with native selection set (authoritative)
Fix warning
CMapGameObject's that generate model geometry are ignored by physicsbuilder
ModelRenderer don't default to box if Model is null
remove nav markup volumes from fgd
TieToGameObject takes TieToEntity keybind (Ctrl+T), remove button for entity as there's no entities to tie them to anymore, if you really need it the command is still accessible through F1
bakky icon
Fix undoing dragging connection handles
Fix updating connection positions
Added "Tools/Find/Corrupt prefabs" to easily catch merge issues, scans entire project for prefabs that haven't been imported correctly
Takes about 5s to scan whole project
Catches kayak issue from earlier in the week and another UI prefab issue
reduced wind shader values on GhostSheet material
Added warming and cooling player modifiers, separately so that they can be combined.
Added phrases.
Metabolism coretemp now includes core temp adjustment from warming/cooling modifiers.
Correctly scope to current scene when pressing [Button]
Fix gizmos being unavailable during editor tick
Add "Set to None" option to InputActionControlWidget
https://files.facepunch.com/tony/1b2211b1/0WMKcWO3Z1.png
Scene.Title, Scene.Description are obsolete
Fix JsonObject.GetPropertyValue not always returning defaultvalue
Add SceneInformation component, replaces Scene.Title, Scene.Description - can create your own meta providers, works in prefabs
Add SceneFile.GetMetadata( name )
Add PrefabFile.GetMetadata( name )
Add ability to close tool window tabs, scoped to scene/prefab tabs only - resolves Facepunch/sbox-issues#6653
https://files.facepunch.com/tony/1b2211b1/sbox-dev_3TNYa6UlBY.mp4
Add IsDeleted checks to loading startup scenes. Facepunch/sbox-issues#6594
Focus last selected SceneViewport when leaving Play Mode. Resolves Facepunch/sbox-issues#6605
AssetInspector now hotloads when changes to the asset have been made. No longer have to click into something else and click back in.
https://files.facepunch.com/CarsonKompon/2024/October/22_09-47-StaleImperialeagle.mp4
Grid-aligned wires option
https://files.facepunch.com/ziks/2024-10-22/sbox-dev_bUe9p89nrF.mp4
SceneViewportWidget now refocuses last non-game viewport instead of last selected. Resolves play mode sometimes starting on an Empty Scene
MapInstance explicitly fails when trying to load scenemaps, fallback to configured map when map arg isn't valid
- Fixes case where an uploaded scenemap containing a MapInstance (mis?)configured to pull from launch args, would try to load itself and fall apart, Facepunch/sbox-issues#6620
Scroll the transform with all the other components
Change inspector theme
Fix exec command not working with spaces in dir for these csproj files
Add ComponentFlags.NotCloned to opt out of component serialize when cloning in editor
Rework component serialize bail logic
Fixed not being able to remove cookies, because it kept loading them before saving. I don't know why this code existed
Merge branch 'master' into asset-browser-2
Leaderboard backup, run #
14861
PhysicsCharacter becomes BodyController
Gibbing cleanup
Fixed not being able to remove cookies, because it kept loading them before saving. I don't know why this code existed
Include bodies in ragdoll joint record
Add read only lists for ragdoll bodies and joints
fix prefab path on G1L2, fix error with HUD
Clearer docs here, only log warning if networking debug is enabled here
Drive ragdoll physics from animation in fixed update
Add extra box collider to deployed camera too since it was only taking damage from the base stand of the camera
Disable deployed cameras from being disabled while shot
Add extra collider to static CCTV camera so it can be shot better
- add static effect to the camera prefab itself
Disable static CCTV cameras in monuments when they take damage
- default duration 5 minutes (convar `camera_disable_seconds`)
- 95% static effect when disabled
- can still hear audio when camera is disabled
- static effect around camera when disabled
Don't forget to add arg to header
Add NetTransmission flag support when using SendMessage via Steam Sockets
Removed old/outdated pose files
Some cleanup - fix issue where system isn't initialized so can't serialize. Could be wrong here, but only one system can be active so just use that.
Remove this log
system must be set to SendMessage to a Connection. Fix an issue with SenderId when receiving a TargetedMessage - this can't be local, so try to find the connection but if we can't find it just use the source.
Serialize TargetMessage flags as byte
Merge from brzone-blending -> main