docstrings, type hints, bug fixes

This commit is contained in:
evilchili 2025-08-08 22:29:46 -07:00
parent e82c5ebc59
commit 186604e94f
14 changed files with 48 additions and 19 deletions

19
samples/dungeon_test.txt Normal file
View File

@ -0,0 +1,19 @@
....
. .
....
.
..... .....
.,,,...........
.,_,. ..... .
.,,,. ..... .
..... ..... . ...
. .......
. ...
. ...
.....
.___.
.___.
.___.
.....

View File

@ -81,7 +81,7 @@ def render(
sys.exit(1) sys.exit(1)
image = bmap.render() 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) image.save(outfile)
print(f"Wrote {outfile.stat().st_size} bytes to {outfile}") print(f"Wrote {outfile.stat().st_size} bytes to {outfile}")

View File

@ -186,33 +186,33 @@ class ImageTile(Tile):
pasted into the existing image as squares SIZE/4 pixels on a side, at 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. locations suitable for creating a 32-pixel border around the image.
""" """
rendered = self.image.copy() if not size:
border_size = (size or rendered.width) / 4 size = self.image.width
rendered = self.image.copy().resize((size, size))
border_size = int(size/4)
if nw: if nw:
rendered.paste(nw.image, (0, 0)) rendered.paste(nw.image, (0, 0), nw.image)
if n: if n:
rendered.paste(n.image, (border_size, 0)) rendered.paste(n.image, (border_size, 0), n.image)
rendered.paste(n.image, (border_size * 2, 0)) rendered.paste(n.image, (border_size * 2, 0), n.image)
if ne: if ne:
rendered.paste(ne.image, (border_size * 3, 0)) rendered.paste(ne.image, (border_size * 3, 0), ne.image)
if e: if e:
rendered.paste(e.image, (border_size * 3, border_size)) rendered.paste(e.image, (border_size * 3, border_size), e.image)
rendered.paste(e.image, (border_size * 3, border_size * 2)) rendered.paste(e.image, (border_size * 3, border_size * 2), e.image)
if se: 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: if s:
rendered.paste(s.image, (border_size, border_size * 3)) rendered.paste(s.image, (border_size, border_size * 3), s.image)
rendered.paste(s.image, (border_size * 2, border_size * 3)) rendered.paste(s.image, (border_size * 2, border_size * 3), s.image)
if sw: if sw:
rendered.paste(sw.image, (0, border_size * 3)) rendered.paste(sw.image, (0, border_size * 3), sw.image)
if w: if w:
rendered.paste(w.image, (0, border_size)) rendered.paste(w.image, (0, border_size), w.image)
rendered.paste(w.image, (0, border_size * 2)) rendered.paste(w.image, (0, border_size * 2), w.image)
if size == rendered.width and size == rendered.height:
return rendered return rendered
return rendered.resize((size, size))
@dataclass @dataclass
@ -326,7 +326,7 @@ class ImageTileSet(TileSet):
return self._cache[name] return self._cache[name]
buffer = None buffer = None
if not paths: 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)) ImageDraw.Draw(buffer).text((3, 3), name, (255, 255, 255))
self._cache[name] = ImageTile(char=char, name=name, paths=paths, buffer=buffer) self._cache[name] = ImageTile(char=char, name=name, paths=paths, buffer=buffer)
return self._cache[name] return self._cache[name]

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

View File

@ -0,0 +1,10 @@
[tileset]
name = "Dungeon Set"
desc = "Sample dungeon tiles"
size = 128
[legend]
" " = "empty"
"." = "stone"
"_" = "water"
"," = "grass"

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB