/// <summary> /// A tree view item has been selected. /// </summary> private void SceneTreeView_AfterSelect(object sender, TreeViewEventArgs e) { UpdatePropertyGrid(); // Get selected proxy BaseEditorProxy proxy = SceneTreeView.SelectedNode.Tag as BaseEditorProxy; // Enable/disable terrain editor if (proxy is QuadTerrainProxy) { TerrainEditorPanel.Visible = true; terrainEditMode = true; currentTerrainProxy = (QuadTerrainProxy)proxy; terrainEditor1.SetTerrain(currentTerrainProxy.Component, sceneDocument); (proxy as QuadTerrainProxy).Component.EnablePicking = true; } else { TerrainEditorPanel.Visible = false; terrainEditMode = false; if (currentTerrainProxy != null) { currentTerrainProxy.Component.EnablePicking = false; currentTerrainProxy = null; terrainEditor1.ClearTerrain(); } } }
/// <summary> /// Called when a new terrain is requested. /// </summary> private void AddQuadTerrainMenuItem_Click(object sender, EventArgs e) { // Get selected entity EntityProxy entity = GetSelectedEntity(); if (entity == null) { return; } // Add quad terrain QuadTerrainProxy terrainProxy = AddQuadTerrainComponentProxy(entity); }
/// <summary> /// Creates a new quad terrain proxy. /// </summary> private QuadTerrainProxy AddQuadTerrainComponentProxy(EntityProxy parent) { // Create new quad terrain QuadTerrainComponent quadTerrain = new QuadTerrainComponent(worldControl.Core, QuadTerrainComponent.TerrainSize.Small); // Create new quad terrain proxy QuadTerrainProxy quadTerrainProxy = new QuadTerrainProxy(sceneDocument, parent, quadTerrain); // Add new quad terrain proxy to tree view TreeNode quadTerrainNode = AddTreeNode(parent.TreeNode, quadTerrainProxy); // Assign tree node to proxy quadTerrainProxy.TreeNode = quadTerrainNode; return(quadTerrainProxy); }
/// <summary> /// Builds a default scene document. /// </summary> private void CreateDefaultDocument() { // Lock stacks sceneDocument.LockUndoRedo = true; // Set camera position sceneDocument.EditorScene.Camera.Position = new Vector3(0, 2, 50); sceneDocument.EditorScene.Camera.Update(); // Add lighting rig AddDefaultLightingRig(); // Create entities EntityProxy entityProxy = AddEntityProxy(); // Add sphere primitive component SphereProxy sphereProxy = AddSphereProxy(entityProxy); sphereProxy.Position = new Vector3(0, 0.5f, 0); // Add model component DaggerfallModelProxy modelProxy = AddModelProxy(entityProxy, 456); // Add quad terrain component QuadTerrainProxy terrainProxy = AddQuadTerrainComponentProxy(entityProxy); terrainProxy.Position = new Vector3(-1024f, 0, -1024f); terrainProxy.Scale = new Vector3(4, 0.16f, 4); terrainProxy.TextureRepeat = 100f; terrainProxy.NormalStrength = 0.01f; // Expand nodes documentProxy.TreeNode.Expand(); entityProxy.TreeNode.Expand(); // Unlock stacks sceneDocument.LockUndoRedo = false; }