Ejemplo n.º 1
0
        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();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <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
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 public NewTerrainMaterial(NTerrainActor trn)
 {
     m_trn = trn;
     InitializeComponent();
 }