33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
from survival.entity_layer import EntityLayer
|
|
from survival.tile_layer import TileLayer
|
|
|
|
|
|
class GameMap:
|
|
def __init__(self, width, height):
|
|
self.width = width
|
|
self.height = height
|
|
self.tile_layer = TileLayer(width, height)
|
|
self.entity_layer = EntityLayer(width, height)
|
|
|
|
def draw(self, camera):
|
|
visible_area = camera.get_visible_area()
|
|
self.tile_layer.draw(camera, visible_area)
|
|
|
|
def add_entity(self, entity, pos):
|
|
self.entity_layer.add_entity(entity, pos.grid_position)
|
|
|
|
def move_entity(self, from_pos, to_pos):
|
|
self.entity_layer.move_entity(from_pos, to_pos)
|
|
|
|
def remove_entity(self, pos):
|
|
self.entity_layer.remove_entity(pos)
|
|
|
|
def get_entity(self, pos) -> int:
|
|
return self.entity_layer.get_entity(pos)
|
|
|
|
def is_colliding(self, pos):
|
|
return pos[0] < 0 or pos[0] >= self.width or pos[1] < 0 or pos[1] >= self.height or self.entity_layer.is_colliding(pos)
|
|
|
|
def get_cost(self, pos):
|
|
return self.tile_layer.get_cost(pos)
|