Added a way to specify seam texture via arg
This commit is contained in:
parent
31cf003692
commit
c3f9581b52
16
make.py
16
make.py
|
@ -18,7 +18,6 @@ GLASS_OUTPUT_PATH = (
|
||||||
)
|
)
|
||||||
|
|
||||||
TEXTURES_PATH: str = "assets/minecraft/textures"
|
TEXTURES_PATH: str = "assets/minecraft/textures"
|
||||||
SEAM_TEXTURE_NAME: str = "block.dark_oak_planks"
|
|
||||||
GLASS_COLORS: list[str] = [
|
GLASS_COLORS: list[str] = [
|
||||||
"black",
|
"black",
|
||||||
"blue",
|
"blue",
|
||||||
|
@ -117,7 +116,7 @@ async def download_if_missing(url: str, path: Union[Path, str]):
|
||||||
progress.advance(task, fout.write(chunk))
|
progress.advance(task, fout.write(chunk))
|
||||||
|
|
||||||
|
|
||||||
async def main():
|
async def main(seam_texture: str = "block.dark_oak_planks"):
|
||||||
INPUT_PATH.mkdir(exist_ok=True)
|
INPUT_PATH.mkdir(exist_ok=True)
|
||||||
TEXTURES_CACHE.mkdir(exist_ok=True)
|
TEXTURES_CACHE.mkdir(exist_ok=True)
|
||||||
GLASS_CACHE_SEAMLESS.mkdir(exist_ok=True)
|
GLASS_CACHE_SEAMLESS.mkdir(exist_ok=True)
|
||||||
|
@ -154,7 +153,7 @@ async def main():
|
||||||
fp_out.write(chunk)
|
fp_out.write(chunk)
|
||||||
return out_path
|
return out_path
|
||||||
|
|
||||||
extract_texture(SEAM_TEXTURE_NAME)
|
extract_texture(seam_texture)
|
||||||
for color in GLASS_COLORS:
|
for color in GLASS_COLORS:
|
||||||
extract_texture(f"block.{color}_stained_glass")
|
extract_texture(f"block.{color}_stained_glass")
|
||||||
|
|
||||||
|
@ -183,7 +182,7 @@ async def main():
|
||||||
ox, oy = (i % 8) * 16, (i // 8) * 16
|
ox, oy = (i % 8) * 16, (i // 8) * 16
|
||||||
ctm_list.append(im.crop((ox, oy, ox + 16, oy + 16)).convert("1"))
|
ctm_list.append(im.crop((ox, oy, ox + 16, oy + 16)).convert("1"))
|
||||||
|
|
||||||
border_texture = Image.open(TEXTURES_CACHE / f"{SEAM_TEXTURE_NAME}.png")
|
border_texture = Image.open(TEXTURES_CACHE / f"{seam_texture}.png")
|
||||||
|
|
||||||
print("[ + ] Creating connected textures")
|
print("[ + ] Creating connected textures")
|
||||||
for color in GLASS_COLORS:
|
for color in GLASS_COLORS:
|
||||||
|
@ -195,16 +194,18 @@ async def main():
|
||||||
fp.write(f"matchBlocks=seasonsextras:{texture_name}\n")
|
fp.write(f"matchBlocks=seasonsextras:{texture_name}\n")
|
||||||
fp.write(f"tiles=0-46\n")
|
fp.write(f"tiles=0-46\n")
|
||||||
fp.write(f"connect=block\n")
|
fp.write(f"connect=block\n")
|
||||||
fp.write(f"resourceCondition=seasonextras:textures/block/{texture_name}.png\n")
|
fp.write(f"resourceCondition=seasonsextras:textures/block/{texture_name}.png\n")
|
||||||
with Image.open(GLASS_CACHE_SEAMLESS / f"{color}.png") as glass:
|
with Image.open(GLASS_CACHE_SEAMLESS / f"{color}.png") as glass:
|
||||||
for i in range(47):
|
for i in range(47):
|
||||||
ctm = Image.composite(border_texture, glass, ctm_list[i])
|
ctm = Image.composite(border_texture, glass, ctm_list[i])
|
||||||
ctm.save(out_path / f"{i}.png")
|
ctm.save(out_path / f"{i}.png")
|
||||||
|
if i == 0:
|
||||||
|
ctm.save(OUTPUT_PATH / "assets/seasonsextras/textures/block/{texture_name}.png")
|
||||||
with (OUTPUT_PATH / "pack.mcmeta").open("w") as fp:
|
with (OUTPUT_PATH / "pack.mcmeta").open("w") as fp:
|
||||||
json.dump({
|
json.dump({
|
||||||
"pack": {
|
"pack": {
|
||||||
"pack_format": 15,
|
"pack_format": 15,
|
||||||
"description": "CTM support for Fabric Seasons Extras. Also, nicer textures in general"
|
"description": f"CTM support for Fabric Seasons Extras. {seam_texture}"
|
||||||
}
|
}
|
||||||
}, fp, indent=2, ensure_ascii=False)
|
}, fp, indent=2, ensure_ascii=False)
|
||||||
|
|
||||||
|
@ -214,4 +215,5 @@ async def main():
|
||||||
zipf.write(file, Path(*file.parts[1:]))
|
zipf.write(file, Path(*file.parts[1:]))
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
asyncio.run(main())
|
from sys import argv
|
||||||
|
asyncio.run(main(*argv[1:]))
|
||||||
|
|
Loading…
Reference in New Issue