aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/tiles/gate_lr.png (renamed from assets/tiles/gate_wall_h.png)bin10783 -> 10783 bytes
-rw-r--r--assets/tiles/tower_l.png (renamed from assets/tiles/tower_left_wall.png)bin11718 -> 11718 bytes
-rw-r--r--assets/tiles/tower_lr.png (renamed from assets/tiles/tower_in_wall.png)bin13521 -> 13521 bytes
-rw-r--r--assets/tiles/tower_lru.pngbin0 -> 14131 bytes
-rw-r--r--assets/tiles/tower_lu.pngbin0 -> 13315 bytes
-rw-r--r--assets/tiles/tower_r.png (renamed from assets/tiles/tower_right_wall.png)bin12801 -> 12801 bytes
-rw-r--r--assets/tiles/tower_ru.pngbin0 -> 13352 bytes
-rw-r--r--assets/tiles/wall_lr.png (renamed from assets/tiles/wall_h.png)bin7655 -> 7655 bytes
-rwxr-xr-xscripts/generate_map_img.py40
9 files changed, 26 insertions, 14 deletions
diff --git a/assets/tiles/gate_wall_h.png b/assets/tiles/gate_lr.png
index 95c2b3e3..95c2b3e3 100644
--- a/assets/tiles/gate_wall_h.png
+++ b/assets/tiles/gate_lr.png
Binary files differ
diff --git a/assets/tiles/tower_left_wall.png b/assets/tiles/tower_l.png
index 2a86b655..2a86b655 100644
--- a/assets/tiles/tower_left_wall.png
+++ b/assets/tiles/tower_l.png
Binary files differ
diff --git a/assets/tiles/tower_in_wall.png b/assets/tiles/tower_lr.png
index e3d9cc85..e3d9cc85 100644
--- a/assets/tiles/tower_in_wall.png
+++ b/assets/tiles/tower_lr.png
Binary files differ
diff --git a/assets/tiles/tower_lru.png b/assets/tiles/tower_lru.png
new file mode 100644
index 00000000..c8d86f98
--- /dev/null
+++ b/assets/tiles/tower_lru.png
Binary files differ
diff --git a/assets/tiles/tower_lu.png b/assets/tiles/tower_lu.png
new file mode 100644
index 00000000..37196cc0
--- /dev/null
+++ b/assets/tiles/tower_lu.png
Binary files differ
diff --git a/assets/tiles/tower_right_wall.png b/assets/tiles/tower_r.png
index 27683590..27683590 100644
--- a/assets/tiles/tower_right_wall.png
+++ b/assets/tiles/tower_r.png
Binary files differ
diff --git a/assets/tiles/tower_ru.png b/assets/tiles/tower_ru.png
new file mode 100644
index 00000000..65cf5ccc
--- /dev/null
+++ b/assets/tiles/tower_ru.png
Binary files differ
diff --git a/assets/tiles/wall_h.png b/assets/tiles/wall_lr.png
index 3d49ffcb..3d49ffcb 100644
--- a/assets/tiles/wall_h.png
+++ b/assets/tiles/wall_lr.png
Binary files differ
diff --git a/scripts/generate_map_img.py b/scripts/generate_map_img.py
index a2bdf434..b8b1e225 100755
--- a/scripts/generate_map_img.py
+++ b/scripts/generate_map_img.py
@@ -16,6 +16,8 @@ SHOW_MAP = False
Row = Sequence[str]
Tiles = Sequence[Row]
+FORTIFICATIONS = ['tower', 'gate', 'wall']
+
def get_tile_path(tile: str) -> pathlib.Path:
"""Return the corresponding image file name for a tile"""
@@ -117,7 +119,7 @@ def find_wall_tile(tiles: Sequence[Sequence[str]], x: int, y: int):
left, right, above, below = is_connected_to(tiles,
x,
y,
- kind=['wall', 'tower', 'gate'])
+ kind=FORTIFICATIONS)
connections = count_connections(left, right, above, below)
@@ -137,7 +139,7 @@ def find_wall_tile(tiles: Sequence[Sequence[str]], x: int, y: int):
elif connections == 1 or (connections == 2 and ((left and right) or
(above and below))):
if above or below:
- tile_img = cv2.imread(str(get_tile_path('wall_h')))
+ tile_img = cv2.imread(str(get_tile_path('wall_lr')))
else:
tile_img = cv2.imread(str(get_tile_path('wall')))
@@ -163,7 +165,7 @@ def find_gate_tile(tiles: Sequence[Sequence[str]], x: int, y: int):
left, right, above, below = is_connected_to(tiles,
x,
y,
- kind=['wall', 'tower'])
+ kind=FORTIFICATIONS)
connections = count_connections(left, right, above, below)
@@ -175,7 +177,7 @@ def find_gate_tile(tiles: Sequence[Sequence[str]], x: int, y: int):
return cv2.imread(str(get_tile_path('gate')))
if left or right:
- return cv2.imread(str(get_tile_path('gate_wall_h')))
+ return cv2.imread(str(get_tile_path('gate_lr')))
return cv2.imread(str(get_tile_path('gate')))
@@ -185,7 +187,7 @@ def find_tower_tile(tiles: Sequence[Sequence[str]], x: int, y: int):
left, right, above, below = is_connected_to(tiles,
x,
y,
- kind=['wall', 'gate'])
+ kind=FORTIFICATIONS)
connections = count_connections(left, right, above, below)
@@ -193,18 +195,28 @@ def find_tower_tile(tiles: Sequence[Sequence[str]], x: int, y: int):
if connections == 0:
return cv2.imread(str(get_tile_path('tower')))
- if left and (not right and not is_right_edge(tiles, x, y)):
- return cv2.imread(str(get_tile_path('tower_left_wall')))
+ # generate connection selector
+ selector = ''
+ if left:
+ selector += 'l'
+
+ if right:
+ selector += 'r'
+
+ if above:
+ selector += 'u'
- if right and (not left and not is_left_edge(tiles, x)):
- return cv2.imread(str(get_tile_path('tower_right_wall')))
+ # corner cases where tower is placed on the edge
+ if selector and 'r' not in selector and is_right_edge(tiles, x, y):
+ selector += 'r'
- # We reach this if either right and left are connected or
- # one side is connected and this tile is on the edge
- if right or left:
- return cv2.imread(str(get_tile_path('tower_in_wall')))
+ if selector and 'l' not in selector and is_left_edge(tiles, x):
+ selector += 'l'
- return cv2.imread(str(get_tile_path('tower')))
+ tile_name = 'tower'
+ if selector:
+ tile_name = f'{tile_name}_{selector}'
+ return cv2.imread(str(get_tile_path(tile_name)))
TILE_SELECTORS = {