Add jsoncpp so we can read/write json properly without fucking around with kv3
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
* 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
* MapGameObjects can be tied to MapMesh and generate model geometry
Add MapSourceLocation for editing action graphs in .vmap files
* Open source map when inspecting graph from .vmap
* Parent action graph editor to hammer window if editing map graph
Several assumptions of SceneEditorSession.Active.Scene should be GameObject.Scene
Gizmo interactions work in MapView, Hammer gizmo selectionset syncs with native selection set (native has authority), clean up MapView loop
Managed can set DragData of map nodes in Hammer outliner, MapGameObject sets its GameObject
DragData uses QObject.FindOrCreate so it persists when going native -> managed -> native for DragData.Object to work correctly
QOutliner: Remove hidden entity list
QOutliner: Defer selection until mouse release so it acts like our managed treeview, allowing dragging without switching the inspector away
[~] ModelRenderer don't default to box if Model is null
InspectorWidgets are explicitly marked with [Inspector( Type )] instead of [CanEdit( Type )], created with InspectorWidget.Create( SerializedObject )
Hammer Scene is serialized entirely in MapWorld & written into VPK as world.scene_c
MapInstance: Load from SceneFile from inside the VPK (A little more logic because we don't normally read managed from VPKs)
When tying a MapMesh to a MapGameObject add ModelRenderer and ModelCollider automatically
Don't need these Hammer prefab templates anymore
Add "Create Game Object" button to Hammer outliner
HammerMesh component, explicitly set on GameObjects that have a map mesh attached