Commit 01/06-24

This commit is contained in:
Hannah-Dagemark 2024-06-01 03:23:34 +02:00
commit efb4ebce97
9 changed files with 152 additions and 51 deletions

View file

@ -148,14 +148,18 @@ class MapManager:
tilesMapped[position[0]][position[1]] = self.TileWorker.get_rand_tType(tilesMapped, position)
#print(f"{tilesMapped}")
mappedColours = self.TileWorker.get_terrain("colours")
print("Assigning terrains and features...")
for x in self.tiles.keys():
tile = self.tiles[f"{x}"]
if tilesMapped[tile.Position[0]][tile.Position[1]] != "":
colour = mappedColours[f"{tilesMapped[tile.Position[0]][tile.Position[1]]}"]
terrain = f"{tilesMapped[tile.Position[0]][tile.Position[1]]}"
colour = mappedColours[terrain]
colour1, colour2, colour3 = colour[0], colour[1], colour[2]
tile.add_terrain(f"{tilesMapped[tile.Position[0]][tile.Position[1]]}")
tile.add_terrain(terrain)
tile.paint_pixels(mapObject, int(colour1),int(colour2),int(colour3))
tile.findBorder(mapObject)
tile.add_resources(self.TileWorker.get_resource_for(terrain))
def re_load(self):
print("To Be Implomented")
@ -179,6 +183,30 @@ class MapManager:
print(f"Could not find tile at position: {pos[0]},{pos[1]}")
return None
def findBorderTiles(self, id):
bTiles = []
id = int(id)
pos = self.tiles[str(id)].Position
if id != 0:
bTiles.append(id-1)
if self.findTileAtRel((pos[0],pos[1]-1)):
bTiles.append(self.findTileAtRel((pos[0],pos[1]-1)))
if self.findTileAtRel((pos[0],pos[1]+1)):
bTiles.append(self.findTileAtRel((pos[0],pos[1]+1)))
if pos[1] % 2 == 1:
pos1 = (pos[0]+1)
else:
pos1 = (pos[0]-1)
bTiles.append(self.findTileAtRel((pos1,pos[1]-1)))
bTiles.append(self.findTileAtRel((pos1,pos[1]+1)))
if pos[1] == self.tiles[str(id+1)].Position[1]:
bTiles.append(id+1)
print(f"Tile: {id}/{pos} has bordertiles: ")
for tile in bTiles:
print(f"{tile}/{self.tiles[str(tile)].Position}")
return bTiles
def findTileAtRel(self, pos):
for x in self.tiles.keys():
tile = self.tiles[f"{x}"]
@ -200,6 +228,10 @@ class MapManager:
info["gameplay"] = thistile.getGameplayInfo()
return info
def illegalTilePaint(self, id, mapObject):
tile = self.tiles[str(id)]
tile.paint_border_pixels(mapObject)
def paintTileBorder(self, id, mapObject):
if self.paintedTile != None:
self.clearPaintedTile(mapObject)
@ -233,7 +265,7 @@ class Tile:
self.pixels = []
self.colour = (0,0,0)
self.terrain = ""
self.resources = {}
self.resources = []
self.buildings = []
self.units = {}
self.owner = "Unclaimed"
@ -264,6 +296,10 @@ class Tile:
def add_terrain(self, terrain):
self.terrain = terrain
#print(f"Added terrain for tile {self.Id}, it is now a {self.terrain} / {terrain} biome")
def add_resources(self, resources):
for resource in resources:
self.resources.append(resource)
def paint_pixels(self, map, r,g,b):
for pixel in self.pixels:

View file

@ -4,19 +4,19 @@ class TerrainWorker:
def generateTerrain(self):
self.terrains = []
ocean = Terrain("ocean", (0, 102, 255), 2, True, ("plains", "forest", "hills"))
ocean = Terrain("ocean", (0, 102, 255), 2, True, ("plains", "forest", "hills"),((0.5,"food"),))
self.terrains.append(ocean)
lake = Terrain("lake", (0, 204, 255), 1, True, ("plains", "forest", "hills"))
lake = Terrain("lake", (0, 204, 255), 1, True, ("plains", "forest", "hills"),((1,"food"),))
self.terrains.append(lake)
plains = Terrain("plains", (0, 200, 0), 1, False, ("ocean", "lake", "forest", "hills", "desert"))
plains = Terrain("plains", (0, 200, 0), 1, False, ("ocean", "lake", "forest", "hills", "desert"),((0.5,"food"),(0.25,"wood"),(0.25,"stone")))
self.terrains.append(plains)
forest = Terrain("forest", (0, 100, 0), 2, False, ("ocean", "lake", "plains", "hills"))
forest = Terrain("forest", (0, 100, 0), 2, False, ("ocean", "lake", "plains", "hills"),((1,"wood"),(0.25,"stone"),(0.25,"food")))
self.terrains.append(forest)
hills = Terrain("hills", (102, 102, 153), 2, False, ("ocean", "lake", "plains", "forest"))
hills = Terrain("hills", (102, 102, 153), 2, False, ("ocean", "lake", "plains", "forest"),((1,"stone"),(0.25,"wood"),(0.25,"food")))
self.terrains.append(hills)
desert = Terrain("desert", (230, 230, 0), 1, False, ("plains", "dune"))
desert = Terrain("desert", (230, 230, 0), 1, False, ("plains", "dune"),((0.25,"stone"),))
self.terrains.append(desert)
dune = Terrain("dune", (153, 153, 0), 2, False, ("desert",))
dune = Terrain("dune", (153, 153, 0), 2, False, ("desert",),((0.5,"stone"),))
self.terrains.append(dune)
self.terrainNames = []
for terrain in self.terrains:
@ -34,6 +34,11 @@ class TerrainWorker:
#print(f"{dictionary}")
return dictionary
def get_resource_for(self, terrainName):
for terrain in self.terrains:
if terrain.name == terrainName:
return terrain.resources
def biomebalance(self, biome):
if biome == "ocean":
return 2
@ -83,9 +88,10 @@ class TerrainWorker:
class Terrain:
def __init__(self, name, colour, moveC, water, proxys):
def __init__(self, name, colour, moveC, water, proxys, resources):
self.name = name
self.colour = colour
self.moveCost = moveC
self.isWater = water
self.proxys = proxys
self.proxys = proxys
self.resources = resources