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); }
/// <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); }
/// <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"); } }
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); } } }
/// <summary> /// Changes the current TileMapDeffination in use. /// </summary> /// <param name="tileMap">The new TileMapDeffination.</param> public void SetTileMap(TileMapDeffination tileMap) { this.tileMap = tileMap; }
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(); }