switcher/tile_compiler.py

38 lines
953 B
Python
Executable File

#!/usr/bin/env python3
import sys
with open(sys.argv[1], 'r') as f:
lines = [line.rstrip('\n') for line in f]
colours = {}
colour_lines = True
data = []
for i, line in enumerate(lines):
linenum = i + 1
if colour_lines and line == '----------':
colour_lines = False
continue
if colour_lines:
char = line[0]
colour = line[1:]
colours[char] = colour
elif len(line) != 10:
print(f'{sys.argv[0]}: {sys.argv[1]}: line {linenum} is {len(line)} wide, expected 10', file=sys.stderr)
sys.exit(1)
else:
data.append(line)
if len(data) != 10:
print(f'{sys.argv[0]}: {sys.argv[1]}: {len(data)} lines of data, expected 10', file=sys.stderr)
name = sys.argv[1].rsplit(".", 1)[0]
if len(sys.argv) == 3 and sys.argv[2] == 'reversed':
data = [''.join(reversed(line)) for line in data]
name = name + '_reversed'
print(f'enum palette {name}[] = {{')
for line in data:
print('\t' + ', '.join(colours[char] for char in line) + ',')
print('};')