Esempio n. 1
0
    void Default()
    {
        selectorTilemap.SetTile(lastSelectedCell, null);

        // Get location
        Vector3 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        // Get tile at that point
        Vector3Int selectedCell = baseTilemap.WorldToCell(point);

        lastSelectedCell = selectedCell;

        // Update UI
        if (selectedCell.x >= 0 && selectedCell.y >= 0)
        {
            uiManager.UpdateTextInfo(mapManager.GetWorldTileData()[selectedCell.x, selectedCell.y]);
        }

        if (Input.GetMouseButtonDown(0))
        {
            if (!EventSystem.current.IsPointerOverGameObject())
            {
                // Selection
                WorldTileData selectedTile = mapManager.GetWorldTileData()[selectedCell.x, selectedCell.y];
                uiManager.UpdateActionInfo(selectedTile.actionList);

                updateAction = TileSelected;
            }
        }

        selectorTilemap.SetTile(selectedCell, selectorTile);
    }
Esempio n. 2
0
 public void TileSelected(WorldTile tile, WorldTileData tileData)
 {
     selectedImage.sprite     = tile.sprite;
     selectedDescription.text = tile.description;
     selectedTurnsAlive.text  = "Turns alive: " + tileData.turnsAlive.ToString();
     selectedWaterLevel.text  = "Water: " + tileData.WaterAmount().ToString();
 }
Esempio n. 3
0
    public void UpdateTextInfo(WorldTileData tileData)
    {
        positionText.text = "Position: " + tileData.position.x.ToString() + ", " + tileData.position.y.ToString();

        floorTileText.text = "Floor Tile Type: " + tileData.floorType;
        buildTileText.text = "Build Tile Type: " + tileData.buildType;

        traversableText.text = "Traversable: " + tileData.traversable.ToString();
        openText.text        = "Open: " + tileData.openForPlacement.ToString();

        floorNoiseText.text = "Noise: " + tileData.floorNoiseValue.ToString();
        buildNoiseText.text = "Build: " + tileData.buildNoiseValue.ToString();
    }
Esempio n. 4
0
        private SaveData BuildSave()
        {
            var save = new SaveData
            {
                worldData = new WorldData()
                {
                    tileData   = new List <WorldTileData>(),
                    areaData   = new List <WorldAreaData>(),
                    regionData = new List <WorldRegionData>(),
                }
            };

            _tileCount   = 1;
            _areaCount   = 1;
            _regionCount = 1;
            foreach (var worldTile in _tiles)
            {
                var(areaId, area, region) = SaveArea(worldTile.worldArea);
                var tileData = new WorldTileData()
                {
                    id             = _tileCount,
                    position       = worldTile.position,
                    biome          = worldTile.biome,
                    weatherEffects = worldTile.weatherEffects,
                    type           = worldTile.type,
                    terrain        = worldTile.terrain,
                    area           = areaId
                };
                save.worldData.tileData.Add(tileData);
                if (area != null)
                {
                    save.worldData.areaData.Add(area);
                }
                if (region != null)
                {
                    save.worldData.regionData.Add(region);
                }

                _tileCount += 1;
            }

            _savedAreasIdMap.Clear();
            _savedRegionsIdMap.Clear();
            return(save);
        }
Esempio n. 5
0
 void GenerateMapData(int width, int height)
 {
     worldTileData          = new WorldTileData[width, height];
     float[,] floorNoiseMap = Noise.GenerateNoiseMap(width, height, seed, scale, octaves, persistence, lacunarity, offset);
     float[,] buildNoiseMap = Noise.GenerateNoiseMap(width, height, buildSeed, buildScale, buildOctaves, buildPersistence, buildLacunarity, buildOffset);
     for (int x = 0; x < width; x++)
     {
         for (int y = 0; y < height; y++)
         {
             if (floorNoiseMap[x, y] > 0.5)
             {
                 if (buildNoiseMap[x, y] > 0.6)
                 {
                     if (buildNoiseMap[x, y] > 0.7)
                     {
                         worldTileData[x, y] = new WorldTileData(new Vector3Int(x, y, 0), grassTile, treeTile, floorNoiseMap[x, y], buildNoiseMap[x, y]);
                     }
                     else if (buildNoiseMap[x, y] > 0.65)
                     {
                         worldTileData[x, y] = new WorldTileData(new Vector3Int(x, y, 0), grassTile, foodTile, floorNoiseMap[x, y], buildNoiseMap[x, y]);
                     }
                     else
                     {
                         worldTileData[x, y] = new WorldTileData(new Vector3Int(x, y, 0), grassTile, stoneTile, floorNoiseMap[x, y], buildNoiseMap[x, y]);
                     }
                 }
                 else
                 {
                     worldTileData[x, y] = new WorldTileData(new Vector3Int(x, y, 0), grassTile, defaultOpenTile, floorNoiseMap[x, y], buildNoiseMap[x, y]);
                 }
             }
             else
             {
                 worldTileData[x, y] = new WorldTileData(new Vector3Int(x, y, 0), waterTile, defaultOpenTile, floorNoiseMap[x, y], buildNoiseMap[x, y]);
             }
         }
     }
 }
Esempio n. 6
0
    // Start is called before the first frame update
    void Start()
    {
        Screen.SetResolution(1024, 768, false);

        // components
        audioSource = GetComponent <AudioSource>();

        // populate player parameters
        actionPointsLeft = baseActionPoints;
        waterAvailable   = startingWater;

        // populate tile data
        Vector3Int dimensions = gameTiles.size;

        sizeXTiles = dimensions[0];
        xMin       = gameTiles.cellBounds.xMin;
        xMax       = gameTiles.cellBounds.xMax;
        sizeYTiles = dimensions[1];
        yMin       = gameTiles.cellBounds.yMin;
        yMax       = gameTiles.cellBounds.yMax;
        totalTiles = sizeXTiles * sizeYTiles;

        worldTilesData = new WorldTileData[sizeXTiles, sizeYTiles];

        foreach (Vector3Int pos in gameTiles.cellBounds.allPositionsWithin)
        {
            int x = pos[0] - xMin;
            int y = pos[1] - yMin;

            WorldTile tile = GetTileAtPoint(pos);
            worldTilesData[x, y] = new WorldTileData(new Vector3Int(pos[0], pos[1], pos[2]), tile);
        }

        // update HUD with starting values
        hud.UpdateStatusIndicators(actionPointsLeft, turnsUsed, waterAvailable);
    }