Files
sanctuary-beta/tools/generate-metatable-models.py
2026-09-17 03:10:39 +02:00

18 lines
1.1 KiB
Python

"""Tile the creator's 48x48 top and 48x16 side, without resampling either PNG."""
import json
from pathlib import Path
root=Path(__file__).resolve().parents[1]/'mods/sanctuary/src/main/resources/assets/sanctuary'
models=root/'models/block/metatable';models.mkdir(parents=True,exist_ok=True)
variants={}
for z in range(3):
for x in range(3):
part=x+3*z;faces={}
for d,u in [('north',2-x),('south',x),('east',2-z),('west',z)]:
faces[d]={'texture':'#side','cullface':d,'uv':[u*16/3,0,(u+1)*16/3,16]}
faces['up']={'texture':'#top','cullface':'up','uv':[x*16/3,z*16/3,(x+1)*16/3,(z+1)*16/3]}
faces['down']={'texture':'#bottom','cullface':'down','uv':[0,0,16,16]}
model={'textures':{'top':'sanctuary:block/metatable/top','side':'sanctuary:block/metatable/side','bottom':'minecraft:block/oak_planks','particle':'sanctuary:block/metatable/side'},'elements':[{'from':[0,0,0],'to':[16,16,16],'faces':faces}]}
(models/f'{part}.json').write_text(json.dumps(model,indent=2)+'\n')
variants[f'part={part}']={'model':f'sanctuary:block/metatable/{part}'}
(root/'blockstates/metatable.json').write_text(json.dumps({'variants':variants},indent=2)+'\n')