fixed pause menu and made world_map a component of world
This commit is contained in:
parent
bfabba3d82
commit
45e7a8927a
3 changed files with 41 additions and 25 deletions
|
|
@ -14,13 +14,18 @@ from game.tags import IsActor, IsItem, IsPlayer, IsDoor
|
|||
|
||||
def add_wall(pos, remove=False):
|
||||
r_pos = g.world_center + pos
|
||||
g.world_map.walkable[r_pos.y][r_pos.x] = remove
|
||||
map = g.world[None].components[Map]
|
||||
map.walkable[r_pos.y][r_pos.x] = remove
|
||||
map.transparent[r_pos.y][r_pos.x] = remove
|
||||
|
||||
def add_door(pos):
|
||||
door = g.world[object()]
|
||||
door.tags.add(IsDoor)
|
||||
door.components[Position] = pos
|
||||
door.components[Graphic] = Graphic(ord("\\"))
|
||||
g.world.new_entity(
|
||||
components={
|
||||
Position: pos,
|
||||
Graphic: Graphic(ord('\\'))
|
||||
},
|
||||
tags=[IsDoor]
|
||||
)
|
||||
add_wall(pos)
|
||||
|
||||
|
||||
|
|
@ -28,22 +33,36 @@ def new_world() -> Registry:
|
|||
"""Return a freshly generated world."""
|
||||
world = Registry()
|
||||
g.world = world
|
||||
g.world_map = Map(100, 100)
|
||||
g.world_map.walkable[:] = True
|
||||
|
||||
map = world[None].components[Map] = Map(100, 100)
|
||||
map.walkable[:] = True
|
||||
map.transparent[:] = True
|
||||
|
||||
rng = world[None].components[Random] = Random()
|
||||
|
||||
player = world[object()]
|
||||
player.components[Position] = Position(5, 5)
|
||||
player.components[Graphic] = Graphic(ord("@"))
|
||||
player.components[Gold] = 0
|
||||
player.tags |= {IsPlayer, IsActor}
|
||||
world.new_entity(
|
||||
components={
|
||||
Position: Position(5,5),
|
||||
Graphic: Graphic(ord('@')),
|
||||
Gold: 0
|
||||
},
|
||||
tags=[IsActor, IsPlayer]
|
||||
)
|
||||
# player = world[object()] # <- das hier ist das gleiche wie das world.new_entity darüber
|
||||
# player.components[Position] = Position(5, 5)
|
||||
# player.components[Graphic] = Graphic(ord("@"))
|
||||
# player.components[Gold] = 0
|
||||
# player.tags |= {IsPlayer, IsActor}
|
||||
|
||||
for _ in range(10):
|
||||
gold = world[object()]
|
||||
gold.components[Position] = Position(rng.randint(0, 20), rng.randint(0, 20))
|
||||
gold.components[Graphic] = Graphic(ord("$"), fg=(255, 255, 0))
|
||||
gold.components[Gold] = rng.randint(1, 10)
|
||||
gold.tags |= {IsItem}
|
||||
world.new_entity(
|
||||
components={
|
||||
Position: Position(rng.randint(0, 20), rng.randint(0, 20)),
|
||||
Graphic: Graphic(ord("$"), fg=(255, 255, 0)),
|
||||
Gold: rng.randint(1, 10)
|
||||
},
|
||||
tags=[IsItem]
|
||||
)
|
||||
|
||||
for i in range(20):
|
||||
if i == 5 or i == 9:
|
||||
|
|
@ -57,5 +76,4 @@ def new_world() -> Registry:
|
|||
def unlock_door(door: Entity):
|
||||
door.components[Graphic] = Graphic(ord("_"))
|
||||
door.tags.clear()
|
||||
pos = door.components[Position]
|
||||
add_wall(pos, remove=True)
|
||||
add_wall(door.components[Position], remove=True)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue