docstrings, type hints, bug fixes
19
samples/dungeon_test.txt
Normal file
|
@ -0,0 +1,19 @@
|
|||
|
||||
....
|
||||
. .
|
||||
....
|
||||
.
|
||||
..... .....
|
||||
.,,,...........
|
||||
.,_,. ..... .
|
||||
.,,,. ..... .
|
||||
..... ..... . ...
|
||||
. .......
|
||||
. ...
|
||||
. ...
|
||||
.....
|
||||
.___.
|
||||
.___.
|
||||
.___.
|
||||
.....
|
||||
|
|
@ -81,7 +81,7 @@ def render(
|
|||
sys.exit(1)
|
||||
|
||||
image = bmap.render()
|
||||
image = image.resize((int(0.5 * image.size[0]), int(0.5 * image.size[1])))
|
||||
# image = image.resize((int(0.5 * image.size[0]), int(0.5 * image.size[1])))
|
||||
image.save(outfile)
|
||||
print(f"Wrote {outfile.stat().st_size} bytes to {outfile}")
|
||||
|
||||
|
|
|
@ -186,33 +186,33 @@ class ImageTile(Tile):
|
|||
pasted into the existing image as squares SIZE/4 pixels on a side, at
|
||||
locations suitable for creating a 32-pixel border around the image.
|
||||
"""
|
||||
rendered = self.image.copy()
|
||||
border_size = (size or rendered.width) / 4
|
||||
if not size:
|
||||
size = self.image.width
|
||||
rendered = self.image.copy().resize((size, size))
|
||||
border_size = int(size/4)
|
||||
|
||||
if nw:
|
||||
rendered.paste(nw.image, (0, 0))
|
||||
rendered.paste(nw.image, (0, 0), nw.image)
|
||||
if n:
|
||||
rendered.paste(n.image, (border_size, 0))
|
||||
rendered.paste(n.image, (border_size * 2, 0))
|
||||
rendered.paste(n.image, (border_size, 0), n.image)
|
||||
rendered.paste(n.image, (border_size * 2, 0), n.image)
|
||||
if ne:
|
||||
rendered.paste(ne.image, (border_size * 3, 0))
|
||||
rendered.paste(ne.image, (border_size * 3, 0), ne.image)
|
||||
if e:
|
||||
rendered.paste(e.image, (border_size * 3, border_size))
|
||||
rendered.paste(e.image, (border_size * 3, border_size * 2))
|
||||
rendered.paste(e.image, (border_size * 3, border_size), e.image)
|
||||
rendered.paste(e.image, (border_size * 3, border_size * 2), e.image)
|
||||
if se:
|
||||
rendered.paste(se.image, (border_size * 3, border_size * 3))
|
||||
rendered.paste(se.image, (border_size * 3, border_size * 3), se.image)
|
||||
if s:
|
||||
rendered.paste(s.image, (border_size, border_size * 3))
|
||||
rendered.paste(s.image, (border_size * 2, border_size * 3))
|
||||
rendered.paste(s.image, (border_size, border_size * 3), s.image)
|
||||
rendered.paste(s.image, (border_size * 2, border_size * 3), s.image)
|
||||
if sw:
|
||||
rendered.paste(sw.image, (0, border_size * 3))
|
||||
rendered.paste(sw.image, (0, border_size * 3), sw.image)
|
||||
if w:
|
||||
rendered.paste(w.image, (0, border_size))
|
||||
rendered.paste(w.image, (0, border_size * 2))
|
||||
rendered.paste(w.image, (0, border_size), w.image)
|
||||
rendered.paste(w.image, (0, border_size * 2), w.image)
|
||||
|
||||
if size == rendered.width and size == rendered.height:
|
||||
return rendered
|
||||
return rendered.resize((size, size))
|
||||
|
||||
|
||||
@dataclass
|
||||
|
@ -326,7 +326,7 @@ class ImageTileSet(TileSet):
|
|||
return self._cache[name]
|
||||
buffer = None
|
||||
if not paths:
|
||||
buffer = Image.new("RGB", (self.tile_size, self.tile_size))
|
||||
buffer = Image.new("RGBA", (self.tile_size, self.tile_size))
|
||||
ImageDraw.Draw(buffer).text((3, 3), name, (255, 255, 255))
|
||||
self._cache[name] = ImageTile(char=char, name=name, paths=paths, buffer=buffer)
|
||||
return self._cache[name]
|
||||
|
|
BIN
src/tilesets/dungeon/empty_1.png
Normal file
After Width: | Height: | Size: 170 KiB |
BIN
src/tilesets/dungeon/grass_1.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
src/tilesets/dungeon/grass_2.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
src/tilesets/dungeon/grass_3.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
src/tilesets/dungeon/stone_1.png
Normal file
After Width: | Height: | Size: 304 KiB |
BIN
src/tilesets/dungeon/stone_2.png
Normal file
After Width: | Height: | Size: 457 KiB |
BIN
src/tilesets/dungeon/stone_3.png
Normal file
After Width: | Height: | Size: 303 KiB |
BIN
src/tilesets/dungeon/stone_4.png
Normal file
After Width: | Height: | Size: 335 KiB |
BIN
src/tilesets/dungeon/stone_5.png
Normal file
After Width: | Height: | Size: 348 KiB |
10
src/tilesets/dungeon/tileset.toml
Normal file
|
@ -0,0 +1,10 @@
|
|||
[tileset]
|
||||
name = "Dungeon Set"
|
||||
desc = "Sample dungeon tiles"
|
||||
size = 128
|
||||
|
||||
[legend]
|
||||
" " = "empty"
|
||||
"." = "stone"
|
||||
"_" = "water"
|
||||
"," = "grass"
|
BIN
src/tilesets/dungeon/water_1.png
Normal file
After Width: | Height: | Size: 31 KiB |