public bool TryGetMapPoint(TerrainMapPoint point, Direction dir, bool onlyIfEmpty, out TerrainMapPoint newMapPoint) { newMapPoint = new TerrainMapPoint() { x = point.x, y = point.y }; switch (dir) { case Direction.Up: ++newMapPoint.x; break; case Direction.Down: --newMapPoint.x; break; case Direction.Left: --newMapPoint.y; break; case Direction.Right: ++newMapPoint.y; break; } return(IsValid(newMapPoint) && (onlyIfEmpty ? (GetTerrainType(newMapPoint) == TerrainType.None) : true)); }
private bool FillFromPoint(TerrainMapPoint point) { Direction exclusionList = Direction.None; do { Direction nextDirection = GetRandomDirection(exclusionList); TerrainMapPoint nextPoint; if (terrain.TryGetEmptyMapPoint(point, nextDirection, out nextPoint)) { MapSquareInfo squareInfo; if (terrain.TrySetPointForBiome(nextPoint, this, out squareInfo)) { mapSquareInfoPoints.Add(squareInfo); } return(true); } else { exclusionList |= nextDirection; } } while (exclusionList != Direction.AllDirections); return(false); }
public void Initialize(TerrainType type, TerrainMapPoint initPoint, Terrain t) { terrain = t; terrainType = type; terrain.SetPoint(initPoint, type); mapPoints.Add(initPoint); }
public bool IsValid(TerrainMapPoint point) { return ( point.x >= 0 && point.x < TerrainSize && point.y >= 0 && point.y < TerrainSize ); }
public bool IsValid(TerrainMapPoint point) { return( point.x >= 0 && point.x < TerrainSize && point.y >= 0 && point.y < TerrainSize ); }
private TerrainMapPoint GetRandomEmptyPoint() { TerrainMapPoint randomPoint = new TerrainMapPoint(); do { randomPoint.x = UnityEngine.Random.Range(0, TerrainSize); randomPoint.y = UnityEngine.Random.Range(0, TerrainSize); } while (GetTerrainType(randomPoint) != TerrainType.None); return(randomPoint); }
public void Initialize(TerrainMapPoint initPoint, Terrain t) { terrain = t; centerPoint = terrain.GetCenterPoint(); terrain.SetPoint(initPoint, TerrainType.Empty); mapPoints.Add(new FloodFillMapPoint() { mapPoint = initPoint, floodFilled = false }); }
public bool SetPoint(TerrainMapPoint point, TerrainType type) { if (GetTerrainType(point) != TerrainType.None) { return false; } else { terrainMap[point.x, point.y].type = type; } return true; }
public void Initialize(TerrainType type, TerrainMapPoint initPoint, TerrainMap t) { thisBiomeID = biomeID++; terrain = t; TerrainType = type; MapSquareInfo squareInfo; if (terrain.TrySetPointForBiome(initPoint, this, out squareInfo)) { mapSquareInfoPoints.Add(squareInfo); } }
public bool TrySetPointForBiome(TerrainMapPoint point, Biome biome, out MapSquareInfo squareInfo) { if (GetTerrainType(point) != TerrainType.None) { squareInfo = null; return(false); } else { terrainMap[point.x, point.y].biomeid = biome.BiomeID; terrainMap[point.x, point.y].type = biome.TerrainType; squareInfo = terrainMap[point.x, point.y]; return(true); } }
private bool FillFromPoint(TerrainMapPoint point) { Direction exclusionList = Direction.None; do { Direction nextDirection = GetRandomDirection(exclusionList); TerrainMapPoint nextPoint; if (terrain.TryGetMapPoint(point, nextDirection, out nextPoint)) { terrain.SetPoint(nextPoint, terrainType); mapPoints.Add(nextPoint); return true; } else { exclusionList |= nextDirection; } } while (exclusionList != Direction.AllDirections); return false; }
public bool TryGetSquareInfo(TerrainMapPoint point, Direction dir, out MapSquareInfo squareInfo) { squareInfo = null; var newMapPoint = new TerrainMapPoint() { x = point.x, y = point.y }; switch (dir) { case Direction.Up: ++newMapPoint.x; break; case Direction.Down: --newMapPoint.x; break; case Direction.Left: --newMapPoint.y; break; case Direction.Right: ++newMapPoint.y; break; } if (IsValid(newMapPoint)) { squareInfo = terrainMap[newMapPoint.x, newMapPoint.y]; } return(squareInfo != null); }
public bool TryGetMapPoint(TerrainMapPoint point, Direction dir, out TerrainMapPoint newMapPoint) { newMapPoint = new TerrainMapPoint() { x = point.x, y = point.y }; switch (dir) { case Direction.Up: ++newMapPoint.x; break; case Direction.Down: --newMapPoint.x; break; case Direction.Left: --newMapPoint.y; break; case Direction.Right: ++newMapPoint.y; break; } return IsValid(newMapPoint) && (GetTerrainType(newMapPoint) == TerrainType.None); }
private TerrainMapPoint GetRandomEmptyPoint() { TerrainMapPoint randomPoint = new TerrainMapPoint(); do { randomPoint.x = UnityEngine.Random.Range(0, 100); randomPoint.y = UnityEngine.Random.Range(0, 100); } while (GetTerrainType(randomPoint) != TerrainType.None); return randomPoint; }
public TerrainType GetTerrainType(TerrainMapPoint point) { return(terrainMap[point.x, point.y].type); }
public bool TryGetEmptyMapPoint(TerrainMapPoint point, Direction dir, out TerrainMapPoint newMapPoint) { return(TryGetMapPoint(point, dir, true, out newMapPoint)); }
public TerrainType GetTerrainType(TerrainMapPoint point) { return terrainMap[point.x, point.y].type; }