36 Days Ago
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