243,140 Commits over 3,898 Days - 2.60cph!
Focus last selected SceneViewport when leaving Play Mode. Resolves Facepunch/sbox-issues#6605
Added new ballista incendiary spear ammo
Added client reload and ammo switching logic (still wip)
Update: move TreeEntityEditor closer to Resource Editor folder
It was in a generic editor folder previously, and we have a specialized folder now
Tests: loaded up swamp_a monument and checked gizmos still draw
Optim: Replace TreeEntity.Update with a an editor-only renderer
- Handled by an EditorTool(work in progress, doesn't track all changes to the scene)
This wins back 16ms on a 6k world in editor.
Tests: Loaded swamp_a scene from a cold start, was able to see trees. Started 6k procgen map, fps was better.
re-created v3 anim folder, taking existing .meta & retaining clips, all anims now using v3 avatar
Eyes rotate with platforms https://files.facepunch.com/7b4e58ef-cc50-4e2d-b7ef-8f8a8cd2161d.mp4
Store Connection internal state if ConnectionInfo doesn't exist then we can just use that
Add IsDeleted checks to loading startup scenes. Facepunch/sbox-issues#6594
Initial branch commit for dedi server message routing
* Try to synchronize Connection State through ConnectionInfo where possible
* Use Connection.All for filtered broadcasts so that will use ConnectionInfo if exists
* TargetedMessage support for byte[] array for already packed messages, and pass in NetTransmission flags for routing as well
* For now, one idea is to override SendRawMessage on MockConnection - for these type of Connection we can route through the host
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
Merge from copypaste -> main
Cleanup & rename kill -> killbox (so it doesn't overlap with normal kill command)
Remove / clean up old assets and poorly named stuff
Add ability to undo pastes with `undopaste` command
- only kills entiites you pasted (if you want to redo a paste, just paste it again manually)
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 )
Use SceneMeta instead of Name/Description
second noise layer for coverage
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
Updates to intro area and blockouts
Allow pasting directly from name
- `paste cars1` will load "cars1" and paste it while persisting current clipboard
Filter entities when pasting instead of copying (allows you to change filters after copying a single time)
- change convars from "copy_npcs" to "paste_npcs"
- filter entities that have no parent when pasting
- add option to filter vehicles
Client trigger, art root setup.
Initial basic facing nearest player logic.
Lets try making the player face correctly again
Sub intro cutscene text
Swap to models of platforms
setup admire anim for metal shield
Fixed rotate
Phys trace
Rotate player onstart to face correct direction
Add "Set to None" option to InputActionControlWidget
https://files.facepunch.com/tony/1b2211b1/0WMKcWO3Z1.png
Third person camera clipping
Use the same collision rules when tracing
Better handling when third person camera is too close
Don't position camera in editor
Switch the rest of the test scenes to use new player controller
Remove tags for moving
Phys character updates
Snakes can now reposition after striking.
Added variables and convars for reposition chance, min/max radius and multipliers.
Merge: from main
Tests: none
Some general cleanup, moved tool to Tools/Cinematic/Pose Tools
Added Undo support to Pose selected, pose random and paste pose options
Merge: from requesttrees_spike
This reduces overhead of streaming grid cells of tree impostors from 3.5m to 1m on a 4.5k server.
Tests: 2 editors(1 server, 1 client) in same session - streamed no changes, removed 1 tree then re-streamed, and streamed with disabled lazy serialization
Avatar field in PoseTools will now persist between editor restarts (saved in EditorPrefs)
Fixed copy/paste buttons not working in PoseTools
merge from kayak_perf_fix
Merge: from main
Tests: none
merge from oases_topology_fixes
merge from voice_chat_cctv
merge from world_update_2
merge from nuking_old_cliffs_in monuments
Leaderboard backup, run #
14837