//Load content public void Load(ContentManager content, GraphicsDevice graphicsDevice) { _renderer = new Renderer.Renderer(); _logic = new MainLogic(); _editorLogic = new EditorLogic(); _assets = new Assets(); _debug = new DebugScreen(); _uiLogic = new UILogic(); Shaders.Load(content); _assets.Load(content, graphicsDevice); _renderer.Load(content); _logic.Load(content); _debug.LoadContent(content); _uiLogic.Load(content); }
/// <summary> /// Main Logic for the editor part /// </summary> /// <param name="gameTime"></param> /// <param name="entities"></param> /// <param name="data"></param> public void Update(GameTime gameTime, List <BasicEntity> entities, List <PointLightSource> pointLights, List <DirectionalLightSource> dirLights, EditorReceivedData data, MeshMaterialLibrary meshMaterialLibrary) { if (Input.WasKeyPressed(Keys.R)) { _gizmoMode = GizmoModes.Rotation; } if (Input.WasKeyPressed(Keys.T)) { _gizmoMode = GizmoModes.Translation; } int hoveredId = data.HoveredId; if (_gizmoTransformationMode) { if (Input.mouseState.LeftButton == ButtonState.Pressed) { GizmoControl(_gizmoId, data); } else { _gizmoTransformationMode = false; } } else if (Input.WasLMBPressed()) { //Gizmos if (hoveredId >= 1 && hoveredId <= 3) { _gizmoId = hoveredId; GizmoControl(_gizmoId, data); return; } if (hoveredId <= 0) { SelectedObject = null; return; } bool foundnew = false; //Get the selected entity! for (int index = 0; index < entities.Count; index++) { var VARIABLE = entities[index]; if (VARIABLE.Id == hoveredId) { SelectedObject = VARIABLE; foundnew = true; break; } } if (foundnew == false) { for (int index = 0; index < pointLights.Count; index++) { PointLightSource pointLightSource = pointLights[index]; if (pointLightSource.Id == hoveredId) { SelectedObject = pointLightSource; break; } } for (int index = 0; index < dirLights.Count; index++) { DirectionalLightSource directionalLightSource = dirLights[index]; if (directionalLightSource.Id == hoveredId) { SelectedObject = directionalLightSource; break; } } } } //Controls if (Input.WasKeyPressed(Keys.Delete)) { //Find object if (SelectedObject is BasicEntity) { entities.Remove((BasicEntity)SelectedObject); meshMaterialLibrary.DeleteFromRegistry((BasicEntity)SelectedObject); SelectedObject = null; } else if (SelectedObject is PointLightSource) { pointLights.Remove((PointLightSource)SelectedObject); SelectedObject = null; } else if (SelectedObject is DirectionalLightSource) { dirLights.Remove((DirectionalLightSource)SelectedObject); SelectedObject = null; } } if (Input.WasKeyPressed(Keys.Insert)) { if (SelectedObject is BasicEntity) { BasicEntity copy = (BasicEntity)SelectedObject.Clone; copy.RegisterInLibrary(meshMaterialLibrary); entities.Add(copy); } else if (SelectedObject is PointLightSource) { PointLightSource copy = (PointLightSource)SelectedObject.Clone; pointLights.Add(copy); } else if (SelectedObject is DirectionalLightSource) { DirectionalLightSource copy = (DirectionalLightSource)SelectedObject.Clone; dirLights.Add(copy); } } if (SelectedObject != null) { DebugScreen.AddString(SelectedObject.Position.ToString()); } }