64 lines
2.2 KiB
Python
64 lines
2.2 KiB
Python
|
|
from dataclasses import dataclass
|
|
from json import dump
|
|
|
|
@dataclass
|
|
class RandomItemStack:
|
|
item: str
|
|
count: int = 1
|
|
chance: float = 1
|
|
|
|
recipes: dict[str, list[RandomItemStack]] = {
|
|
"ironchests:copper_chest": [
|
|
RandomItemStack("minecraft:chest", 1, 0.9),
|
|
RandomItemStack("minecraft:copper_ingot", 6, 1),
|
|
RandomItemStack("create:copper_nugget", 6, 0.75),
|
|
],
|
|
"ironchests:iron_chest": [
|
|
RandomItemStack("ironchests:copper_chest", 1, 0.9),
|
|
RandomItemStack("minecraft:iron_ingot", 6, 1),
|
|
RandomItemStack("minecraft:iron_nugget", 6, 0.75),
|
|
],
|
|
"ironchests:gold_chest": [
|
|
RandomItemStack("ironchests:iron_chest", 1, 0.9),
|
|
RandomItemStack("minecraft:gold_ingot", 6, 1),
|
|
RandomItemStack("minecraft:gold_nugget", 6, 0.75),
|
|
],
|
|
"ironchests:diamond_chest": [
|
|
RandomItemStack("ironchests:golden_chest", 1, 0.9),
|
|
RandomItemStack("minecraft:diamond", 2, 1),
|
|
RandomItemStack("minecraft:gold_ingot", 4, 1),
|
|
RandomItemStack("minecraft:gold_nugget", 6, 0.75),
|
|
],
|
|
"ironchests:obsidian_chest": [
|
|
RandomItemStack("ironchests:diamond_chest", 1, 0.9),
|
|
RandomItemStack("minecraft:obsidian", 6, 1),
|
|
RandomItemStack("minecraft:obsidian", 2, 0.5),
|
|
RandomItemStack("create:powdered_obsidian", 2, 0.25),
|
|
],
|
|
"ironchests:crystal_chest": [
|
|
RandomItemStack("ironchests:diamond_chest", 1, 0.9),
|
|
RandomItemStack("minecraft:glass", 3, 1),
|
|
RandomItemStack("minecraft:glass", 3, 0.5),
|
|
RandomItemStack("minecraft:amethyst_shard", 2, 0.75),
|
|
],
|
|
}
|
|
|
|
for input_name, outputs in recipes.items():
|
|
namespace, item_name = input_name.split(":", 1)
|
|
filename = f"data/ironchests/recipes/crushing_{namespace}_{item_name}.json"
|
|
with open(filename, "w") as fp:
|
|
dump({
|
|
"type": "create:crushing",
|
|
"ingredients": [{ "item": input_name }],
|
|
"results": [
|
|
{
|
|
"item": output.item,
|
|
"count": output.count,
|
|
"chance": output.chance
|
|
}
|
|
for output in outputs
|
|
],
|
|
"processingTime": 300
|
|
}, fp, indent=2)
|