Ejemplo n.º 1
0
    private void CreateStreet(Vector2Int coords, DirectionalTileType type)
    {
        var       streetBlockInfo = this.TilesetPrefabs.Get(type);
        Transform streetBlock     = GameObject.Instantiate <Transform>(streetBlockInfo.Item, StreetsParent);

        streetBlock.rotation = Quaternion.Euler(0f, streetBlockInfo.Rotation, 0f);
        streetBlock.position = new Vector3(coords.x * 69.8f, 0, coords.y * 69.8f);
        streetBlock.name     = coords.ToString() + type.ToString();
    }
Ejemplo n.º 2
0
 public static bool?HasFace(this DirectionalTileType t, Faces matchFace)
 {
     if (t == DirectionalTileType.Unknown)
     {
         return(null);
     }
     else
     {
         return(facings[t].Contains(matchFace));
     }
 }
Ejemplo n.º 3
0
    private void SetImage(Vector2Int coords, DirectionalTileType type)
    {
        var t = CityStreetPanel.Find(coords.ToString());

        if (t != null)
        {
            GameObject.Destroy(t);
        }
        var           tile = this.TilesetIcons.Get(type);
        RectTransform r    = GameObject.Instantiate <RectTransform>(tile.Item, CityStreetPanel);

        if (Math.Abs(tile.Rotation) == 90)
        {
            tile.Rotation = -tile.Rotation;
        }
        r.rotation         = Quaternion.Euler(0, 0, tile.Rotation);
        r.anchoredPosition = new Vector3(coords.x * 100, coords.y * 100);
        r.name             = coords.ToString() + type.ToString();
    }
Ejemplo n.º 4
0
 public void SetType(int x, int y, DirectionalTileType t)
 {
     map[x + MaxRadius, y + MaxRadius] = t;
 }
Ejemplo n.º 5
0
    public DirectionalTile <T> Get(DirectionalTileType t)
    {
        if (t == DirectionalTileType.Intersection)
        {
            return new DirectionalTile <T>()
                   {
                       Item = Intersection
                   }
        }
        ;
        else
        {
            switch (t)
            {
            case DirectionalTileType.StraightHorizontal:
                return(new DirectionalTile <T>()
                {
                    Item = Straight
                });

            case DirectionalTileType.StraightVertical:
                return(new DirectionalTile <T>()
                {
                    Item = Straight, Rotation = 90
                });

            case DirectionalTileType.TJunctionTop:
                return(new DirectionalTile <T>()
                {
                    Item = TJunction, Rotation = -90
                });

            case DirectionalTileType.TJunctionRight:
                return(new DirectionalTile <T>()
                {
                    Item = TJunction
                });

            case DirectionalTileType.TJunctionBottom:
                return(new DirectionalTile <T>()
                {
                    Item = TJunction, Rotation = 90
                });

            case DirectionalTileType.TJunctionLeft:
                return(new DirectionalTile <T>()
                {
                    Item = TJunction, Rotation = 180
                });

            case DirectionalTileType.EndcapTop:
                return(new DirectionalTile <T>()
                {
                    Item = Endcap, Rotation = 90
                });

            case DirectionalTileType.EndcapRight:
                return(new DirectionalTile <T>()
                {
                    Item = Endcap, Rotation = 180
                });

            case DirectionalTileType.EndcapBottom:
                return(new DirectionalTile <T>()
                {
                    Item = Endcap, Rotation = -90
                });

            case DirectionalTileType.EndcapLeft:
                return(new DirectionalTile <T>()
                {
                    Item = Endcap
                });
            }

            Debug.Log("Can't find a tile for " + t);

            return(null);
        }
    }
Ejemplo n.º 6
0
 public static Faces[] GetFaces(this DirectionalTileType t)
 {
     return(facings[t]);
 }