Ejemplo n.º 1
0
        /* Delete selected */
        private void deleteInstance_Click(object sender, EventArgs e)
        {
            if (instanceList.SelectedIndex == -1)
            {
                return;
            }
            DialogResult shouldDo = MessageBox.Show("Are you sure you wish to delete this " + loadedTypeString + "?\nDeleting a " + loadedTypeString + " can have SERIOUS implications.\nEdit this " + loadedTypeString + " and tag as deprecated instead!", "Confirmation...", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (shouldDo != DialogResult.Yes)
            {
                return;
            }
            if (Directory.Exists(FilePaths.PathToUnityPropResources + instanceList.Items[instanceList.SelectedIndex] + "/"))
            {
                Directory.Delete(FilePaths.PathToUnityPropResources + instanceList.Items[instanceList.SelectedIndex] + "/", true);
            }
            if (Directory.Exists(FilePaths.PathToUnityStreaming + folderPath + "/" + instanceList.Items[instanceList.SelectedIndex] + "/"))
            {
                Directory.Delete(FilePaths.PathToUnityStreaming + folderPath + "/" + instanceList.Items[instanceList.SelectedIndex] + "/", true);
            }
            switch (loadedType)
            {
            case ManagerType.PROPS:
                PropFileInterface.RemoveDataAt(instanceList.SelectedIndex);
                PropFileInterface.SaveData();
                break;

            case ManagerType.TILES:
                TileFileInterface.RemoveDataAt(instanceList.SelectedIndex);
                TileFileInterface.SaveData();
                break;
            }
            ReloadList();
            MessageBox.Show(loadedTypeString[0].ToString().ToUpper() + loadedTypeString.Substring(1) + " deleted!", "Complete.", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Ejemplo n.º 2
0
        /* Save the tile */
        private void saveTile_Click(object sender, EventArgs e)
        {
            //Validation
            if (tileName.Text == "")
            {
                MessageBox.Show("Tile must have a name!", "No tile name.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (tileDesc.Text == "")
            {
                MessageBox.Show("Tile must have a description!", "No tile description.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            bool imageValid = false;

            if (typeFloor.Checked)
            {
                imageValid = (ImageIsValid(FLOOR_previewCornerNorthEast) &&
                              ImageIsValid(FLOOR_previewCornerSouthEast) &&
                              ImageIsValid(FLOOR_previewCornerNorthWest) &&
                              ImageIsValid(FLOOR_previewCornerSouthWest) &&
                              ImageIsValid(FLOOR_previewEdgeNorth) &&
                              ImageIsValid(FLOOR_previewEdgeEast) &&
                              ImageIsValid(FLOOR_previewEdgeSouth) &&
                              ImageIsValid(FLOOR_previewEdgeWest) &&
                              ImageIsValid(FLOOR_fillSprites, FLOOR_fillPreview));
            }
            else if (typeWall.Checked)
            {
                imageValid = (ImageIsValid(WALL_horizontalSprites, WALL_horizontalPreview) &&
                              ImageIsValid(WALL_verticalSprites, WALL_verticalPreview));
            }
            if (!imageValid || !ImageIsValid(tilePreviewIconUI))
            {
                MessageBox.Show("Tile images MUST be square and a division of 200 pixels.\nPlease follow the guidlines for irregular size tiles!", "Invalid tile size.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DialogResult shouldDo = MessageBox.Show("Would you like to see an example?", "Example tile sizing offer", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (shouldDo == DialogResult.Yes && File.Exists("TileExample.png"))
                {
                    Process.Start("TileExample.png");
                }
                return;
            }

            //Create and check tile name
            string formattedTileName = tileName.Text.Trim().ToUpper().Replace(' ', '_');

            if (tileIndex == -1)
            {
                for (int i = 0; i < TileFileInterface.GetData().Count; i++)
                {
                    if (TileFileInterface.GetData()[i].tileName == formattedTileName)
                    {
                        MessageBox.Show("Tile name must be unique!", "Name already exists.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
            }
            Directory.CreateDirectory(FilePaths.PathToUnityTileResources + formattedTileName);

            //Copy sprites & save Unity metas
            SaveSprite(tilePreviewIconUI, formattedTileName + "/EDITOR_UI");
            if (typeFloor.Checked)
            {
                //Update/create config
                BinaryWriter writer = new BinaryWriter(File.OpenWrite(FilePaths.PathToUnityStreaming + "TILECONFIGS/" + formattedTileName + ".DWB"));
                writer.Write(0);
                writer.Write(FLOOR_fillSprites.Items.Count);
                writer.Close();

                if (changedSprites)
                {
                    //Write out the corners
                    SaveSprite(FLOOR_previewCornerNorthEast, formattedTileName + "/CORNER_NORTH_EAST");
                    SaveSprite(FLOOR_previewCornerSouthEast, formattedTileName + "/CORNER_SOUTH_EAST");
                    SaveSprite(FLOOR_previewCornerNorthWest, formattedTileName + "/CORNER_NORTH_WEST");
                    SaveSprite(FLOOR_previewCornerSouthWest, formattedTileName + "/CORNER_SOUTH_WEST");

                    //Write out the edges
                    SaveSprite(FLOOR_previewEdgeNorth, formattedTileName + "/EDGE_NORTH");
                    SaveSprite(FLOOR_previewEdgeEast, formattedTileName + "/EDGE_EAST");
                    SaveSprite(FLOOR_previewEdgeSouth, formattedTileName + "/EDGE_SOUTH");
                    SaveSprite(FLOOR_previewEdgeWest, formattedTileName + "/EDGE_WEST");

                    //Write out the fillers
                    for (int i = 0; i < FLOOR_fillSprites.Items.Count; i++)
                    {
                        FLOOR_fillSprites.SelectedIndex = i;
                        SaveSprite(FLOOR_fillPreview, formattedTileName + "/FILL_" + i);
                    }
                }
            }
            else if (typeWall.Checked)
            {
                //Update/create config
                BinaryWriter writer = new BinaryWriter(File.OpenWrite(FilePaths.PathToUnityStreaming + "TILECONFIGS/" + formattedTileName + ".DWB"));
                writer.Write(1);
                writer.Write(WALL_verticalSprites.Items.Count);
                writer.Write(WALL_horizontalSprites.Items.Count);
                writer.Close();

                if (changedSprites)
                {
                    //Write out the actual image files
                    for (int i = 0; i < WALL_verticalSprites.Items.Count; i++)
                    {
                        WALL_verticalSprites.SelectedIndex = i;
                        SaveSprite(WALL_verticalPreview, formattedTileName + "/VERTICAL_" + i);
                    }
                    for (int i = 0; i < WALL_horizontalSprites.Items.Count; i++)
                    {
                        WALL_horizontalSprites.SelectedIndex = i;
                        SaveSprite(WALL_horizontalPreview, formattedTileName + "/HORIZONTAL_" + i);
                    }
                }
            }

            //Save data
            thisTile.tileName     = formattedTileName;
            thisTile.tileDesc     = tileDesc.Text;
            thisTile.isFlammable  = isFlammable.Checked;
            thisTile.isPathable   = isPathable.Checked;
            thisTile.allowProps   = allowProps.Checked;
            thisTile.hideInEditor = hideInEditor.Checked;
            thisTile.tileType     = (Int16)(typeWall.Checked ? 0 : 1);
            thisTile.tileUseage   = (Int16)(useageInterior.Checked ? 0 : 1);
            thisTile.zBias        = (int)zBias.Value;
            if (tileIndex == -1)
            {
                TileFileInterface.GetData().Add(thisTile);
            }
            TileFileInterface.SaveData();

            MessageBox.Show("Saved!", "Complete.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.Close();
        }