MinedMap/resource/generate.py

47 lines
1 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
import json
import os
import sys
if len(sys.argv) != 3:
sys.exit('Usage: generate.py <colors.json> <block_types.rs>')
with open(sys.argv[1]) as f:
colors = json.load(f)
output = {}
with open(sys.argv[2], 'w') as f:
print('use enumflags2::make_bitflags;', file=f);
print('', file=f)
print('use super::*;', file=f)
print('', file=f)
print('pub const BLOCK_TYPES: &[(&str, BlockType)] = &[', file=f)
for name, info in colors.items():
flags = []
if info['opaque']:
flags.append('Opaque')
if info['grass']:
flags.append('Grass')
if info['foliage']:
flags.append('Foliage')
if info['birch']:
flags.append('Birch')
if info['spruce']:
flags.append('Spruce')
if info['water']:
flags.append('Water')
flags = 'make_bitflags!(BlockFlag::{' + '|'.join(flags) + '})'
print('\t("%s", BlockType { flags: %s, color: Color([%u, %u, %u]) }),' % (
name,
flags,
info['color']['r'],
info['color']['g'],
info['color']['b'],
), file=f)
print('];', file=f)