private void AdapterTerrain_Click(object sender, EventArgs e) { NLevel host = NLevelEditorEngine.Instance.MainLevel; if (host != null) { // 找到地形的大小和位置 using (NexusEngineExtension.NWaitCursor waitCursor = new NexusEngineExtension.NWaitCursor(this)) { NActor actor = host.FirstActor(); while (actor != null) { NTerrainActor terrain = actor as NTerrainActor; if (terrain != null) { levelDesc.Location = terrain.Location; levelDesc.Scale = terrain.Scale; levelDesc.Width = Math.Max(levelDesc.Width, terrain.HeightMapWidth); levelDesc.Height = Math.Max(levelDesc.Height, terrain.HeightMapHeight); this.propertyGridNavMapDesc.SelectedObject = levelDesc; break; } actor = host.NextActor(); } } } }
/// <summary> /// new terrain菜单响应 /// </summary> /// <remarks> /// 向Level中创建一个新的Terrrain,并自动打开Terrain编辑模式 /// </remarks> private void newTerrainToolStripMenuItem_Click(object sender, EventArgs e) { NewTerrainDlg dlg = new NewTerrainDlg(); if (dlg.ShowDialog() == DialogResult.OK) { NETerrainProp trnProp = dlg.TerrainProperty; NLevel mainLv = NLevelEditorEngine.Instance.MainLevel; NActor newActor = mainLv.CreateActor(trnProp.Name, "nterrain_actor"); NTerrainActor newTrn = newActor as NTerrainActor; newTrn.Create(trnProp.Width, trnProp.Height, trnProp.Init, trnProp.ChunkSize); newTrn.Move(trnProp.Position, trnProp.Scale); //-- 创建材质 NewTerrainMaterial mtlDlg = new NewTerrainMaterial(newTrn); mtlDlg.Show(this); //-- 自动选中地形对象 NLevelEditorEngine.Instance.ActorEd.SelectedActor = newTrn; this.RefreshViewports(); }// end of if }
public bool BindSelectedActorToTerrainEd() { NActor ac = this.ActorEd.SelectedActor; if (ac == null) { return(false); } NTerrainActor trn = ac as NTerrainActor; if (trn == null) { return(false); } this.TerrainEd.BindTerrain(trn); return(true); }
public NewTerrainMaterial(NTerrainActor trn) { m_trn = trn; InitializeComponent(); }