summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/mkasset.py28
1 files changed, 7 insertions, 21 deletions
diff --git a/tools/mkasset.py b/tools/mkasset.py
index 9b9dc76..62d1d88 100644
--- a/tools/mkasset.py
+++ b/tools/mkasset.py
@@ -51,14 +51,9 @@ def carve_image(rgba_bytes, tile_width, tile_height, columns) -> Generator[bytea
51 image_width = columns * tile_width 51 image_width = columns * tile_width
52 image_height = len(rgba_bytes) // image_width // 4 52 image_height = len(rgba_bytes) // image_width // 4
53 53
54 tiles_x = image_width // tile_width
55 tiles_y = image_height // tile_height
56
57 tile_bytes = bytearray(tile_width * tile_height * 4) 54 tile_bytes = bytearray(tile_width * tile_height * 4)
58 for i in range(tiles_y): 55 for image_y0 in range(0, image_height, tile_height): # y-origin of tile inside image
59 image_y0 = i * tile_height # y-origin of tile inside image 56 for image_x0 in range(0, image_width, tile_width): # x-origin of tile inside image
60 for j in range(tiles_x):
61 image_x0 = j * tile_width # x-origin of tile inside image
62 for y in range(tile_height): 57 for y in range(tile_height):
63 image_y = image_y0 + y # y of current pixel inside image 58 image_y = image_y0 + y # y of current pixel inside image
64 for x in range(tile_width): 59 for x in range(tile_width):
@@ -349,25 +344,16 @@ def convert_sprite_sheet(input_file_paths, sprite_width, sprite_height,
349 # that. getcolors() returns the number of unique colors. 344 # that. getcolors() returns the number of unique colors.
350 # getpalette() also returns a flattened list, which is why we must *4. 345 # getpalette() also returns a flattened list, which is why we must *4.
351 num_colours = len(im.getcolors()) 346 num_colours = len(im.getcolors())
352 colours = im.getpalette(rawmode="RGBA")[:4 * num_colours] 347 palette = bytearray(im.getpalette(rawmode="RGBA")[:4 * num_colours])
353 # TODO: This palette list does not seem really necessary. 348 assert (num_colours == (len(palette) // 4))
354 # Define palette = bytearray(im.getpalette(...))
355 palette = []
356 for i in range(0, 4 * num_colours, 4):
357 palette.append((colours[i], colours[i + 1], colours[i + 2],
358 colours[i + 3]))
359 349
360 output.write(ctypes.c_uint16(len(palette))) 350 output.write(ctypes.c_uint16(num_colours))
361 output.write(bytearray(colours)) 351 output.write(palette)
362 352
363 print(f"Sprite width: {sprite_width}") 353 print(f"Sprite width: {sprite_width}")
364 print(f"Sprite height: {sprite_height}") 354 print(f"Sprite height: {sprite_height}")
365 print(f"Rows: {len(rows)}") 355 print(f"Rows: {len(rows)}")
366 print(f"Colours: {len(palette)}") 356 print(f"Colours: {num_colours}")
367
368 # print("Palette")
369 # for i, colour in enumerate(palette):
370 # print(f"{i}: {colour}")
371 357
372 for row, num_columns in enumerate(rows): 358 for row, num_columns in enumerate(rows):
373 output.write(ctypes.c_uint16(num_columns)) 359 output.write(ctypes.c_uint16(num_columns))