Exemple #1
0
 public GeneralBuilding()
 {
     levelManager    = GameObject.FindObjectOfType <LevelManager>();
     resourceManager = GameObject.FindObjectOfType <ResourceManager>();
     uiController    = GameObject.FindObjectOfType <UIOilController>();
     buildingManager = GameObject.FindObjectOfType <BuildingManager>();
 }
Exemple #2
0
    public void Initialize(Vector2Int worldSize)
    {
        levelManager = FindObjectOfType <LevelManager>();
        uiController = FindObjectOfType <UIOilController>();
        GameObject tilemapGameObject = GameObject.Find(ObjectnamesConstant.AVAILIBLE_BUILDING);

        availibleBuildingTilemap = tilemapGameObject.GetComponent <Tilemap>();
        GameObject availibleBuildingForShowGameObject =
            GameObject.Find(ObjectnamesConstant.AVAILIBLE_BUILDING_FOR_SHOW);

        availibleBuildingForShowTilemap = availibleBuildingForShowGameObject.GetComponent <Tilemap>();
        if (availibleBuildingTilemap == null)
        {
            throw new ArgumentNullException();
        }

        BoundsInt bounds = availibleBuildingTilemap.cellBounds;

        availibleBuildingOffset = new Vector2Int(bounds.x, bounds.y);
        var forShowBound = availibleBuildingForShowTilemap.cellBounds;

        /* forShowBound.x = availibleBuildingOffset.x;
         * forShowBound.y = availibleBuildingOffset.y;*/

        IsAvailibleBuilding = new bool[worldSize.x, worldSize.y];
        for (int x = 0; x < worldSize.x; x++)
        {
            for (int y = 0; y < worldSize.y; y++)
            {
                IsAvailibleBuilding[x, y] = true;
            }
        }

        for (int x = 0; x < levelManager.worldSize.x; x++)
        {
            for (int y = 0; y < levelManager.worldSize.y; y++)
            {
                /* Vector2Int size = new Vector2Int();
                 * size.x = availibleBuildingTilemap.size.x % 2 > 0
                 *   ? availibleBuildingTilemap.size.x / 2 + 1
                 *   : availibleBuildingTilemap.size.x / 2;
                 * size.y = availibleBuildingTilemap.size.y % 2 > 0
                 *   ? availibleBuildingTilemap.size.y / 2 + 1
                 *   : availibleBuildingTilemap.size.y / 2 + 1;*/

                TileBase tileBase =
                    availibleBuildingTilemap.GetTile(new Vector3Int(x + levelManager.offset.x, y + levelManager.offset.y, 0));
                if (tileBase == null)
                {
                    IsAvailibleBuilding[x, y] = false;
                    continue;
                }

                switch (tileBase.name)
                {
                case "noBuilding":
                    IsAvailibleBuilding[x, y] = false;
                    break;

                case "building":
                    IsAvailibleBuilding[x, y] = true;
                    break;
                }
            }
        }
    }