//map drawing function private void DrawMap() { //get map start pos float mapBaseX = position.width * sidePanelSizeRatio; float mapBaseZ = spaceFromTop; //for all contents in details list for (int i = 0; i < boardDetails.Count; i++) { //get a rect Rect boardTile = new Rect(/*mapBaseX + */ (boardDetails[i].information.xPos * tileWidth) + (gapBetweenTiles * boardDetails[i].information.xPos), (mapBaseZ + boardDetails[i].information.zPos * tileHeight) + (gapBetweenTiles * boardDetails[i].information.zPos), tileWidth, tileHeight); Texture2D tex = new Texture2D(1, 1); Color[] color = new Color[1]; color[0] = ColourTexture(boardDetails[i].properties.type); //tex.SetPixel(0, 0, ColourTexture(boardDetails[i].properties.type)); tex.SetPixels(color); tex.Apply(); GUI.DrawTexture(boardTile, tex); //set event for if clicked on if (thingshappenin.type == EventType.MouseDown && boardTile.Contains(thingshappenin.mousePosition)) { //pass this tile's information over to info panel tileXText = boardDetails[i].information.xPos.ToString(); tileZText = boardDetails[i].information.zPos.ToString(); tileType = boardDetails[i].properties.type; //set current tile ref to this tile tile = boardDetails[i]; //do event thingshappenin.Use(); } } }
private void DrawNewPanel() { //define area newPanel = new Rect(position.width * (sidePanelSizeRatio + centerPanelSizeRatio), position.height * 0.5f, position.width * sidePanelSizeRatio, position.height * 0.5f); //new area GUILayout.BeginArea(newPanel); //button for new map if (GUILayout.Button("Make new map", GUILayout.Height(buttonHeight))) { NewMapButtonLogic(); } //handle new tile stuff GUILayout.Label("New tile"); newTileX = EditorGUILayout.IntField("X pos: ", newTileX); newTileY = EditorGUILayout.IntField("Y pos: ", newTileY); newTileType = (TileBehavior.TileType)EditorGUILayout.EnumPopup("Tile type", newTileType); //button to add new tile to current map if (GUILayout.Button("Add New Tile", GUILayout.Height(buttonHeight))) { NewTileButtonLogic(); } //components for grid logic GUILayout.Label("Fill new grid"); //two cols GUILayout.BeginHorizontal(); //from col GUILayout.BeginVertical(); GUILayout.Label("From:"); fromX = EditorGUILayout.IntField(fromX); fromY = EditorGUILayout.IntField(fromY); GUILayout.EndVertical(); //to col GUILayout.BeginVertical(); GUILayout.Label("To:"); toX = EditorGUILayout.IntField(toX); toY = EditorGUILayout.IntField(toY); GUILayout.EndVertical(); GUILayout.EndHorizontal(); fillTileType = (TileBehavior.TileType)EditorGUILayout.EnumPopup("Tile type", fillTileType); //button to fill a grid if (GUILayout.Button("Fill grid", GUILayout.Height(buttonHeight))) { GridFillButtonLogic(); } //end area GUILayout.EndArea(); }
//get a color to represent tile private Color ColourTexture(TileBehavior.TileType type) { Color colour; switch (type) { case TileBehavior.TileType.NONE: colour = noneColour; break; case TileBehavior.TileType.BASIC: colour = basicColour; break; default: colour = noneColour; break; } return(colour); }
//Get tile texture through file path private Texture2D GetTileTexture(TileBehavior.TileType type) { Texture2D tex; switch (type) { case TileBehavior.TileType.Plains: tex = plainsTex; break; case TileBehavior.TileType.Road: tex = roadTex; break; case TileBehavior.TileType.Building: tex = buildingTex; break; case TileBehavior.TileType.Base: tex = baseTex; break; case TileBehavior.TileType.River: tex = riverTex; break; case TileBehavior.TileType.Sea: tex = seaTex; break; default: tex = plainsTex; break; } return(tex); }
//get a color to represent tile private Color ColourTexture(TileBehavior.TileType type) { Color colour; switch (type) { case TileBehavior.TileType.Plains: colour = plainColour; break; case TileBehavior.TileType.Road: colour = roadColour; break; case TileBehavior.TileType.Building: colour = buildingColour; break; case TileBehavior.TileType.Base: colour = baseColour; break; case TileBehavior.TileType.River: colour = riverColour; break; case TileBehavior.TileType.Sea: colour = seaColour; break; default: colour = plainColour; break; } return(colour); }