The original font is a bit of a mess, and includes many duplicate characters. I decided to reorganize the characters in a new set of glyphs, in derivced/font.png. This also includes very basic parsing for text data.
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
from parse import parse
|
|
|
|
from generate.generate import renderer
|
|
from generate.tilesets import sorted_tilesets_constants_list
|
|
|
|
def includes_header():
|
|
yield '#include <cstdint>'
|
|
yield ''
|
|
|
|
def extern_collision_tile_ids():
|
|
for name, index in sorted_tilesets_constants_list():
|
|
tileset_header = parse.tileset_headers_list()[index]
|
|
coll_path = tileset_header.coll()
|
|
tile_ids = parse.collision_tile_ids_list()[coll_path]
|
|
yield f"extern uint8_t {coll_path}[{len(tile_ids)}];"
|
|
|
|
def generate_header():
|
|
render, out = renderer()
|
|
render(includes_header())
|
|
render(extern_collision_tile_ids())
|
|
return out
|
|
|
|
def collision_array(name, index):
|
|
tileset_header = parse.tileset_headers_list()[index]
|
|
coll_path = tileset_header.coll()
|
|
tile_ids = parse.collision_tile_ids_list()[coll_path]
|
|
yield f"uint8_t {coll_path}[] = {{"
|
|
yield " ".join(
|
|
f"{tile_ix},"
|
|
for tile_ix in sorted(tile_ids)
|
|
)
|
|
yield "};"
|
|
|
|
def collision_tile_ids():
|
|
for name, index in sorted_tilesets_constants_list():
|
|
yield from collision_array(name, index)
|
|
|
|
def includes_source():
|
|
yield '#include <cstdint>'
|
|
yield ''
|
|
yield '#include "collision_tile_ids.hpp"'
|
|
yield ''
|
|
|
|
def generate_source():
|
|
render, out = renderer()
|
|
render(includes_source())
|
|
render(collision_tile_ids());
|
|
return out
|