//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();
            }
        }
    }
Esempio n. 2
0
 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);
    }
Esempio n. 4
0
    //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);
    }
Esempio n. 5
0
    //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);
    }