Exemplo n.º 1
0
        public MapCreationGrid(string id, Screen menu,
                               int layerIndex, ref TileMapDeffination tileMap)
            : base(id, menu)
        {
            bounds = new Rectangle(
                0, 0, 826, (int)Common.TextureQuality.Y);

            this.layerIndex = layerIndex;
            this.tileMap    = tileMap;

            TileLayerDeffination layer = tileMap.GetByOrder(layerIndex);

            if (layer.Tiles == null)
            {
                layer.Tiles = new List <int[]>();
                layer.Tiles.Add(new int[] { -1 });

                layer.TileOffset = Vector2.One;
            }
            else
            {
                loaded = true;
            }

            grid = new Grid(ID + "Grid", Vector2.Zero, layer.Tiles[0].Length,
                            layer.Tiles.Count, (int)layer.TileSize.X,
                            (int)layer.TileSize.Y, 1, false);

            AttachComponent(grid);

            DrawingManager.Add(this);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates a new MapCreator.
        /// </summary>
        /// <param name="owner">The owner of the MapCreator.</param>
        public MapCreator(MainScreen owner, ref TileMapDeffination tileMap)
            : base("MapCreator")
        {
            this.owner   = owner;
            this.tileMap = tileMap;

            camera = new BaseCamera2D("MapCam", new Rectangle(
                                          0, 0, 826, (int)Common.TextureQuality.Y));

            AttachComponent(camera);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Creates a new TileMap.
 /// </summary>
 /// <param name="ID">The ID of the TileMap.</param>
 /// <param name="mapFilePath">The filepath for the TileMap.</param>
 public TileMap(string ID, string mapFilePath)
     : base(ID)
 {
     try
     {
         deff = Common.ContentManager.Load <TileMapDeffination>(mapFilePath);
     }
     catch
     {
         throw new ArgumentNullException(mapFilePath + " dosn't exist");
     }
 }
Exemplo n.º 4
0
        void Load(string controlID)
        {
            if (openDia.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Type[] extraTypes = new Type[]
                {
                    typeof(List <int[]>),
                    typeof(TileMapDeffination),
                    typeof(TileMapDeffination[]),
                    typeof(bool),
                    typeof(Vector2)
                };

                tileMap = SerializationHelper.Deserialize <TileMapDeffination>(openDia.FileName, false, "");
                mapCreator.SetTileMap(tileMap);

                mapCreator.DeleteAll();
                currentLayer = -1;

                if (tileMap.TileLayers.Length > 0)
                {
                    for (int i = 0; i < tileMap.TileLayers.Length; i++)
                    {
                        mapCreator.AddLayer(tileMap.TileLayers[i].Order);
                    }

                    currentLayer = tileMap.TileLayers[0].Order;
                    mapCreator.ChangeLayer(currentLayer);

                    SetControlData(currentLayer);
                }
                else
                {
                    SetControlData(-1);
                }
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Changes the current TileMapDeffination in use.
 /// </summary>
 /// <param name="tileMap">The new TileMapDeffination.</param>
 public void SetTileMap(TileMapDeffination tileMap)
 {
     this.tileMap = tileMap;
 }
Exemplo n.º 6
0
        protected override void Initialize()
        {
            #region Tile map

            tileMap            = new TileMapDeffination();
            tileMap.PostRender = false;

            mapCreator = new MapCreator(this, ref tileMap);

            #endregion
            #region Misc

            new Cursor("Cursor", "GUI/Cursors/Cursor", 16);

            float initX = 966;

            AttachComponent(new Sprite(ID + "BG0", 0, "Eon/Textures/Pixel", new Color(46, 46, 46, 255),
                                       true, new Vector2(initX, 0), new Vector2(Common.TextureQuality.X - initX, Common.TextureQuality.Y)));

            AttachComponent(new Sprite(ID + "BG1", 0, "Eon/Textures/Pixel", new Color(96, 96, 96, 255),
                                       true, new Vector2(initX - 140, 0), new Vector2(140, Common.TextureQuality.Y)));

            grid = new ImageGrid("ImgGrid", this, new Vector2(1056, 120));

            grid.OnSourceChanged += new SourceTileChangedEvent(SourceTileChanged);
            grid.OnLoadedTilemap += new LoadedTilemapEvent(AddLayer);

            CheckBox chk = new CheckBox(ID + "chkSwapImg", this,
                                        new Rectangle(1322, 120, 32, 32), 2, true);

            chk.CheckedImage   = "GUI/NormalMapIcon";
            chk.UnCheckedImage = "GUI/PictureIcon";
            chk.OnChecked     += new OnCheckToogledEvent(SwapImages);

            chkLayers = new CheckBox(ID + "chkLayers", this,
                                     new Rectangle(1322, 160, 32, 32), 2, true);

            chkLayers.Checked        = true;
            chkLayers.CheckedImage   = "GUI/SingleLayerIcon";
            chkLayers.UnCheckedImage = "GUI/AllLayersIcon";
            chkLayers.OnChecked     += new OnCheckToogledEvent(ChangeRendered);

            chkGrid = new CheckBox(ID + "chkGrid", this,
                                   new Rectangle(1322, 200, 32, 32), 2, true);

            chkGrid.Checked        = true;
            chkGrid.CheckedImage   = "GUI/GridOnIcon";
            chkGrid.UnCheckedImage = "GUI/GridOffIcon";
            chkGrid.OnChecked     += new OnCheckToogledEvent(ToogleGrids);

            Button2D btnDelete = new Button2D(ID + "btnDelete", this,
                                              new Rectangle(1322, 345, 32, 32), "GUI/BinIcon", "", "", 2, true);

            btnDelete.HoveredOverColour = new Color(0, 200, 0, 255);
            btnDelete.Colour            = Color.White;
            btnDelete.OnClicked        += new OnClickedEvent(DeleteCurrentLayer);

            #endregion
            #region IO

            initX -= 110;

            btnSave = new Button2D("btnSave", this, new Rectangle((int)initX, 120, 80, 35),
                                   "Eon/Textures/Pixel", "Eon/Fonts/Arial23", "Save", 1, true);

            btnSave.FontColour        = Color.White;
            btnSave.Colour            = new Color(46, 46, 46, 255);
            btnSave.HoveredOverColour = new Color(0, 200, 0, 255);
            btnSave.OnClicked        += new OnClickedEvent(Save);

            btnLoad = new Button2D("btnLoad", this, new Rectangle((int)initX, 170, 80, 35),
                                   "Eon/Textures/Pixel", "Eon/Fonts/Arial23", "Load", 1, true);

            btnLoad.FontColour        = Color.White;
            btnLoad.Colour            = new Color(46, 46, 46, 255);
            btnLoad.HoveredOverColour = new Color(0, 200, 0, 255);
            btnLoad.OnClicked        += new OnClickedEvent(Load);

            AttachComponent(new TextItem(ID + "lblLayers", 1, "Layers",
                                         "Eon/Fonts/Arial23", new Vector2(initX, 260), Color.White, true));

            initX += 24;
            int initY = 306;

            for (int i = 0; i < 10; i++)
            {
                CheckBox chkLayerBtn = new CheckBox(i + "", this,
                                                    new Rectangle((int)initX, initY, 34, 40), 1, true);

                chkLayerBtn.UnCheckedImage = "GUI/TileMap/" + i;
                chkLayerBtn.CheckedImage   = "GUI/TileMap/" + i + "Select";

                if (i == 0)
                {
                    chkLayerBtn.Checked = true;
                }

                chkLayerBtn.OnChecked += new OnCheckToogledEvent(ChangeTileLayer);

                initY += 40;
            }

            #endregion
            #region Rows/ Columns

            lblRows = new TextItem(ID + "lblRows", 3, "Rows",
                                   "GUI/Verdana12pt", new Vector2(1056, 403), Color.White, true);

            AttachComponent(lblRows);

            txtRows = new TextBox("txtRows", this,
                                  new Vector2(1181, 403), new Vector2(130, 25));

            txtRows.Text           = "1";
            txtRows.OnTextChanged += new OnTextChangedEvent(TextChanged);

            lblCols = new TextItem(ID + "lblCols", 3, "Columns",
                                   "GUI/Verdana12pt", new Vector2(1056, 446), Color.White, true);

            AttachComponent(lblCols);

            txtCols = new TextBox("txtCols", this,
                                  new Vector2(1181, 446), new Vector2(130, 25));

            txtCols.Text           = "1";
            txtCols.OnTextChanged += new OnTextChangedEvent(TextChanged);

            #endregion
            #region Tiles

            lblTilesX = new TextItem(ID + "lblTilesX", 3, "Tiles X",
                                     "GUI/Verdana12pt", new Vector2(1056, 533), Color.White, true);

            AttachComponent(lblTilesX);

            txtTilesX = new TextBox("txtTilesX", this,
                                    new Vector2(1181, 533), new Vector2(130, 25));

            txtTilesX.Text           = "1";
            txtTilesX.OnTextChanged += new OnTextChangedEvent(TextChanged);

            #region Plus / Minus Buttons

            Button2D btnTilesXMinus = new Button2D("btnTilesXMinus", this,
                                                   new Rectangle(1148, 533, 25, 25), "GUI/MinusIcon", "", "", 3, true);

            btnTilesXMinus.HoveredOverColour = Color.Green;
            btnTilesXMinus.OnClicked        += new OnClickedEvent(TilesChangeClicked);

            Button2D btnTilesXPlus = new Button2D("btnTilesXPlus", this,
                                                  new Rectangle(1320, 533, 25, 25), "GUI/PlusIcon", "", "", 3, true);

            btnTilesXPlus.HoveredOverColour = Color.Green;
            btnTilesXPlus.OnClicked        += new OnClickedEvent(TilesChangeClicked);

            #endregion

            lblTilesY = new TextItem(ID + "lblTilesY", 3, "Tiles Y",
                                     "GUI/Verdana12pt", new Vector2(1056, 576), Color.White, true);

            AttachComponent(lblTilesY);

            txtTilesY = new TextBox("txtTilesY", this,
                                    new Vector2(1181, 576), new Vector2(130, 25));

            txtTilesY.Text           = "1";
            txtTilesY.OnTextChanged += new OnTextChangedEvent(TextChanged);

            #region Plus / Minus Buttons

            Button2D btnTilesYMinus = new Button2D("btnTilesYMinus", this,
                                                   new Rectangle(1148, 576, 25, 25), "GUI/MinusIcon", "", "", 3, true);

            btnTilesYMinus.HoveredOverColour = Color.Green;
            btnTilesYMinus.OnClicked        += new OnClickedEvent(TilesChangeClicked);

            Button2D btnTilesYPlus = new Button2D("btnTilesYPlus", this,
                                                  new Rectangle(1320, 576, 25, 25), "GUI/PlusIcon", "", "", 3, true);

            btnTilesYPlus.HoveredOverColour = Color.Green;
            btnTilesYPlus.OnClicked        += new OnClickedEvent(TilesChangeClicked);

            #endregion

            #endregion
            #region Tile Size

            lblSizeX = new TextItem(ID + "lblSizeX", 3, "Tile Size X",
                                    "GUI/Verdana12pt", new Vector2(1056, 663), Color.White, true);

            AttachComponent(lblSizeX);

            txtSizeX = new TextBox("txtSizeX", this,
                                   new Vector2(1181, 663), new Vector2(130, 25));

            txtSizeX.Text           = "128";
            txtSizeX.OnTextChanged += new OnTextChangedEvent(TextChanged);

            lblSizeY = new TextItem(ID + "lblSizeY", 3, "Tile Size Y",
                                    "GUI/Verdana12pt", new Vector2(1056, 706), Color.White, true);

            AttachComponent(lblSizeY);

            txtSizeY = new TextBox("txtSizeY", this,
                                   new Vector2(1181, 706), new Vector2(130, 25));

            txtSizeY.Text           = "128";
            txtSizeY.OnTextChanged += new OnTextChangedEvent(TextChanged);

            #endregion

            base.Initialize();
        }