Beispiel #1
0
        private void buttonAddNew_Click(object sender, EventArgs e)
        {
            string new_name = InputBox.GetInput("New texture set", "Enter a name for the new texture set", "");

            if (string.IsNullOrWhiteSpace(new_name))
            {
                return;
            }

            new_name = new_name.Trim();

            if (m_editor.TextureSets.Find(ts => (ts.Name == new_name)) != null)
            {
                MessageBox.Show("Invalid namne: There is already a texture set with that name.", "New Texture Set");
                return;
            }

            TextureSet new_texture_set = new TextureSet();

            new_texture_set.Name = new_name;
            new_texture_set.Wall = new_texture_set.Floor = new_texture_set.Ceiling = new_texture_set.Cave = m_editor.tm_level.m_name[0];

            m_editor.TextureSets.Add(new_texture_set);
            SetModified(true);
            UpdateComboBox();
            comboBoxTextureSets.SelectedItem = new_name;
        }
        private void button_entity_move_Click(object sender, EventArgs e)
        {
            var editor = ActiveDocument;
            var level  = ActiveLevel;
            var oldPos = level.GetSelectedEntity().position;

            string coords_text = InputBox.GetInput("Entity Coords", "Enter new coordinates for this entity",
                                                   $"{oldPos.X},{oldPos.Y},{oldPos.Z}");

            if (coords_text == null)
            {
                return;
            }

            string[] pos_coords = coords_text.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
            if (pos_coords.Length != 3)
            {
                return;
            }

            Vector3 pos = Vector3.Zero;

            if (float.TryParse(pos_coords[0], out pos.X) && float.TryParse(pos_coords[1], out pos.Y) && float.TryParse(pos_coords[2], out pos.Z))
            {
                level.EntityMoveToPos(pos);
                editor.RefreshGeometry();
            }
        }
        private void button_copy_Click(object sender, EventArgs e)
        {
            string name = InputBox.GetInput("Copy Decal", "Enter a name for this decal (must be valid filename)", "");

            if (name == null)
            {
                return;
            }
            if (m_decal_list.IndexOf((string)name) != -1)
            {
                MessageBox.Show("Name '" + name + "' already used for a decal.");
                return;
            }

            DMesh src = m_active_dmesh;

            m_active_dmesh = new DMesh("");
            m_active_dmesh.CopyDMesh(src);

            m_active_dmesh.name = name;
            SaveDecalMesh(m_active_dmesh);
            m_dmesh.Add(m_active_dmesh);
            m_decal_list.Add(m_active_dmesh.name);
            m_decal_readonly.Add(false);
            ListboxUpdate(m_active_dmesh.name);

            UpdateActiveDMesh();
            gl_custom.Invalidate();
        }
        public void ImportOBJToDecalDialog(bool replace)
        {
            int old_active_dmesh_index = m_decal_list.IndexOf((string)m_active_dmesh.name);

            using (OpenFileDialog od = new OpenFileDialog()) {
                od.AddExtension     = true;
                od.CheckFileExists  = true;
                od.CheckPathExists  = true;
                od.DefaultExt       = ".obj";
                od.Filter           = "OBJ mesh files (*.obj) | *.obj";
                od.Multiselect      = false;
                od.Title            = "Import an OBJ mesh file";
                od.InitialDirectory = editor.m_filepath_decals + "\\OBJ";

                DialogResult res = od.ShowDialog();
                if (res != DialogResult.OK)
                {
                    return;
                }

                m_active_dmesh = new DMesh(replace ? m_active_dmesh.name : "");

                bool saved = ImportOBJToDecal(od.FileName);
                if (!saved)
                {
                    listbox.SetSelected(old_active_dmesh_index, true);
                    return;
                }

                if (replace)
                {
                    m_dmesh[m_cur_dmesh] = m_active_dmesh;
                }
                else
                {
                    string name = InputBox.GetInput("Import Decal Mesh", "Enter a name for this decal (must be valid filename)", "");
                    if (name == null)
                    {
                        listbox.SetSelected(old_active_dmesh_index, true);
                        return;
                    }
                    if (m_decal_list.IndexOf((string)name) != -1)
                    {
                        MessageBox.Show("Name '" + name + "' already used for a decal.");
                        listbox.SetSelected(old_active_dmesh_index, true);
                        return;
                    }
                    m_active_dmesh.name = name;
                    SaveDecalMesh(m_active_dmesh);
                    m_dmesh.Add(m_active_dmesh);
                    m_decal_list.Add(m_active_dmesh.name);
                    m_decal_readonly.Add(false);
                    ListboxUpdate(m_active_dmesh.name);
                }

                UpdateActiveDMesh();
                gl_custom.Invalidate();
            }
        }
        private void button_NewCollection_Click(object sender, EventArgs e)
        {
            string collection_name = InputBox.GetInput("New collection", "Enter name for new collection", "");

            if (string.IsNullOrWhiteSpace(collection_name))
            {
                return;
            }

            collection_name = collection_name.Trim();

            editor.TextureCollections.Add(new Editor.TextureCollection(collection_name));
            comboBox_TextureCollection.Items.Add(collection_name);
            CollectionControlsUpdate();
        }
Beispiel #6
0
        private void buttonRenameTextureSet_Click(object sender, EventArgs e)
        {
            string new_name = InputBox.GetInput("New name", "Enter a new name for this texture set", GetSelectedItemText());

            if (string.IsNullOrWhiteSpace(new_name))
            {
                return;
            }

            new_name = new_name.Trim();

            if (m_selected_set.Name == m_editor.m_level.m_texture_set_name)
            {
                m_editor.m_level.m_texture_set_name = new_name;
            }

            m_selected_set.Name = new_name;
            m_modified          = true;
            comboBoxTextureSets.Items[comboBoxTextureSets.SelectedIndex] = DisplayName(new_name);
        }