from pathlib import Path

from PIL import Image


ROOT = Path(__file__).resolve().parent
SOURCE = ROOT / "vanilla_ref" / "assets" / "minecraft" / "textures" / "item" / "diamond.png"
OUTPUT = ROOT.parent / "assets" / "kubejs" / "textures" / "item" / "crimson_catalyst.png"

# Exact palette substitution preserves every pixel and the canonical Minecraft
# diamond silhouette. Only the cyan palette is changed to blood-crystal reds.
PALETTE = {
    (17, 114, 122): (65, 4, 10),
    (20, 94, 83): (45, 3, 8),
    (26, 170, 167): (132, 12, 24),
    (28, 145, 154): (98, 7, 18),
    (32, 197, 181): (174, 16, 31),
    (44, 224, 216): (211, 25, 40),
    (74, 237, 217): (235, 48, 59),
    (161, 251, 232): (250, 112, 112),
    (213, 255, 246): (255, 184, 177),
    (255, 255, 255): (255, 232, 220),
}

source = Image.open(SOURCE).convert("RGBA")
result = Image.new("RGBA", source.size, (0, 0, 0, 0))
result.putdata([
    (*PALETTE[(red, green, blue)], alpha) if alpha else (0, 0, 0, 0)
    for red, green, blue, alpha in source.getdata()
])
result.save(OUTPUT, optimize=False)
