funk/tools/palstr2paldef

30 lines
869 B
Python
Executable File

#!/usr/bin/python
import argparse
HEADER = "palette.register(\"{}\",{{"
COLOR_STR = "{{{},{},{}}}"
FOOTER = "})"
parser = argparse.ArgumentParser(description="Converts TIC-80 style pal strings to palette definitions (for src/palette.lua)")
parser.add_argument("palstr",help="File with the palette string.")
parser.add_argument("paldef",help="File to put result in.")
parser.add_argument("name",help="Name of palette. Defaults to 'New palette'.",default="New palette")
args = parser.parse_args()
def split(s,n):
for i in range(0,len(s),n):
yield s[i:i+n]
t = []
with open(args.palstr) as f:
t = [[int(x,16) for x in split(y,2)] for y in split(f.read().strip(),6)]
#print(t)
with open(args.paldef,"w") as f:
f.write(HEADER.format(args.name))
for i in range(len(t)):
c = t[i]
f.write(COLOR_STR.format(*c))
if (i+1)<len(t):
f.write(",")
f.write(FOOTER)