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