diff --git a/src/generated/resources/assets/occultism/blockstates/chalk_glyph_rainbow.json b/src/generated/resources/assets/occultism/blockstates/chalk_glyph_rainbow.json new file mode 100644 index 000000000..19a932d31 --- /dev/null +++ b/src/generated/resources/assets/occultism/blockstates/chalk_glyph_rainbow.json @@ -0,0 +1,394 @@ +{ + "variants": { + "cycle=false,facing=east,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 270 + }, + "cycle=false,facing=east,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 270 + }, + "cycle=false,facing=east,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 270 + }, + "cycle=false,facing=east,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 270 + }, + "cycle=false,facing=east,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 270 + }, + "cycle=false,facing=east,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 270 + }, + "cycle=false,facing=east,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 270 + }, + "cycle=false,facing=east,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 270 + }, + "cycle=false,facing=east,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 270 + }, + "cycle=false,facing=east,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 270 + }, + "cycle=false,facing=east,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 270 + }, + "cycle=false,facing=east,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 270 + }, + "cycle=false,facing=east,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 270 + }, + "cycle=false,facing=north,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 180 + }, + "cycle=false,facing=north,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 180 + }, + "cycle=false,facing=north,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 180 + }, + "cycle=false,facing=north,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 180 + }, + "cycle=false,facing=north,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 180 + }, + "cycle=false,facing=north,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 180 + }, + "cycle=false,facing=north,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 180 + }, + "cycle=false,facing=north,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 180 + }, + "cycle=false,facing=north,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 180 + }, + "cycle=false,facing=north,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 180 + }, + "cycle=false,facing=north,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 180 + }, + "cycle=false,facing=north,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 180 + }, + "cycle=false,facing=north,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 180 + }, + "cycle=false,facing=south,sign=0": { + "model": "occultism:block/chalk_glyph/0" + }, + "cycle=false,facing=south,sign=1": { + "model": "occultism:block/chalk_glyph/1" + }, + "cycle=false,facing=south,sign=10": { + "model": "occultism:block/chalk_glyph/10" + }, + "cycle=false,facing=south,sign=11": { + "model": "occultism:block/chalk_glyph/11" + }, + "cycle=false,facing=south,sign=12": { + "model": "occultism:block/chalk_glyph/12" + }, + "cycle=false,facing=south,sign=2": { + "model": "occultism:block/chalk_glyph/2" + }, + "cycle=false,facing=south,sign=3": { + "model": "occultism:block/chalk_glyph/3" + }, + "cycle=false,facing=south,sign=4": { + "model": "occultism:block/chalk_glyph/4" + }, + "cycle=false,facing=south,sign=5": { + "model": "occultism:block/chalk_glyph/5" + }, + "cycle=false,facing=south,sign=6": { + "model": "occultism:block/chalk_glyph/6" + }, + "cycle=false,facing=south,sign=7": { + "model": "occultism:block/chalk_glyph/7" + }, + "cycle=false,facing=south,sign=8": { + "model": "occultism:block/chalk_glyph/8" + }, + "cycle=false,facing=south,sign=9": { + "model": "occultism:block/chalk_glyph/9" + }, + "cycle=false,facing=west,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 90 + }, + "cycle=false,facing=west,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 90 + }, + "cycle=false,facing=west,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 90 + }, + "cycle=false,facing=west,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 90 + }, + "cycle=false,facing=west,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 90 + }, + "cycle=false,facing=west,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 90 + }, + "cycle=false,facing=west,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 90 + }, + "cycle=false,facing=west,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 90 + }, + "cycle=false,facing=west,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 90 + }, + "cycle=false,facing=west,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 90 + }, + "cycle=false,facing=west,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 90 + }, + "cycle=false,facing=west,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 90 + }, + "cycle=false,facing=west,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 90 + }, + "cycle=true,facing=east,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 270 + }, + "cycle=true,facing=east,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 270 + }, + "cycle=true,facing=east,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 270 + }, + "cycle=true,facing=east,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 270 + }, + "cycle=true,facing=east,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 270 + }, + "cycle=true,facing=east,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 270 + }, + "cycle=true,facing=east,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 270 + }, + "cycle=true,facing=east,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 270 + }, + "cycle=true,facing=east,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 270 + }, + "cycle=true,facing=east,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 270 + }, + "cycle=true,facing=east,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 270 + }, + "cycle=true,facing=east,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 270 + }, + "cycle=true,facing=east,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 270 + }, + "cycle=true,facing=north,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 180 + }, + "cycle=true,facing=north,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 180 + }, + "cycle=true,facing=north,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 180 + }, + "cycle=true,facing=north,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 180 + }, + "cycle=true,facing=north,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 180 + }, + "cycle=true,facing=north,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 180 + }, + "cycle=true,facing=north,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 180 + }, + "cycle=true,facing=north,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 180 + }, + "cycle=true,facing=north,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 180 + }, + "cycle=true,facing=north,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 180 + }, + "cycle=true,facing=north,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 180 + }, + "cycle=true,facing=north,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 180 + }, + "cycle=true,facing=north,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 180 + }, + "cycle=true,facing=south,sign=0": { + "model": "occultism:block/chalk_glyph/0" + }, + "cycle=true,facing=south,sign=1": { + "model": "occultism:block/chalk_glyph/1" + }, + "cycle=true,facing=south,sign=10": { + "model": "occultism:block/chalk_glyph/10" + }, + "cycle=true,facing=south,sign=11": { + "model": "occultism:block/chalk_glyph/11" + }, + "cycle=true,facing=south,sign=12": { + "model": "occultism:block/chalk_glyph/12" + }, + "cycle=true,facing=south,sign=2": { + "model": "occultism:block/chalk_glyph/2" + }, + "cycle=true,facing=south,sign=3": { + "model": "occultism:block/chalk_glyph/3" + }, + "cycle=true,facing=south,sign=4": { + "model": "occultism:block/chalk_glyph/4" + }, + "cycle=true,facing=south,sign=5": { + "model": "occultism:block/chalk_glyph/5" + }, + "cycle=true,facing=south,sign=6": { + "model": "occultism:block/chalk_glyph/6" + }, + "cycle=true,facing=south,sign=7": { + "model": "occultism:block/chalk_glyph/7" + }, + "cycle=true,facing=south,sign=8": { + "model": "occultism:block/chalk_glyph/8" + }, + "cycle=true,facing=south,sign=9": { + "model": "occultism:block/chalk_glyph/9" + }, + "cycle=true,facing=west,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 90 + }, + "cycle=true,facing=west,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 90 + }, + "cycle=true,facing=west,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 90 + }, + "cycle=true,facing=west,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 90 + }, + "cycle=true,facing=west,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 90 + }, + "cycle=true,facing=west,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 90 + }, + "cycle=true,facing=west,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 90 + }, + "cycle=true,facing=west,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 90 + }, + "cycle=true,facing=west,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 90 + }, + "cycle=true,facing=west,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 90 + }, + "cycle=true,facing=west,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 90 + }, + "cycle=true,facing=west,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 90 + }, + "cycle=true,facing=west,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/blockstates/chalk_glyph_void.json b/src/generated/resources/assets/occultism/blockstates/chalk_glyph_void.json new file mode 100644 index 000000000..19a932d31 --- /dev/null +++ b/src/generated/resources/assets/occultism/blockstates/chalk_glyph_void.json @@ -0,0 +1,394 @@ +{ + "variants": { + "cycle=false,facing=east,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 270 + }, + "cycle=false,facing=east,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 270 + }, + "cycle=false,facing=east,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 270 + }, + "cycle=false,facing=east,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 270 + }, + "cycle=false,facing=east,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 270 + }, + "cycle=false,facing=east,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 270 + }, + "cycle=false,facing=east,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 270 + }, + "cycle=false,facing=east,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 270 + }, + "cycle=false,facing=east,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 270 + }, + "cycle=false,facing=east,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 270 + }, + "cycle=false,facing=east,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 270 + }, + "cycle=false,facing=east,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 270 + }, + "cycle=false,facing=east,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 270 + }, + "cycle=false,facing=north,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 180 + }, + "cycle=false,facing=north,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 180 + }, + "cycle=false,facing=north,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 180 + }, + "cycle=false,facing=north,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 180 + }, + "cycle=false,facing=north,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 180 + }, + "cycle=false,facing=north,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 180 + }, + "cycle=false,facing=north,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 180 + }, + "cycle=false,facing=north,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 180 + }, + "cycle=false,facing=north,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 180 + }, + "cycle=false,facing=north,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 180 + }, + "cycle=false,facing=north,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 180 + }, + "cycle=false,facing=north,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 180 + }, + "cycle=false,facing=north,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 180 + }, + "cycle=false,facing=south,sign=0": { + "model": "occultism:block/chalk_glyph/0" + }, + "cycle=false,facing=south,sign=1": { + "model": "occultism:block/chalk_glyph/1" + }, + "cycle=false,facing=south,sign=10": { + "model": "occultism:block/chalk_glyph/10" + }, + "cycle=false,facing=south,sign=11": { + "model": "occultism:block/chalk_glyph/11" + }, + "cycle=false,facing=south,sign=12": { + "model": "occultism:block/chalk_glyph/12" + }, + "cycle=false,facing=south,sign=2": { + "model": "occultism:block/chalk_glyph/2" + }, + "cycle=false,facing=south,sign=3": { + "model": "occultism:block/chalk_glyph/3" + }, + "cycle=false,facing=south,sign=4": { + "model": "occultism:block/chalk_glyph/4" + }, + "cycle=false,facing=south,sign=5": { + "model": "occultism:block/chalk_glyph/5" + }, + "cycle=false,facing=south,sign=6": { + "model": "occultism:block/chalk_glyph/6" + }, + "cycle=false,facing=south,sign=7": { + "model": "occultism:block/chalk_glyph/7" + }, + "cycle=false,facing=south,sign=8": { + "model": "occultism:block/chalk_glyph/8" + }, + "cycle=false,facing=south,sign=9": { + "model": "occultism:block/chalk_glyph/9" + }, + "cycle=false,facing=west,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 90 + }, + "cycle=false,facing=west,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 90 + }, + "cycle=false,facing=west,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 90 + }, + "cycle=false,facing=west,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 90 + }, + "cycle=false,facing=west,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 90 + }, + "cycle=false,facing=west,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 90 + }, + "cycle=false,facing=west,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 90 + }, + "cycle=false,facing=west,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 90 + }, + "cycle=false,facing=west,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 90 + }, + "cycle=false,facing=west,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 90 + }, + "cycle=false,facing=west,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 90 + }, + "cycle=false,facing=west,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 90 + }, + "cycle=false,facing=west,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 90 + }, + "cycle=true,facing=east,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 270 + }, + "cycle=true,facing=east,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 270 + }, + "cycle=true,facing=east,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 270 + }, + "cycle=true,facing=east,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 270 + }, + "cycle=true,facing=east,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 270 + }, + "cycle=true,facing=east,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 270 + }, + "cycle=true,facing=east,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 270 + }, + "cycle=true,facing=east,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 270 + }, + "cycle=true,facing=east,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 270 + }, + "cycle=true,facing=east,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 270 + }, + "cycle=true,facing=east,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 270 + }, + "cycle=true,facing=east,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 270 + }, + "cycle=true,facing=east,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 270 + }, + "cycle=true,facing=north,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 180 + }, + "cycle=true,facing=north,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 180 + }, + "cycle=true,facing=north,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 180 + }, + "cycle=true,facing=north,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 180 + }, + "cycle=true,facing=north,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 180 + }, + "cycle=true,facing=north,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 180 + }, + "cycle=true,facing=north,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 180 + }, + "cycle=true,facing=north,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 180 + }, + "cycle=true,facing=north,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 180 + }, + "cycle=true,facing=north,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 180 + }, + "cycle=true,facing=north,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 180 + }, + "cycle=true,facing=north,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 180 + }, + "cycle=true,facing=north,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 180 + }, + "cycle=true,facing=south,sign=0": { + "model": "occultism:block/chalk_glyph/0" + }, + "cycle=true,facing=south,sign=1": { + "model": "occultism:block/chalk_glyph/1" + }, + "cycle=true,facing=south,sign=10": { + "model": "occultism:block/chalk_glyph/10" + }, + "cycle=true,facing=south,sign=11": { + "model": "occultism:block/chalk_glyph/11" + }, + "cycle=true,facing=south,sign=12": { + "model": "occultism:block/chalk_glyph/12" + }, + "cycle=true,facing=south,sign=2": { + "model": "occultism:block/chalk_glyph/2" + }, + "cycle=true,facing=south,sign=3": { + "model": "occultism:block/chalk_glyph/3" + }, + "cycle=true,facing=south,sign=4": { + "model": "occultism:block/chalk_glyph/4" + }, + "cycle=true,facing=south,sign=5": { + "model": "occultism:block/chalk_glyph/5" + }, + "cycle=true,facing=south,sign=6": { + "model": "occultism:block/chalk_glyph/6" + }, + "cycle=true,facing=south,sign=7": { + "model": "occultism:block/chalk_glyph/7" + }, + "cycle=true,facing=south,sign=8": { + "model": "occultism:block/chalk_glyph/8" + }, + "cycle=true,facing=south,sign=9": { + "model": "occultism:block/chalk_glyph/9" + }, + "cycle=true,facing=west,sign=0": { + "model": "occultism:block/chalk_glyph/0", + "y": 90 + }, + "cycle=true,facing=west,sign=1": { + "model": "occultism:block/chalk_glyph/1", + "y": 90 + }, + "cycle=true,facing=west,sign=10": { + "model": "occultism:block/chalk_glyph/10", + "y": 90 + }, + "cycle=true,facing=west,sign=11": { + "model": "occultism:block/chalk_glyph/11", + "y": 90 + }, + "cycle=true,facing=west,sign=12": { + "model": "occultism:block/chalk_glyph/12", + "y": 90 + }, + "cycle=true,facing=west,sign=2": { + "model": "occultism:block/chalk_glyph/2", + "y": 90 + }, + "cycle=true,facing=west,sign=3": { + "model": "occultism:block/chalk_glyph/3", + "y": 90 + }, + "cycle=true,facing=west,sign=4": { + "model": "occultism:block/chalk_glyph/4", + "y": 90 + }, + "cycle=true,facing=west,sign=5": { + "model": "occultism:block/chalk_glyph/5", + "y": 90 + }, + "cycle=true,facing=west,sign=6": { + "model": "occultism:block/chalk_glyph/6", + "y": 90 + }, + "cycle=true,facing=west,sign=7": { + "model": "occultism:block/chalk_glyph/7", + "y": 90 + }, + "cycle=true,facing=west,sign=8": { + "model": "occultism:block/chalk_glyph/8", + "y": 90 + }, + "cycle=true,facing=west,sign=9": { + "model": "occultism:block/chalk_glyph/9", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/blockstates/copper_sacrificial_bowl.json b/src/generated/resources/assets/occultism/blockstates/copper_sacrificial_bowl.json new file mode 100644 index 000000000..347be3538 --- /dev/null +++ b/src/generated/resources/assets/occultism/blockstates/copper_sacrificial_bowl.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "occultism:block/copper_sacrificial_bowl", + "x": 180 + }, + "facing=east": { + "model": "occultism:block/copper_sacrificial_bowl", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "occultism:block/copper_sacrificial_bowl", + "x": 90 + }, + "facing=south": { + "model": "occultism:block/copper_sacrificial_bowl", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "occultism:block/copper_sacrificial_bowl" + }, + "facing=west": { + "model": "occultism:block/copper_sacrificial_bowl", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/blockstates/silver_sacrificial_bowl.json b/src/generated/resources/assets/occultism/blockstates/silver_sacrificial_bowl.json new file mode 100644 index 000000000..a01530bb4 --- /dev/null +++ b/src/generated/resources/assets/occultism/blockstates/silver_sacrificial_bowl.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "occultism:block/silver_sacrificial_bowl", + "x": 180 + }, + "facing=east": { + "model": "occultism:block/silver_sacrificial_bowl", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "occultism:block/silver_sacrificial_bowl", + "x": 90 + }, + "facing=south": { + "model": "occultism:block/silver_sacrificial_bowl", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "occultism:block/silver_sacrificial_bowl" + }, + "facing=west": { + "model": "occultism:block/silver_sacrificial_bowl", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/blockstates/storage_controller_stabilized.json b/src/generated/resources/assets/occultism/blockstates/storage_controller_stabilized.json new file mode 100644 index 000000000..5af1cd7ac --- /dev/null +++ b/src/generated/resources/assets/occultism/blockstates/storage_controller_stabilized.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "occultism:block/storage_controller_stabilized" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/blockstates/storage_stabilizer_tier0.json b/src/generated/resources/assets/occultism/blockstates/storage_stabilizer_tier0.json new file mode 100644 index 000000000..c027024f8 --- /dev/null +++ b/src/generated/resources/assets/occultism/blockstates/storage_stabilizer_tier0.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "occultism:block/storage_stabilizer_tier0", + "x": 180 + }, + "facing=east": { + "model": "occultism:block/storage_stabilizer_tier0", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "occultism:block/storage_stabilizer_tier0", + "x": 90 + }, + "facing=south": { + "model": "occultism:block/storage_stabilizer_tier0", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "occultism:block/storage_stabilizer_tier0" + }, + "facing=west": { + "model": "occultism:block/storage_stabilizer_tier0", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/lang/en_us.json b/src/generated/resources/assets/occultism/lang/en_us.json index 189915c2c..0f818f091 100644 --- a/src/generated/resources/assets/occultism/lang/en_us.json +++ b/src/generated/resources/assets/occultism/lang/en_us.json @@ -25,10 +25,14 @@ "advancements.occultism.chalks.pink.title": "Use the Pink Chalk", "advancements.occultism.chalks.purple.description": "Infusion", "advancements.occultism.chalks.purple.title": "Use the Purple Chalk", + "advancements.occultism.chalks.rainbow.description": "Why Many Chalks?", + "advancements.occultism.chalks.rainbow.title": "Use the Rainbow Chalk", "advancements.occultism.chalks.red.description": "Third Tier!", "advancements.occultism.chalks.red.title": "Use the Red Chalk", "advancements.occultism.chalks.root.description": "Colorful", "advancements.occultism.chalks.root.title": "Occultism: Chalks", + "advancements.occultism.chalks.void.description": "...", + "advancements.occultism.chalks.void.title": "Use the Void Chalk", "advancements.occultism.chalks.white.description": "First Foundation", "advancements.occultism.chalks.white.title": "Use the White Chalk", "advancements.occultism.chalks.yellow.description": "Possession", @@ -105,15 +109,21 @@ "block.occultism.chalk_glyph_orange": "Orange Chalk Glyph", "block.occultism.chalk_glyph_pink": "Pink Chalk Glyph", "block.occultism.chalk_glyph_purple": "Purple Chalk Glyph", + "block.occultism.chalk_glyph_rainbow": "Rainbow Chalk Glyph", "block.occultism.chalk_glyph_red": "Red Chalk Glyph", + "block.occultism.chalk_glyph_void": "Void Chalk Glyph", "block.occultism.chalk_glyph_white": "White Chalk Glyph", "block.occultism.chiseled_otherstone_bricks": "Chiseled Otherstone Bricks", + "block.occultism.copper_sacrificial_bowl": "Copper Sacrificial Bowl", "block.occultism.cracked_otherstone_bricks": "Cracked Otherstone Bricks", "block.occultism.datura": "Demon's Dream", "block.occultism.dimensional_mineshaft": "Dimensional Mineshaft", + "block.occultism.eldritch_chalice": "Eldritch Chalice", "block.occultism.golden_sacrificial_bowl": "Golden Sacrificial Bowl", + "block.occultism.iesnium_anvil": "Iesnium Anvil", "block.occultism.iesnium_block": "Block of Iesnium", "block.occultism.iesnium_ore": "Iesnium Ore", + "block.occultism.iesnium_sacrificial_bowl": "Iesnium Sacrificial Bowl", "block.occultism.large_candle": "Large Candle", "block.occultism.large_candle_black": "Large Black Candle", "block.occultism.large_candle_blue": "Large Blue Candle", @@ -136,6 +146,8 @@ "block.occultism.othercobblestone_slab": "Othercobblestone Slab", "block.occultism.othercobblestone_stairs": "Othercobblestone Stairs", "block.occultism.othercobblestone_wall": "Othercobblestone Wall", + "block.occultism.otherflower": "Otherflower", + "block.occultism.otherglass": "Otherglass", "block.occultism.otherplanks": "Otherplanks", "block.occultism.otherplanks_button": "Otherplanks Button", "block.occultism.otherplanks_door": "Otherplanks Door", @@ -154,6 +166,7 @@ "block.occultism.otherstone_bricks_wall": "Otherstone Bricks Wall", "block.occultism.otherstone_button": "Otherstone Button", "block.occultism.otherstone_pedestal": "Otherstone Pedestal", + "block.occultism.otherstone_pedestal_silver": "Silver Otherstone Pedestal", "block.occultism.otherstone_pressure_plate": "Otherstone Pressure Plate", "block.occultism.otherstone_slab": "Otherstone Slab", "block.occultism.otherstone_stairs": "Otherstone Stairs", @@ -172,6 +185,7 @@ "block.occultism.silver_block": "Block of Silver", "block.occultism.silver_ore": "Silver Ore", "block.occultism.silver_ore_deepslate": "Deepslate Silver Ore", + "block.occultism.silver_sacrificial_bowl": "Silver Sacrificial Bowl", "block.occultism.skeleton_skull_dummy": "Skeleton Skull", "block.occultism.spirit_attuned_crystal": "Spirit Attuned Crystal", "block.occultism.spirit_campfire": "Spirit Campfire", @@ -184,21 +198,24 @@ "block.occultism.stable_wormhole.tooltip.unlinked": "Not linked to a storage actuator.", "block.occultism.storage_controller": "Dimensional Storage Actuator", "block.occultism.storage_controller_base": "Storage Actuator Base", + "block.occultism.storage_controller_stabilized": "Stabilized Dimensional Storage Actuator", + "block.occultism.storage_stabilizer_tier0": "Dimensional Storage Stabilizer Base", "block.occultism.storage_stabilizer_tier1": "Tier 1 Dimensional Storage Stabilizer", "block.occultism.storage_stabilizer_tier2": "Tier 2 Dimensional Storage Stabilizer", "block.occultism.storage_stabilizer_tier3": "Tier 3 Dimensional Storage Stabilizer", "block.occultism.storage_stabilizer_tier4": "Tier 4 Dimensional Storage Stabilizer", "block.occultism.stripped_otherworld_log": "Stripped Otherworld Log", "block.occultism.stripped_otherworld_wood": "Stripped Otherworld Wood", + "block.occultism.tallow_block": "Tallow Block", "block.occultism.wither_skeleton_skull_dummy": "Wither Skeleton Skull", - "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.about.text": "A ritual satchel can hold items needed to create pentacles for rituals,\n if an item inside has less than 40 percent of durability the foil effect will stop.\n Other items cannot be placed in the satchel.\n\\\nThe satchel allows to speed up setting pentacles by automatically choosing the right items from the satchel, instead of manually selecting chalks, candles and other items to place them.\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.about.text": "A ritual satchel can hold items needed to create pentacles for rituals,\n if an item inside has less than 40 percent of durability the glint effect will stop.\n Other items cannot be placed in the satchel.\n\\\nThe satchel allows to speed up setting pentacles by automatically choosing the right items from the satchel, instead of manually selecting chalks, candles and other items to place them.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.about.title": "About", "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.description": "Tired of so many chalks and paraphernalia? The Ritual Satchel is the solution!", "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.name": "Apprentice Ritual Satchel", "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.spotlight.text": " At first glance the satchel appears to be a normal bag, of moderate size and storage capacity. However, closer inspection reveals that a [#](AA00AA)Djinni[#]() is bound to the satchel, tasked with assisting the summoner in drawing pentacles for their rituals.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.usage.text": "1. [#](55FF55)Shift-Right-Click[#]() to open the satchel and place chalks, candles, crystals, skulls and other items needed for rituals.\n2. Using this book, use the \"eye\" icon to preview the pentacle you want to set up in the world.\n3. [#](55FF55)Right-Click[#]() with this book to anchor the preview pentacle in the spot where you want to set it up.\n4. {2} with the satchel on a previewed chalk mark or block to automatically place it.\n5. Repeat until the pentacle is complete.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.apprentice_ritual_satchel.usage.title": "Usage", - "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.about.text": "A ritual satchel can hold items needed to create pentacles for rituals,\n if an item inside has less than 40 percent of durability the foil effect will stop.\n Other items cannot be placed in the satchel.\n\\\nThe satchel sets up an entire pentacle at once, if all necessary items are present in the satchel.\\\nIt can also remove (intact) pentacles by [#](55FF55)Right-Clicking[#]() the [](item://occultism:golden_sacrificial_bowl) and store all blocks back in the satchel.\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.about.text": "A ritual satchel can hold items needed to create pentacles for rituals,\n if an item inside has less than 40 percent of durability the glint effect will stop.\n Other items cannot be placed in the satchel.\n\\\nThe satchel sets up an entire pentacle at once, if all necessary items are present in the satchel.\\\nIt can also remove (intact) pentacles by [#](55FF55)Right-Clicking[#]() the [](item://occultism:golden_sacrificial_bowl) and store all blocks back in the satchel.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.about.title": "About", "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.description": "The Apprentice Ritual Satchel is still too slow? Let's get help from an Afrit!", "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.name": "Artisanal Ritual Satchel", @@ -207,6 +224,12 @@ "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_cleaning.title": "Usage (Cleaning)", "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_drawing.text": "1. [#](55FF55)Shift-Right-Click[#]() to open the satchel and place chalks, candles, crystals, skulls and other items needed for rituals.\n2. Using this book, use the \"eye\" icon to preview the pentacle you want to set up in the world.\n3. [#](55FF55)Right-Click[#]() with this book to anchor the preview pentacle in the spot where you want to set it up.\n4. {2} with the satchel on a previewed chalk mark or block to automatically place it.\n5. Repeat until the pentacle is complete.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.artisanal_ritual_satchel.usage_drawing.title": "Usage (Drawing)", + "book.occultism.dictionary_of_spirits.crafting_rituals.bee_nest.description": "Not the bees...", + "book.occultism.dictionary_of_spirits.crafting_rituals.bee_nest.name": "Forge Bee nest", + "book.occultism.dictionary_of_spirits.crafting_rituals.bee_nest.spotlight.text": "Unlike other rituals, creating a [](item://minecraft:bee_nest) is a service provided by [#](AA00AA)Wild Spirits[#]()\nand not bound any spirit to the final object. You sacrifice the items and the Wild Spirits\n uses his power to forge that item for you.\n\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.bell.description": "I got my bell", + "book.occultism.dictionary_of_spirits.crafting_rituals.bell.name": "Forge Bell", + "book.occultism.dictionary_of_spirits.crafting_rituals.bell.spotlight.text": "Unlike other rituals, creating a [](item://minecraft:bell) is a service provided by [#](AA00AA)Wild Spirits[#]()\nand not bound any spirit to the final object. You sacrifice the items and the Wild Spirits\n uses his power to forge that item for you.\n\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_afrit_miner.name": "Afrit Miner", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_afrit_miner.spotlight.text": "The [#](ad03fc)Afrit[#]() miner harvests ores, like djinni miners, and additionally mines deepslate ores. This miner is faster and more efficient than the djinnis, thus damaging the magic lamp even more slowly.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_ancient_miner.name": "Ancient Miner", @@ -221,9 +244,14 @@ "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.description.text": "The dimensional mineshaft will discard any items it cannot store, so it is important\nto regularly empty the mineshaft, either manually, with hoppers or using a transporter spirit.\n Spirits in lamps can be **inserted** from the top, all other sides can be used to **extract** items.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.description.title": "Operation", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.name": "Dimensional Mineshaft", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.redstone.text": " The dimensional mineshaft has two interactions with redstone:\n 1. The spirit will stop working when receives a redstone signal;\n 2. A comparator can be used to extract a signal based on occupied slots and lamp durability.\n Tip, if the comparator sends a power of 10, it is better to stop the operations.\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.redstone.title": "Redstone", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.spotlight.text": " The dimensional mineshaft houses a [#](AA00AA)Djinni[#]() which opens up a stable connection into an\n uninhabited dimension, perfectly suited for mining. While the portal is too small\n to transfer humans, other spirits can use it to enter the mining dimension and bring back resources.\n\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_djinni_miner.name": "Djinni Miner", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_djinni_miner.spotlight.text": "The [#](ad03fc)Djinni[#]() miner harvests ores specifically. By discarding other blocks it is able to mine faster and more efficiently. The greater power of the djinni it damages the magic lamp relatively quickly.\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_eldritch_chalice.description": "Is it fast enough now?", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_eldritch_chalice.name": "Eldritch Chalice", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_eldritch_chalice.spotlight.text": "Forging an [](item://occultism:eldritch_chalice) is one service provide by [#](AA00AA)Eldritch Spirits[#](), this block will\n helps occult masters twist time, performing any ritual instantly.\\\n All other things will works like the Golden or Iesnium Sacrificial Bowl.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_familiar_ring.name": "Familiar Ring", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_familiar_ring.spotlight.text": "Familiar Rings consist of a [](item://occultism:soul_gem), that contains a [#](ad03fc)Djinni[#](), mounted on a ring. The [#](ad03fc)Djinni[#]() in the ring allows the familiar captured in the soul gem to apply effects to the wearer.\"\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_familiar_ring.usage.text": "To use a [](item://occultism:familiar_ring), simply capture a summoned (and tamed) familiar by [#](ad03fc)right-clicking[#]() it, and then wear the ring as [#](ad03fc)Curio[#]() to make use of the effects the familiar provides.\n\\\n\\\nWhen released from a familiar ring, the spirit will recognize the person releasing them as their new master.\n", @@ -234,10 +262,22 @@ "book.occultism.dictionary_of_spirits.crafting_rituals.craft_foliot_miner.magic_lamp.title": "Magic Lamp", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_foliot_miner.name": "Foliot Miner", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_foliot_miner.spotlight.text": "The [#](ad03fc)Foliot[#]() miner harvests block without much aim and returns anything it finds. The mining process is quite slow, due to this the Foliot expends only minor amounts of energy, damaging the lamp it is housed in slowly over time.\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.apothic.text": "When using [#](AA00AA)Apothic Enchanting Mod[#]() you can get all enchantments at level 10 instead of one level higher than the maximum\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.apothic.title": "Apotheosis Information", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.description": "Upgraded Anvil", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.name": "Iesnium Anvil", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.spotlight.text": "The [](item://occultism:iesnium_anvil) is a [#](AA00AA)Marid[#]() infusion.\nThis anvil has some improvements:\n1. Is unbreakable;\n2. Can exceed the maximum level of enchantments by 1;\n3. Marid will pay half of the showed level cost (round up);\n4. The cost increase of working with the same item is reduced;\n5. The maximum cost limit is increased;\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_sacrificial_bowl.description": "Faster Rituals", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_sacrificial_bowl.name": "Iesnium Sacrificial Bowl", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_sacrificial_bowl.spotlight.text": "The [](item://occultism:iesnium_sacrificial_bowl) is an [#](AA00AA)Afrit[#]() infusion\n that helps expert occultists save time,\n performing any ritual in only a quarter of the normal time.\n All other things will works like the Golden Sacrificial Bowl.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_infused_pickaxe.name": "Infused Pickaxe", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_infused_pickaxe.spotlight.text": "Otherworld ores usually can only be mined with Otherworld metal tools. The [](item://occultism:infused_pickaxe) is a makeshift solution to this Chicken-and-Egg problem. Brittle spirit attuned gems house a [#](ad03fc)Djinni[#]() that allows harvesting the ores, but the durability is extremely low. A more durable version is the [Iesnium Pickaxe](entry://getting_started/iesnium_pickaxe).\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_marid_miner.name": "Marid Miner", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_marid_miner.spotlight.text": "The [#](ad03fc)Marid[#]() miner is the most powerful miner spirit, it has the fasted mining speed and best magic lamp preservation. Unlike other miner spirits they also can mine the rarest ores, such as [](item://minecraft:ancient_debris) and [](item://occultism:iesnium_ore).\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.description": "Choose your colors", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.name": "Mastery Chalks", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.spotlight.text": "Forging the [](item://occultism:chalk_rainbow) is a service provided by an [#](AA00AA)Eldritch Spirit[#]().\nThis chalk can replace any non-foundation chalk, with extra features.\n1. Use a [](item://occultism:spirit_attuned_gem) to toggle the random color changes or\nuse any dye to set the color of glyph, items will not be consumed.\n2. Use this chalk in a glyph while crouched will erase the glyph, acting as a [](item://occultism:brush).\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.spotlight2.text": "Forging the [](item://occultism:chalk_void) is a service provided by an [#](AA00AA)Eldritch Spirit[#]().\nThis chalk can replace any chalk and has the same abilities as the [](item://occultism:chalk_rainbow).\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_otherworld_goggles.goggles_more.text": "The Goggles will, however, not give the ability to harvest otherworld materials. That means when wearing goggles, an [Infused Pick](entry://getting_started/infused_pickaxe), or even better, an [Iesnium Pick](entry://getting_started/iesnium_pickaxe) needs to be used to break blocks in order to obtain their Otherworld variants.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_otherworld_goggles.goggles_spotlight.text": "The [](item://occultism:otherworld_goggles) give the wearer permanent [#](ad03fc)Third Eye[#](), allowing to view even blocks hidden from those partaking of [Demon's Dream](entry://occultism:dictionary_of_spirits/getting_started/demons_dream).\n\\\n\\\nThis elegantly solves the general issue of summoners being in a drugged haze, causing all sorts of havoc.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_otherworld_goggles.lenses_more.text": "Summoning a spirit into the lenses used to craft goggles is one of the first of the more complex rituals apprentice summoners usually attempt, showing that their skills are progressing beyond the basics.\n", @@ -245,13 +285,16 @@ "book.occultism.dictionary_of_spirits.crafting_rituals.craft_otherworld_goggles.lenses_spotlight.text": "Otherworld Goggles make use of a [#](ad03fc)Foliot[#]() bound into the lenses. The Foliot shares it's ability to view higher planes with the wearer, thus allowing them to see Otherworld materials.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_otherworld_goggles.name": "Craft Otherworld Goggles", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_reinforced_deepslate.name": "Forge Reinforced Deepslate", - "book.occultism.dictionary_of_spirits.crafting_rituals.craft_reinforced_deepslate.spotlight.text": "Unlike other rituals, creating a [](item://minecraft:reinforced_deepslate) is a service provided by Ancient Spirits and not bound any spirit to the final object. You sacrifice the items and the Ancient Spirits uses his power to forge that item for you.\n", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_reinforced_deepslate.spotlight.text": "Unlike other rituals, creating a [](item://minecraft:reinforced_deepslate) is a service provided by Wild Spirits and not bound any spirit to the final object. You sacrifice the items and the Wild Spirits uses his power to forge that item for you.\\\n\\\nThese blocks can be collected with a infused or iesnium pickaxe.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_satchel.name": "Surprisingly Substantial Satchel", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_satchel.spotlight.text": "A [#](ad03fc)Foliot[#]() is bound to the satchel, tasked with **slightly** warping reality. This allows to store more items in the satchel than it's size would indicate, making it a practical traveller's companion.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_soul_gem.name": "Soul Gem", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_soul_gem.spotlight.text": "Soul gems are diamonds set in precious metals, which are then infused with a [#](ad03fc)Djinni[#](). The spirit creates a small dimension that allows the temporary entrapment of living beings. Beings of great power or size cannot be stored, however.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_soul_gem.usage.text": "To capture an entity, [#](ad03fc)right-click[#]() it with the soul gem. \\\n[#](ad03fc)Right-click[#]() again to release the entity.\n\\\n\\\nBosses cannot be captured.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_soul_gem.usage.title": "Usage", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilized_storage.description": "Compact", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilized_storage.name": "Stabilized Dimensional Storage Actuator", + "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilized_storage.spotlight.text": "Forging the [](item://occultism:storage_controller_stabilized) is one service provide by [#](AA00AA)Eldritch Spirits[#](),\n this block will helps occult masters twist space, placing the stabilizers in the same\n position as the actuator in some extra-planar dimension invisible even to the best eyes.\\\n By default this item receives one bonus stabilizer tier 4\\\n Other external stabilizers do not affect this block.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilizer_tier1.name": "Storage Stabilizer Tier 1", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilizer_tier1.spotlight.text": "This simple storage stabilizer is inhabited by a [#](ad03fc)Foliot[#]() that supports the dimensional matrix in keeping the storage dimension stable, thus allowing to store more items.\n\\\n\\\nBy default each Tier 1 Stabilizer adds **64** item types and 512000 items storage capacity.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilizer_tier2.name": "Storage Stabilizer Tier 2", @@ -278,6 +321,9 @@ "book.occultism.dictionary_of_spirits.crafting_rituals.repair.spotlight.text": "With simple materials, a Djinni can repair any chalk for you. By evolving in the occult path, an Afrit can repair miners, tools and armors. Any item repaired in this way retains its properties.\n", "book.occultism.dictionary_of_spirits.crafting_rituals.repair.spotlight.title": "Repairing", "book.occultism.dictionary_of_spirits.crafting_rituals.return_to_rituals.name": "Return to Rituals Category", + "book.occultism.dictionary_of_spirits.crafting_rituals.trinity_gem.description": "Really catch all!", + "book.occultism.dictionary_of_spirits.crafting_rituals.trinity_gem.name": "Trinity Gem", + "book.occultism.dictionary_of_spirits.crafting_rituals.trinity_gem.spotlight.text": "Forging the [](item://occultism:trinity_gem) is a service provided by an [#](AA00AA)Eldritch Spirit[#]().\nThis gem is upgraded version of [](item://occultism:soul_gem) created with\n3 distinct essences, 3 powerful dusts and 3 iesnium dusts.\nThe trinity gem has a smaller entity blacklist (none by default), but some mobs might still be\nincompatible like the ender dragon.\n", "book.occultism.dictionary_of_spirits.familiar_rituals.demonic_partner.about.text": "The Demonic Partner - a Husband or Wife - can fight for you and split your household chores.\n\\\n\\\nRight-Click with any cookable food and they will use their magic to cook it.\n\\\n\\\nRight-Click with a potion to get the effect for a significantly longer time.\n", "book.occultism.dictionary_of_spirits.familiar_rituals.demonic_partner.about.title": "Demonic Partner", "book.occultism.dictionary_of_spirits.familiar_rituals.demonic_partner.description": "A demonic Household?", @@ -369,6 +415,14 @@ "book.occultism.dictionary_of_spirits.familiar_rituals.familiar_shub_niggurath.name": "Shub Niggurath Familiar", "book.occultism.dictionary_of_spirits.familiar_rituals.familiar_shub_niggurath.ritual.text": "The [#](ad03fc)Shub Niggurath[#]() is not summoned directly. First, summon a [Chimera Familiar](entry://familiar_rituals/familiar_chimera) and feed it a [](item://minecraft:golden_apple) to detach the [#](ad03fc)Goat[#](). Bring the goat to a [#](ad03fc)Forest Biome[#](). Then click the goat with [any Black Dye](item://minecraft:black_dye), [](item://minecraft:flint) and [](item://minecraft:ender_eye) to summon the [#](ad03fc)Shub Niggurath[#]().\n", "book.occultism.dictionary_of_spirits.familiar_rituals.familiar_shub_niggurath.ritual.title": "Ritual", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.description": "Intangible golem", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.description.text": "An Iesnium Golem is a direct upgrade from a regular Iron Golem, this new version is much stronger and invulnerable. \\\nOnly a player can dismiss them, by hitting while crouched, returning the [](item://occultism:soul_shard).\n", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.description.title": "Iesnium Golem", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.familiar.text": "The Iesnium Golem Chapter is part of the Familiar Category of this book because of the similarities, however a golem is not exactly a familiar since it does not have an owner.\n\\\n\\\nAs such, they also cannot be stored in a [](item://occultism:familiar_ring). You can, however, use a [](item://occultism:soul_gem) as for any other being.\n", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.familiar.title": "Not a Familiar", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.golem.text": "**Provides:** [#](AA00AA)Immortal area protector[#]()", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.golem.title": "Iesnium Golem", + "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.name": "Iesnium Golem", "book.occultism.dictionary_of_spirits.familiar_rituals.name": "Familiar Rituals", "book.occultism.dictionary_of_spirits.familiar_rituals.overview.intro.text": "Familiar rituals summon spirits to aid the summoner directly. The spirits usually inhabit an animal's body, allowing them to resist essence decay. Familiars provide buffs, but may also actively protect the summoner.\n", "book.occultism.dictionary_of_spirits.familiar_rituals.overview.intro.title": "Familiar Rituals", @@ -512,6 +566,7 @@ "book.occultism.dictionary_of_spirits.getting_started.iesnium.how.text": "Iesnium can only be mined with the [Infused Pickaxe](entry://getting_started/infused_pickaxe) or an [](item://occultism:iesnium_pickaxe) (about which you will learn later).\n\\\n\\\nAfter identifying a block that holds Iesnium, you can mine it with the pickaxe you created in the previous step.\n", "book.occultism.dictionary_of_spirits.getting_started.iesnium.how.title": "How to mine it", "book.occultism.dictionary_of_spirits.getting_started.iesnium.name": "Iesnium Ore", + "book.occultism.dictionary_of_spirits.getting_started.iesnium.otherglass.text": "One of the uses of iesnium is the creation of Otherglass, this block hides from common eyes and is revealed only to those who see the other world. To collect this you need an infused or iesnium pickaxe.\n", "book.occultism.dictionary_of_spirits.getting_started.iesnium.processing.text": "Iesnium Ore, after mining, can be smelted directly into ingots, or placed down. When placed, it will not turn back into it's netherrack form. Consequently it can also be mined with any pickaxe then. This visible form of the Ore, when mined, will drop [](item://occultism:raw_iesnium).\n", "book.occultism.dictionary_of_spirits.getting_started.iesnium.processing.title": "Processing", "book.occultism.dictionary_of_spirits.getting_started.iesnium.spotlight.text": "This is a rare metal that, to the naked eye, looks like [](item://minecraft:netherrack) and cannot be mined with a regular pickaxe.\n\\\n\\\nWhen mined with the correct tools, it can be used to craft powerful items (you will learn more about that later).\n", @@ -562,6 +617,7 @@ "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_bowl.name": "Ritual Preparations: Sacrificial Bowls", "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_bowl.sacrificial_bowl.text": "These bowls are used to place the items we will sacrifice as part of a ritual and you will need a handful of them.\nNote: Their exact placement in the ritual does not matter - just keep them within 8 blocks horizontally of the pentacle center!\n", "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_bowl.sacrificial_bowl.title": "Ritual Preparations: Sacrificial Bowls", + "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_bowl.sacrificial_bowl_recipe.text": "You can mix a sacrificial bowl with a copper or silver ingot to create variations with the same functionality.\n", "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_chalk.description": "Signs to find them, Signs to bring them all, and in the darkness bind them.", "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_chalk.intro.text": "To summon spirits from the [#](ad03fc)Other Place[#]() in *relative* safety,\nyou need to draw a fitting pentacle using chalk to contain their powers.\n", "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_chalk.intro.title": "Ritual Preparations: Chalks", @@ -577,6 +633,7 @@ "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.description": "Or does it?", "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.main_uses.text": "The main uses of [](item://occultism:spirit_fire) are to convert [](item://minecraft:diamond) into [](item://occultism:spirit_attuned_gem),\nto get basic ingredients such as [](item://occultism:otherstone) and [Otherworld Saplings](item://occultism:otherworld_sapling_natural),\nand to purify impure chalks.\n", "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.name": "It burns!", + "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.otherflower_recipe.text": "An easier way to clone any dye, mix this flower and the target color. You can also make ~~suspicious~~ delicious stews.\n", "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.otherstone_recipe.text": "An easier way to obtain [](item://occultism:otherstone) than via divination.\n", "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.otherworld_sapling_natural_recipe.text": "An easier way to obtain [Otherworld Saplings](item://occultism:otherworld_sapling_natural) than via divination.\n", "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.spirit_fire_screenshot.text": "Throw [](item://occultism:datura) to the ground and light it on fire with [](item://minecraft:flint_and_steel).\n", @@ -625,10 +682,10 @@ "book.occultism.dictionary_of_spirits.pentacles.brown_chalk.name": "The Cruelty Chalk", "book.occultism.dictionary_of_spirits.pentacles.brown_chalk.spotlight.text": "This chalk is known to be part of an \"Alignment Test.\" Anyone who possesses it is\n automatically classified as \"Evil.\" What kind of spirits will these glyphs attract?\n", "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.description": "Contact Eldritch", - "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.intro.text": "**Purpose:** Contact [#](AA00AA)Eldritch[#]()\\\n\\\nThis is a very strange pentacle that you dont understand for now.\n", + "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.intro.text": "**Purpose:** Contact [#](AA00AA)Eldritch[#]()\\\n\\\nThis strange pentacle uses forbidden knowledge, bringing together paraphernalia from ancient traditions.\\\nThe level of power that can be achieved almost cheats the common reality.\n", "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.intro.title": "Ronazas Contact", "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.name": "Ronaza's Contact", - "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.uses.text": "- [Eldritch Ancient Miner](entry://crafting_rituals/craft_ancient_miner)\n- [Reinforced Deepslate](entry://crafting_rituals/craft_reinforced_deepslate)\n", + "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.uses.text": "- [Eldritch Ancient Miner](entry://crafting_rituals/craft_ancient_miner)\n- [Stabilized Storage](entry://crafting_rituals/craft_stabilized_storage)\n- [Eldritch Chalice](entry://crafting_rituals/craft_eldritch_chalice)\n- [Mastery Chalks](entry://crafting_rituals/craft_master_chalks)\n- [Trinity Gem](entry://crafting_rituals/trinity_gem)\n", "book.occultism.dictionary_of_spirits.pentacles.contact_eldritch_spirit.uses.title": "Uses", "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.description": "Contact Wild Spirits", "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.intro.text": "**Purpose:** Contact [#](AA00AA)Wild Spirits[#]()\\\n\\\n**Osorins Unbound Calling** has a unique form, mixing different aspects obtained in each chalk\n and none of the common stabilizing paraphernalia. Therefore, the pentacle offers no protection\n to the occultist, but acts as an irresistible contact with the [#](AA00AA)Wild Spirits[#]().\n", @@ -636,13 +693,13 @@ "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.name": "Osorin's Unbound Calling", "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.uses.text": "- [Wither Skeleton Skull](entry://possession_rituals/wither_skull)\n- [Horde Husk](entry://possession_rituals/horde_husk)\n- [Horde Drowned](entry://possession_rituals/horde_drowned)\n- [Horde Creeper](entry://possession_rituals/horde_creeper)\n- [Horde Silverfish](entry://possession_rituals/horde_silverfish)\n- [Trial Key](entry://possession_rituals/possess_weak_breeze)\n- [Ominous Trial Key](entry://possession_rituals/possess_breeze)\n- [Heavy Core](entry://possession_rituals/possess_strong_breeze)\n- [Wild Illager Invasion](entry://possession_rituals/horde_illager)\n- [Group of Random Animal](entry://possession_rituals/wild_random_animal)\n", "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.uses.title": "Uses", - "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.uses2.text": "- [Wild Armor Trim Smithing Template](entry://crafting_rituals/craft_wild_trim)\n- [Budding Amethyst](entry://crafting_rituals/craft_budding_amethyst)\n", + "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.uses2.text": "- [Wild Armor Trim Smithing Template](entry://crafting_rituals/craft_wild_trim)\n- [Budding Amethyst](entry://crafting_rituals/craft_budding_amethyst)\n- [Reinforced Deepslate](entry://crafting_rituals/craft_reinforced_deepslate)\n- [Bee Nest](entry://crafting_rituals/bee_nest)\n- [Bell](entry://crafting_rituals/bell)\n", "book.occultism.dictionary_of_spirits.pentacles.contact_wild_spirit.uses2.title": "Uses", "book.occultism.dictionary_of_spirits.pentacles.craft_afrit.description": "Afrit Infusion", "book.occultism.dictionary_of_spirits.pentacles.craft_afrit.intro.text": "**Purpose:** Bind [#](AA00AA)Afrit[#]()\\\n\\\nFirst discovered by Grandmistress Sevira of Emberwoods, **Seviras Permanent Confinement** is used for\n binding [#](AA00AA)Afrit[#]() into objects. Due to the power of the spirits involved, this should be performed only by advanced summoners.\n\n", "book.occultism.dictionary_of_spirits.pentacles.craft_afrit.intro.title": "Seviras Permanent Confinement", "book.occultism.dictionary_of_spirits.pentacles.craft_afrit.name": "Sevira's Permanent Confinement", - "book.occultism.dictionary_of_spirits.pentacles.craft_afrit.uses.text": "- [Storage Stabilizer Tier 3](entry://crafting_rituals/craft_stabilizer_tier3)\n- [Afrit Deep Ore Miner](entry://crafting_rituals/craft_afrit_miner)\n- [Artisanal Ritual Satchel](entry://crafting_rituals/artisanal_ritual_satchel)\n- [Repair Items](entry://crafting_rituals/repair)\n", + "book.occultism.dictionary_of_spirits.pentacles.craft_afrit.uses.text": "- [Iesnium Sacrificial Bowl](entry://crafting_rituals/craft_iesnium_sacrificial_bowl)\n- [Storage Stabilizer Tier 3](entry://crafting_rituals/craft_stabilizer_tier3)\n- [Afrit Deep Ore Miner](entry://crafting_rituals/craft_afrit_miner)\n- [Artisanal Ritual Satchel](entry://crafting_rituals/artisanal_ritual_satchel)\n- [Repair Items](entry://crafting_rituals/repair)\n", "book.occultism.dictionary_of_spirits.pentacles.craft_afrit.uses.title": "Uses", "book.occultism.dictionary_of_spirits.pentacles.craft_djinni.description": "Djinni Infusion", "book.occultism.dictionary_of_spirits.pentacles.craft_djinni.intro.text": "**Purpose:** Bind [#](AA00AA)Djinni[#]()\\\n\\\n**Strigeors Higher Binding** is a pentacle for binding [#](AA00AA)Djinni[#]() into objects, should not be attempted by the\n novice summoner. Supported by skeleton skulls and stabilized by candles it is highly suitable for\n permanent infusions of objects with spirits.\n", @@ -660,7 +717,7 @@ "book.occultism.dictionary_of_spirits.pentacles.craft_marid.intro.text": "**Purpose:** Bind [#](AA00AA)Marid[#]()\\\n\\\n**Uphyxes Inverted Tower** is one of the few pentacles capable of binding [#](AA00AA)Marid[#]() into objects.\n Any rituals involving [#](AA00AA)Marid[#]() should be performed only by the most experienced summoners.\n", "book.occultism.dictionary_of_spirits.pentacles.craft_marid.intro.title": "Uphyxes Inverted Tower", "book.occultism.dictionary_of_spirits.pentacles.craft_marid.name": "Uphyxes Inverted Tower", - "book.occultism.dictionary_of_spirits.pentacles.craft_marid.uses.text": "- [Storage Stabilizer Tier 4](entry://crafting_rituals/craft_stabilizer_tier4)\n- [Marid Master Miner](entry://crafting_rituals/craft_marid_miner)\n", + "book.occultism.dictionary_of_spirits.pentacles.craft_marid.uses.text": "- [Storage Stabilizer Tier 4](entry://crafting_rituals/craft_stabilizer_tier4)\n- [Marid Master Miner](entry://crafting_rituals/craft_marid_miner)\n- [Iesnium Anvil](entry://crafting_rituals/craft_iesnium_anvil)\n", "book.occultism.dictionary_of_spirits.pentacles.craft_marid.uses.title": "Uses", "book.occultism.dictionary_of_spirits.pentacles.cyan_chalk.description": "Cyan Chalk", "book.occultism.dictionary_of_spirits.pentacles.cyan_chalk.lore.text": "Almost lost to time, the cyan chalk brings ancient knowledge, often even forbidden.\n But who cares? After all, knowledge is knowledge, and the more, the better, right?\n", @@ -758,7 +815,7 @@ "book.occultism.dictionary_of_spirits.pentacles.possess_marid.intro.text": "**Purpose:** [#](AA00AA)Marid[#]() Possession\\\n\\\n**Xeovrenth Adjure** is a powerful pentacle, allowing to possessing [#](AA00AA)Marid[#]() in extremely dangerous rituals.\n", "book.occultism.dictionary_of_spirits.pentacles.possess_marid.intro.title": "Xeovrenth Adjure", "book.occultism.dictionary_of_spirits.pentacles.possess_marid.name": "Xeovrenth Adjure", - "book.occultism.dictionary_of_spirits.pentacles.possess_marid.uses.text": "- [Cruelty Essence](entry://possession_rituals/possess_goat)\n", + "book.occultism.dictionary_of_spirits.pentacles.possess_marid.uses.text": "- [Iesnium Golem](entry://familiar_rituals/iesnium_golem)\n- [Cruelty Essence](entry://possession_rituals/possess_goat)\n", "book.occultism.dictionary_of_spirits.pentacles.possess_marid.uses.title": "Uses", "book.occultism.dictionary_of_spirits.pentacles.possess_unbound_afrit.description": "Unbound Afrit Possession", "book.occultism.dictionary_of_spirits.pentacles.possess_unbound_afrit.intro.text": "**Purpose:** [#](AA00AA)Unbound Afrit[#]() Possession\\\n\\\n**Abras Open Commanding Conjure** is a simplified version of [#](AA00AA)Abras Commanding Conjure[#](), allowing you to forces [#](AA00AA)Afrit[#]() to possess a nearby Creature without red chalk.\n Due to the very reduced power of the Pentacle its limited in use.\n", @@ -779,7 +836,7 @@ "book.occultism.dictionary_of_spirits.pentacles.red_chalk.name": "The Afrit Control Chalk", "book.occultism.dictionary_of_spirits.pentacles.red_chalk.spotlight.text": "These properties allow for an incredible achievement that has been sought\n for ages before being attained: the summoning of an Afrit bound to the occultist.\n", "book.occultism.dictionary_of_spirits.pentacles.resurrect_spirit.description": "Spirit Resurrection", - "book.occultism.dictionary_of_spirits.pentacles.resurrect_spirit.intro.text": "**Purpose:** Resurrect a [#](AA00AA)Familiar[#]()\\\n\\\n**Susjes Simple Circle** is a simple pentacle that returns the physical form of a spirit that has\n been slaughtered, not needing much to do so.\\\n \\\n**Note:** This is the only pentacle where the [#](FF55FF)White Chalk[#]() cannot be replaced with another better [#](FF55FF)Foundation Chalk[#]().\n", + "book.occultism.dictionary_of_spirits.pentacles.resurrect_spirit.intro.text": "**Purpose:** Resurrect a [#](AA00AA)Familiar[#]()\\\n\\\n**Susjes Simple Circle** is a simple pentacle that returns the physical form of a spirit that has\n been slaughtered, not needing much to do so.\n", "book.occultism.dictionary_of_spirits.pentacles.resurrect_spirit.intro.title": "Susjes Simple Circle", "book.occultism.dictionary_of_spirits.pentacles.resurrect_spirit.name": "Susje's Simple Circle", "book.occultism.dictionary_of_spirits.pentacles.resurrect_spirit.uses.text": "- [Resurrect Familiar](entry://familiar_rituals/resurrection)\n- [Purify Vex to Allay](entry://familiar_rituals/resurrect_allay)\n", @@ -849,7 +906,7 @@ "book.occultism.dictionary_of_spirits.possession_rituals.overview.intro.text": "Possession rituals bind spirits into living beings, giving the summoner a degree of control over the possessed being.\n\\\n\\\nAs such these rituals are used to obtain rare items without having to venture into dangerous places.\n", "book.occultism.dictionary_of_spirits.possession_rituals.overview.intro.title": "Possession Rituals", "book.occultism.dictionary_of_spirits.possession_rituals.overview.name": "Possession Rituals", - "book.occultism.dictionary_of_spirits.possession_rituals.possess_bee.description.text": "In this ritual an [#](ad03fc)djinni[#]() will possess an [#](ad03fc)Bee[#](), Be careful,\n a bee invoked by this way does not lose its stinger, always poison the target,\n attacks faster and can summon other bees when it takes damage.\n This is the only known method to obtain [](item://occultism:cursed_honey), eating will grants\n a short regeneration buff.\n", + "book.occultism.dictionary_of_spirits.possession_rituals.possess_bee.description.text": "In this ritual an [#](ad03fc)djinni[#]() will possess an [#](ad03fc)Bee[#](), Be careful,\n a bee invoked by this way does not lose its stinger, always poison the target,\n attacks faster and can summon other bees when it takes damage.\n This is the only known method to obtain [](item://occultism:cursed_honey), eating will grants\n a short regeneration buff.\\\n \\\n If this bee enters a hive, the djinni will return to [#](ad03fc)The Other Place[#]().\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_bee.entity.text": " **Drops**: [](item://occultism:cursed_honey);\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_bee.name": "Possessed Bee", "book.occultism.dictionary_of_spirits.possession_rituals.possess_breeze.description.text": "The Wild Breeze has intrinsic Ominous Essence causing a drop of [](item://minecraft:ominous_trial_key). The [](item://minecraft:breeze_rod) from this enemy can survive after the battle and the extra loot is: [](item://minecraft:bolt_armor_trim_smithing_template), [](item://minecraft:guster_banner_pattern) and [](item://minecraft:music_disc_precipice).\n", @@ -1195,6 +1252,7 @@ "entity.occultism.greedy_familiar": "Greedy Familiar", "entity.occultism.guardian_familiar": "Guardian Familiar", "entity.occultism.headless_familiar": "Headless Familiar", + "entity.occultism.iesnium_golem": "Iesnium Golem", "entity.occultism.marid": "Marid", "entity.occultism.marid_unbound": "Unbound Marid", "entity.occultism.mercy_goat": "Goat of Mercy", @@ -1362,8 +1420,10 @@ "item.occultism.chalk_pink_impure": "Impure Pink Chalk", "item.occultism.chalk_purple": "Purple Chalk", "item.occultism.chalk_purple_impure": "Impure Purple Chalk", + "item.occultism.chalk_rainbow": "Rainbow Chalk", "item.occultism.chalk_red": "Red Chalk", "item.occultism.chalk_red_impure": "Impure Red Chalk", + "item.occultism.chalk_void": "Void Chalk", "item.occultism.chalk_white": "White Chalk", "item.occultism.chalk_white_impure": "Impure White Chalk", "item.occultism.chalk_yellow_impure": "Impure Yellow Chalk", @@ -1473,6 +1533,10 @@ "item.occultism.ritual_dummy.craft_familiar_ring.tooltip": "The Familiar Ring allows to store familiars. The ring will apply the familiar effect to the wearer.", "item.occultism.ritual_dummy.craft_gray_paste": "Ritual: Craft Gray Paste", "item.occultism.ritual_dummy.craft_gray_paste.tooltip": "A Djinni will craft the gray paste mixing ingredients.", + "item.occultism.ritual_dummy.craft_iesnium_anvil": "Ritual: Craft Iesnium Anvil", + "item.occultism.ritual_dummy.craft_iesnium_anvil.tooltip": "The iesnium anvil is an improvement on the common anvil, see all the advantages in the dictionary.", + "item.occultism.ritual_dummy.craft_iesnium_sacrificial_bowl": "Ritual: Craft Iesnium Sacrificial Bowl", + "item.occultism.ritual_dummy.craft_iesnium_sacrificial_bowl.tooltip": "The Iesnium Sacrificial Bowl performs any ritual in only a quarter of the normal time. All other things will works like the Golden Sacrificial Bowl.", "item.occultism.ritual_dummy.craft_infused_lenses": "Ritual: Craft Infused Lenses", "item.occultism.ritual_dummy.craft_infused_lenses.tooltip": "These lenses are used to craft spectacles that give thee ability to see beyond the physical world.", "item.occultism.ritual_dummy.craft_infused_pickaxe": "Ritual: Craft Infused Pickaxe", @@ -1553,12 +1617,26 @@ "item.occultism.ritual_dummy.familiar_otherworld_bird.tooltip": "The Drikwings will provide their owner with limited flight abilities when nearby.", "item.occultism.ritual_dummy.familiar_parrot": "Ritual: Summon Parrot Familiar", "item.occultism.ritual_dummy.familiar_parrot.tooltip": "The Parrot familiars behave exactly like tamed parrots.", + "item.occultism.ritual_dummy.misc_bee_nest": "Ritual: Forge Bee Nest", + "item.occultism.ritual_dummy.misc_bee_nest.tooltip": "Wild Spirits will forge a bee nest, more beautiful than beehive.", + "item.occultism.ritual_dummy.misc_bell": "Ritual: Forge Bell", + "item.occultism.ritual_dummy.misc_bell.tooltip": "Wild Spirits will forge a bell.", "item.occultism.ritual_dummy.misc_budding_amethyst": "Ritual: Forge Budding Amethyst", "item.occultism.ritual_dummy.misc_budding_amethyst.tooltip": "Wild Spirits will forge a Budding Amethyst.", + "item.occultism.ritual_dummy.misc_chalk_rainbow": "Ritual: Forge Rainbow Chalk", + "item.occultism.ritual_dummy.misc_chalk_rainbow.tooltip": "Eldritch Spirits will forge a rainbow chalk, substitute any colored chalk.", + "item.occultism.ritual_dummy.misc_chalk_void": "Ritual: Forge Void Chalk", + "item.occultism.ritual_dummy.misc_chalk_void.tooltip": "Eldritch Spirits will forge a rainbow chalk, substitute any chalk.", + "item.occultism.ritual_dummy.misc_eldritch_chalice": "Ritual: Forge Eldritch Chalice", + "item.occultism.ritual_dummy.misc_eldritch_chalice.tooltip": "Eldritch Spirits will forge an Eldritch Chalice, that performs any ritual instantly. Here is your trophy.", "item.occultism.ritual_dummy.misc_miner_ancient_eldritch": "Ritual: Summon Eldritch Ancient Miner", "item.occultism.ritual_dummy.misc_miner_ancient_eldritch.tooltip": "Summon Eldritch Ancient Miner into a magic lamp.", "item.occultism.ritual_dummy.misc_reinforced_deepslate": "Ritual: Forge Reinforced Deepslate", - "item.occultism.ritual_dummy.misc_reinforced_deepslate.tooltip": "Ancient Spirits will forge a Reinforced Deepslate.", + "item.occultism.ritual_dummy.misc_reinforced_deepslate.tooltip": "Wild Spirits will forge a Reinforced Deepslate.", + "item.occultism.ritual_dummy.misc_stabilized_storage": "Ritual: Forge Stabilized Dimensional Storage Actuator", + "item.occultism.ritual_dummy.misc_stabilized_storage.tooltip": "Eldritch Spirits will forge a Stabilized Dimensional Storage Actuator, works as an actuator with maximum stabilizers in only one block.", + "item.occultism.ritual_dummy.misc_trinity_gem": "Ritual: Forge Trinity Gem", + "item.occultism.ritual_dummy.misc_trinity_gem.tooltip": "Eldritch Spirits will forge a trinity gem, upgrading a soul gem.", "item.occultism.ritual_dummy.misc_wild_trim": "Ritual: Forge Wild Armor Trim Smithing Template", "item.occultism.ritual_dummy.misc_wild_trim.tooltip": "Wild Spirits will forge a Wild Armor Trim Smithing Template.", "item.occultism.ritual_dummy.possess_bee": "Ritual: Summon Possessed Bee", @@ -1575,6 +1653,8 @@ "item.occultism.ritual_dummy.possess_goat.tooltip": "The Goat of Mercy will drop the Cruelty Essence.", "item.occultism.ritual_dummy.possess_hoglin": "Ritual: Summon Possessed Hoglin", "item.occultism.ritual_dummy.possess_hoglin.tooltip": "The Possessed Hoglin has a chance to drop smithing template of netherite upgrade when killed.", + "item.occultism.ritual_dummy.possess_iesnium_golem": "Ritual: Summon Iesnium Golem", + "item.occultism.ritual_dummy.possess_iesnium_golem.tooltip": "Summons the strong and invulnerable iesnium golem to defend a region.", "item.occultism.ritual_dummy.possess_phantom": "Ritual: Summon Possessed Phantom", "item.occultism.ritual_dummy.possess_phantom.tooltip": "The Possessed Phantom will always drop at least one phantom membrane when killed and is easy to trap.", "item.occultism.ritual_dummy.possess_random_animal_common": "Ritual: Summon Common Random Animal", @@ -1697,10 +1777,10 @@ "item.occultism.ritual_satchel.no_preview_in_world": " You need to preview a pentacle using the Dictionary of Spirits.", "item.occultism.ritual_satchel.no_valid_item_in_satchel": "There is no valid item in the satchel for this previewed block.", "item.occultism.ritual_satchel_t1": "Apprentice Ritual Satchel", - "item.occultism.ritual_satchel_t1.auto_tooltip": "A basic ritual satchel that can place ritual circles block by block.\nRight-Click a preview block to place it out of the satchel.\nShift-Right-Click to open the satchel and add ritual ingredients.\nIf an item inside has less than 40% of durability the foil effect will stop.\n", + "item.occultism.ritual_satchel_t1.auto_tooltip": "A basic ritual satchel that can place ritual circles block by block.\nRight-Click a preview block to place it out of the satchel.\nShift-Right-Click to open the satchel and add ritual ingredients.\nIf an item inside has less than 40% of durability the glint effect will stop.\n", "item.occultism.ritual_satchel_t1.tooltip": "%s is bound to this satchel.", "item.occultism.ritual_satchel_t2": "Artisanal Ritual Satchel", - "item.occultism.ritual_satchel_t2.auto_tooltip": "An improved ritual satchel that can place an entire ritual circle at once.\nRight-Click any preview block to place all preview blocks out of the satchel.\nShift-Right-Click to open the satchel and add ritual ingredients.\nRight-Click a Golden Bowl to remove the ritual circle and collect the ingredients.\nIf an item inside has less than 40% of durability the foil effect will stop.\n", + "item.occultism.ritual_satchel_t2.auto_tooltip": "An improved ritual satchel that can place an entire ritual circle at once.\nRight-Click any preview block to place all preview blocks out of the satchel.\nShift-Right-Click to open the satchel and add ritual ingredients.\nRight-Click a Golden Bowl to remove the ritual circle and collect the ingredients.\nIf an item inside has less than 40% of durability the glint effect will stop.\n", "item.occultism.ritual_satchel_t2.tooltip": "%s is bound to this satchel.", "item.occultism.satchel": "Surprisingly Substantial Satchel", "item.occultism.satchel.tooltip": "%s is bound to this satchel.", @@ -1738,6 +1818,7 @@ "item.occultism.spawn_egg.familiar_parrot": "Parrot Familiar Spawn Egg", "item.occultism.spawn_egg.familiar_shub_niggurath": "Shub Niggurath Familiar Spawn Egg", "item.occultism.spawn_egg.foliot": "Foliot Spawn Egg", + "item.occultism.spawn_egg.iesnium_golem": "Iesnium Golem Spawn Egg", "item.occultism.spawn_egg.marid": "Marid Spawn Egg", "item.occultism.spawn_egg.marid_unbound": "Unbound Marid Spawn Egg", "item.occultism.spawn_egg.otherworld_bird": "Drikwing Spawn Egg", @@ -1775,6 +1856,11 @@ "item.occultism.storage_remote_inert": "Inert Storage Accessor", "item.occultism.taboo_book": "Taboo Book", "item.occultism.tallow": "Tallow", + "item.occultism.trinity_gem": "Trinity Gem", + "item.occultism.trinity_gem.message.entity_type_denied": "Trinity gems cannot contain this type of being.", + "item.occultism.trinity_gem.tooltip_empty": "Use on a creature to capture it.", + "item.occultism.trinity_gem.tooltip_filled": "Contains a captured %s.", + "item.occultism.trinity_gem_empty": "Empty Trinity Gem", "item.occultism.witherite_dust": "Witherite Dust", "item.occultism.wormhole_frame": "Wormhole Frame", "itemGroup.occultism": "Occultism", @@ -1875,7 +1961,7 @@ "message.occultism.familiar.shub_niggurath_familiar.enabled": "Ring Effect - Shub Niggurath: Enabled", "messages.occultism.container_already_open": "This container is already opened by another player, wait until they close it.", "multiblock.occultism.contact_eldritch_spirit": "Ronaza's Contact", - "multiblock.occultism.contact_wild_spirit": "Osorin's Wild Calling", + "multiblock.occultism.contact_wild_spirit": "Osorin's Unbound Calling", "multiblock.occultism.craft_afrit": "Sevira's Permanent Confinement", "multiblock.occultism.craft_djinni": "Strigeor's Higher Binding", "multiblock.occultism.craft_foliot": "Eziveus' Spectral Compulsion", @@ -1947,6 +2033,7 @@ "occultism.configuration.showItemTagsInTooltip": "Show Item Tags in Tooltips", "occultism.configuration.smelterResultPickupDelay": "Delay before items from smelter operations can be picked up.", "occultism.configuration.spirit_job": "Spirit Job Settings", + "occultism.configuration.stabilizedControllerStabilizers": "Stabilized Controller Built-in Stabilizers", "occultism.configuration.stabilizerTier1AdditionalMaxItemTypes": "Stabilizer Tier 1 Additional Max Item Types", "occultism.configuration.stabilizerTier1AdditionalMaxTotalItemCount": "Stabilizer Tier 1 Additional Max Total Item Count", "occultism.configuration.stabilizerTier2AdditionalMaxItemTypes": "Stabilizer Tier 2 Additional Max Item Types", @@ -2008,6 +2095,14 @@ "ritual.occultism.craft_gray_paste.finished": "Successfully infused Gray Paste.", "ritual.occultism.craft_gray_paste.interrupted": "Craft of Gray Paste interrupted.", "ritual.occultism.craft_gray_paste.started": "Started infusing Gray Paste.", + "ritual.occultism.craft_iesnium_anvil.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.craft_iesnium_anvil.finished": "Successfully bound a marid into iesnium anvil.", + "ritual.occultism.craft_iesnium_anvil.interrupted": "Binding of marid interrupted.", + "ritual.occultism.craft_iesnium_anvil.started": "Started binding a marid into iesnium anvil.", + "ritual.occultism.craft_iesnium_sacrificial_bowl.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.craft_iesnium_sacrificial_bowl.finished": "Successfully bound an afrit into iesnium sacrificial bowl.", + "ritual.occultism.craft_iesnium_sacrificial_bowl.interrupted": "Binding of afrit interrupted.", + "ritual.occultism.craft_iesnium_sacrificial_bowl.started": "Started binding an afrit into iesnium sacrificial bowl.", "ritual.occultism.craft_infused_lenses.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.craft_infused_lenses.finished": "Successfully bound foliot into lenses.", "ritual.occultism.craft_infused_lenses.interrupted": "Binding of foliot interrupted.", @@ -2093,7 +2188,7 @@ "ritual.occultism.debug.interrupted": "Ritual interrupted.", "ritual.occultism.debug.started": "Ritual started.", "ritual.occultism.disabled": "This ritual is disabled on this server.", - "ritual.occultism.does_not_exist": "§lUnknown ritual§r. Make sure the pentacle & ingredients are set up correctly. If you are still unsuccessful join our discord at https://discord.gg/trE4SHRXvb", + "ritual.occultism.does_not_exist": "§lUnknown ritual§r. Make sure the pentacle & ingredients are set up correctly. If you are still unsuccessful join our discord at https://invite.gg/klikli", "ritual.occultism.familiar_bat.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.familiar_bat.finished": "Summoned bat familiar successfully.", "ritual.occultism.familiar_bat.interrupted": "Summoning of bat familiar interrupted.", @@ -2158,10 +2253,30 @@ "ritual.occultism.familiar_parrot.finished": "Summoned parrot familiar successfully.", "ritual.occultism.familiar_parrot.interrupted": "Summoning of parrot familiar interrupted.", "ritual.occultism.familiar_parrot.started": "Started summoning parrot familiar.", + "ritual.occultism.misc_bee_nest.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.misc_bee_nest.finished": "Successfully forged bee nest.", + "ritual.occultism.misc_bee_nest.interrupted": "Forging bee nest interrupted.", + "ritual.occultism.misc_bee_nest.started": "Started forging bee nest.", + "ritual.occultism.misc_bell.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.misc_bell.finished": "Successfully forged bell.", + "ritual.occultism.misc_bell.interrupted": "Forging bell interrupted.", + "ritual.occultism.misc_bell.started": "Started forging bell.", "ritual.occultism.misc_budding_amethyst.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.misc_budding_amethyst.finished": "Successfully forged budding amethyst.", "ritual.occultism.misc_budding_amethyst.interrupted": "Forging budding amethyst interrupted.", "ritual.occultism.misc_budding_amethyst.started": "Started forging budding amethyst.", + "ritual.occultism.misc_chalk_rainbow.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.misc_chalk_rainbow.finished": "Successfully forged rainbow chalk.", + "ritual.occultism.misc_chalk_rainbow.interrupted": "Forging rainbow chalk interrupted.", + "ritual.occultism.misc_chalk_rainbow.started": "Started forging rainbow chalk.", + "ritual.occultism.misc_chalk_void.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.misc_chalk_void.finished": "Successfully forged void chalk.", + "ritual.occultism.misc_chalk_void.interrupted": "Forging void chalk interrupted.", + "ritual.occultism.misc_chalk_void.started": "Started forging void chalk.", + "ritual.occultism.misc_eldritch_chalice.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.misc_eldritch_chalice.finished": "Successfully forged eldritch chalice.", + "ritual.occultism.misc_eldritch_chalice.interrupted": "Forging eldritch chalice interrupted.", + "ritual.occultism.misc_eldritch_chalice.started": "Started forging eldritch chalice.", "ritual.occultism.misc_miner_ancient_eldritch.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.misc_miner_ancient_eldritch.finished": "Successfully summoned something into magic lamp.", "ritual.occultism.misc_miner_ancient_eldritch.interrupted": "Summoning of something interrupted.", @@ -2170,6 +2285,14 @@ "ritual.occultism.misc_reinforced_deepslate.finished": "Successfully forged reinforced deepslate.", "ritual.occultism.misc_reinforced_deepslate.interrupted": "Forging reinforced deepslate interrupted.", "ritual.occultism.misc_reinforced_deepslate.started": "Started forging reinforced deepslate.", + "ritual.occultism.misc_stabilized_storage.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.misc_stabilized_storage.finished": "Successfully forged stabilized dimensional storage actuator.", + "ritual.occultism.misc_stabilized_storage.interrupted": "Forging stabilized dimensional storage actuator interrupted.", + "ritual.occultism.misc_stabilized_storage.started": "Started forging stabilized dimensional storage actuator.", + "ritual.occultism.misc_trinity_gem.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.misc_trinity_gem.finished": "Successfully forged trinity gem.", + "ritual.occultism.misc_trinity_gem.interrupted": "Forging trinity gem interrupted.", + "ritual.occultism.misc_trinity_gem.started": "Started forging trinity gem.", "ritual.occultism.misc_wild_trim.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.misc_wild_trim.finished": "Successfully forged the Wild Armor Trim Smithing Template.", "ritual.occultism.misc_wild_trim.interrupted": "Binding of djinni interrupted.", @@ -2205,6 +2328,10 @@ "ritual.occultism.possess_hoglin.finished": "Summoned possessed hoglin successfully.", "ritual.occultism.possess_hoglin.interrupted": "Summoning of possessed hoglin interrupted.", "ritual.occultism.possess_hoglin.started": "Started summoning possessed hoglin.", + "ritual.occultism.possess_iesnium_golem.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.possess_iesnium_golem.finished": "Successfully bound a marid into iesnium golem.", + "ritual.occultism.possess_iesnium_golem.interrupted": "Possessing of marid interrupted.", + "ritual.occultism.possess_iesnium_golem.started": "Started possessing a marid into iesnium golem.", "ritual.occultism.possess_phantom.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.possess_phantom.finished": "Summoned possessed phantom successfully.", "ritual.occultism.possess_phantom.interrupted": "Summoning of possessed phantom interrupted.", @@ -2293,6 +2420,7 @@ "ritual.occultism.sacrifice.allay": "Allay", "ritual.occultism.sacrifice.axolotls": "Axolotl", "ritual.occultism.sacrifice.bats": "Bat", + "ritual.occultism.sacrifice.bees": "Bee", "ritual.occultism.sacrifice.camel": "Camel", "ritual.occultism.sacrifice.cats": "Cat", "ritual.occultism.sacrifice.chicken": "Chicken", @@ -2301,6 +2429,7 @@ "ritual.occultism.sacrifice.dolphin": "Dolphin", "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", + "ritual.occultism.sacrifice.goats": "Goat", "ritual.occultism.sacrifice.horses": "Horse", "ritual.occultism.sacrifice.humans": "Villager or Player", "ritual.occultism.sacrifice.iron_golem": "Iron Golem", @@ -2308,6 +2437,7 @@ "ritual.occultism.sacrifice.ocelot": "Ocelot", "ritual.occultism.sacrifice.parrots": "Parrot", "ritual.occultism.sacrifice.pigs": "Pigs", + "ritual.occultism.sacrifice.ravager": "Ravager", "ritual.occultism.sacrifice.sheep": "Sheep", "ritual.occultism.sacrifice.snow_golem": "Snow Golem", "ritual.occultism.sacrifice.spiders": "Spider", diff --git a/src/generated/resources/assets/occultism/models/item/chalk_rainbow.json b/src/generated/resources/assets/occultism/models/item/chalk_rainbow.json new file mode 100644 index 000000000..134786a24 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/chalk_rainbow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "occultism:item/chalk_rainbow" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/chalk_void.json b/src/generated/resources/assets/occultism/models/item/chalk_void.json new file mode 100644 index 000000000..12f44e292 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/chalk_void.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "occultism:item/chalk_void" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/copper_sacrificial_bowl.json b/src/generated/resources/assets/occultism/models/item/copper_sacrificial_bowl.json new file mode 100644 index 000000000..38975d511 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/copper_sacrificial_bowl.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/copper_sacrificial_bowl" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/eldritch_chalice.json b/src/generated/resources/assets/occultism/models/item/eldritch_chalice.json new file mode 100644 index 000000000..2a96fe605 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/eldritch_chalice.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/eldritch_chalice" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/iesnium_sacrificial_bowl.json b/src/generated/resources/assets/occultism/models/item/iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..266937248 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/iesnium_sacrificial_bowl.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/iesnium_sacrificial_bowl" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/otherglass_natural.json b/src/generated/resources/assets/occultism/models/item/otherglass_natural.json new file mode 100644 index 000000000..b210be562 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/otherglass_natural.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/otherglass_natural" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/otherstone_pedestal_silver.json b/src/generated/resources/assets/occultism/models/item/otherstone_pedestal_silver.json new file mode 100644 index 000000000..26f42ad7b --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/otherstone_pedestal_silver.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/otherstone_pedestal_silver" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/craft_iesnium_anvil.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/craft_iesnium_anvil.json new file mode 100644 index 000000000..ccdb9737f --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/craft_iesnium_anvil.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_craft" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/craft_iesnium_sacrificial_bowl.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/craft_iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..ccdb9737f --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/craft_iesnium_sacrificial_bowl.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_craft" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_bee_nest.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_bee_nest.json new file mode 100644 index 000000000..1d2191b74 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_bee_nest.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_misc" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_bell.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_bell.json new file mode 100644 index 000000000..1d2191b74 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_bell.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_misc" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_chalk_rainbow.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_chalk_rainbow.json new file mode 100644 index 000000000..1d2191b74 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_chalk_rainbow.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_misc" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_chalk_void.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_chalk_void.json new file mode 100644 index 000000000..1d2191b74 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_chalk_void.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_misc" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_eldritch_chalice.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_eldritch_chalice.json new file mode 100644 index 000000000..1d2191b74 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_eldritch_chalice.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_misc" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_stabilized_storage.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_stabilized_storage.json new file mode 100644 index 000000000..1d2191b74 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_stabilized_storage.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_misc" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_trinity_gem.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_trinity_gem.json new file mode 100644 index 000000000..1d2191b74 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/misc_trinity_gem.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_misc" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_iesnium_golem.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_iesnium_golem.json new file mode 100644 index 000000000..6fbdc0dab --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_iesnium_golem.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/pentacle_possess" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/silver_sacrificial_bowl.json b/src/generated/resources/assets/occultism/models/item/silver_sacrificial_bowl.json new file mode 100644 index 000000000..a64623da1 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/silver_sacrificial_bowl.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/silver_sacrificial_bowl" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/spawn_egg/iesnium_golem.json b/src/generated/resources/assets/occultism/models/item/spawn_egg/iesnium_golem.json new file mode 100644 index 000000000..d1aaa9d6e --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/spawn_egg/iesnium_golem.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/storage_controller_stabilized.json b/src/generated/resources/assets/occultism/models/item/storage_controller_stabilized.json new file mode 100644 index 000000000..6ce9026f0 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/storage_controller_stabilized.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/storage_controller_stabilized" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/storage_stabilizer_tier0.json b/src/generated/resources/assets/occultism/models/item/storage_stabilizer_tier0.json new file mode 100644 index 000000000..718b5bc81 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/storage_stabilizer_tier0.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/storage_stabilizer_tier0" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/tallow_block.json b/src/generated/resources/assets/occultism/models/item/tallow_block.json new file mode 100644 index 000000000..b961cb356 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/tallow_block.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:block/tallow_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/entity_type/bats.json b/src/generated/resources/data/c/tags/entity_type/bats.json index 3bf83f77e..d03e4800b 100644 --- a/src/generated/resources/data/c/tags/entity_type/bats.json +++ b/src/generated/resources/data/c/tags/entity_type/bats.json @@ -1,5 +1,6 @@ { "values": [ - "minecraft:bat" + "minecraft:bat", + "occultism:bat_familiar" ] } \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/entity_type/bees.json b/src/generated/resources/data/c/tags/entity_type/bees.json new file mode 100644 index 000000000..ec412ca07 --- /dev/null +++ b/src/generated/resources/data/c/tags/entity_type/bees.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:bee", + "occultism:possessed_bee" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/c/tags/entity_type/ravagers.json b/src/generated/resources/data/c/tags/entity_type/ravagers.json new file mode 100644 index 000000000..8ba4a4a95 --- /dev/null +++ b/src/generated/resources/data/c/tags/entity_type/ravagers.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:ravager" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/anvil.json b/src/generated/resources/data/minecraft/tags/block/anvil.json new file mode 100644 index 000000000..3647cd474 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/anvil.json @@ -0,0 +1,5 @@ +{ + "values": [ + "occultism:iesnium_anvil" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/flower_pots.json b/src/generated/resources/data/minecraft/tags/block/flower_pots.json new file mode 100644 index 000000000..9f47722f9 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/flower_pots.json @@ -0,0 +1,5 @@ +{ + "values": [ + "occultism:potted_otherflower" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/infiniburn_overworld.json b/src/generated/resources/data/minecraft/tags/block/infiniburn_overworld.json new file mode 100644 index 000000000..5c77520ce --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/infiniburn_overworld.json @@ -0,0 +1,5 @@ +{ + "values": [ + "occultism:tallow_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/axe.json b/src/generated/resources/data/minecraft/tags/block/mineable/axe.json index b911bd180..b886c9b85 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/axe.json @@ -6,6 +6,7 @@ "occultism:otherworld_wood", "occultism:stripped_otherworld_log", "occultism:stripped_otherworld_wood", - "occultism:spirit_campfire" + "occultism:spirit_campfire", + "occultism:tallow_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index c6f088080..692a6a2d6 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -6,10 +6,17 @@ "occultism:otherstone_slab", "occultism:otherstone_pressure_plate", "occultism:otherstone_pedestal", + "occultism:otherstone_pedestal_silver", "occultism:storage_controller_base", "occultism:sacrificial_bowl", + "occultism:copper_sacrificial_bowl", + "occultism:silver_sacrificial_bowl", "occultism:golden_sacrificial_bowl", + "occultism:iesnium_sacrificial_bowl", + "occultism:eldritch_chalice", "occultism:storage_controller", + "occultism:storage_controller_stabilized", + "occultism:storage_stabilizer_tier0", "occultism:storage_stabilizer_tier1", "occultism:storage_stabilizer_tier2", "occultism:storage_stabilizer_tier3", @@ -28,6 +35,7 @@ "occultism:othercobblestone", "occultism:othercobblestone_stairs", "occultism:othercobblestone_slab", + "occultism:otherglass_natural", "occultism:polished_otherstone", "occultism:polished_otherstone_stairs", "occultism:polished_otherstone_slab", @@ -35,6 +43,7 @@ "occultism:otherstone_bricks_stairs", "occultism:otherstone_bricks_slab", "occultism:chiseled_otherstone_bricks", - "occultism:cracked_otherstone_bricks" + "occultism:cracked_otherstone_bricks", + "occultism:iesnium_anvil" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json b/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json new file mode 100644 index 000000000..fe9a06d32 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json @@ -0,0 +1,6 @@ +{ + "values": [ + "occultism:silver_ore", + "occultism:silver_ore_deepslate" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/small_flowers.json b/src/generated/resources/data/minecraft/tags/block/small_flowers.json new file mode 100644 index 000000000..1428d65c3 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/small_flowers.json @@ -0,0 +1,6 @@ +{ + "values": [ + "occultism:otherflower", + "occultism:otherflower_natural" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/item/small_flowers.json b/src/generated/resources/data/minecraft/tags/item/small_flowers.json new file mode 100644 index 000000000..1428d65c3 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/item/small_flowers.json @@ -0,0 +1,6 @@ +{ + "values": [ + "occultism:otherflower", + "occultism:otherflower_natural" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/craft_iesnium_anvil.json b/src/generated/resources/data/occultism/advancement/occultism/craft_iesnium_anvil.json new file mode 100644 index 000000000..b4b3065f9 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/craft_iesnium_anvil.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "craft_iesnium_anvil": { + "conditions": { + "ritual_id": "occultism:ritual/craft_iesnium_anvil" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.craft_iesnium_anvil.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.craft_iesnium_anvil.title" + } + }, + "requirements": [ + [ + "craft_iesnium_anvil" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/craft_iesnium_sacrificial_bowl.json b/src/generated/resources/data/occultism/advancement/occultism/craft_iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..85af5eb7d --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/craft_iesnium_sacrificial_bowl.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "craft_iesnium_sacrificial_bowl": { + "conditions": { + "ritual_id": "occultism:ritual/craft_iesnium_sacrificial_bowl" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.craft_iesnium_sacrificial_bowl.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.craft_iesnium_sacrificial_bowl.title" + } + }, + "requirements": [ + [ + "craft_iesnium_sacrificial_bowl" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/misc_bee_nest.json b/src/generated/resources/data/occultism/advancement/occultism/misc_bee_nest.json new file mode 100644 index 000000000..0a3430a48 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/misc_bee_nest.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "misc_bee_nest": { + "conditions": { + "ritual_id": "occultism:ritual/misc_bee_nest" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.misc_bee_nest.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.misc_bee_nest.title" + } + }, + "requirements": [ + [ + "misc_bee_nest" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/misc_bell.json b/src/generated/resources/data/occultism/advancement/occultism/misc_bell.json new file mode 100644 index 000000000..1e78623b0 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/misc_bell.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "misc_bell": { + "conditions": { + "ritual_id": "occultism:ritual/misc_bell" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.misc_bell.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.misc_bell.title" + } + }, + "requirements": [ + [ + "misc_bell" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/misc_chalk_rainbow.json b/src/generated/resources/data/occultism/advancement/occultism/misc_chalk_rainbow.json new file mode 100644 index 000000000..7e3542252 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/misc_chalk_rainbow.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "misc_chalk_rainbow": { + "conditions": { + "ritual_id": "occultism:ritual/misc_chalk_rainbow" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.misc_chalk_rainbow.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.misc_chalk_rainbow.title" + } + }, + "requirements": [ + [ + "misc_chalk_rainbow" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/misc_chalk_void.json b/src/generated/resources/data/occultism/advancement/occultism/misc_chalk_void.json new file mode 100644 index 000000000..45ab6fe29 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/misc_chalk_void.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "misc_chalk_void": { + "conditions": { + "ritual_id": "occultism:ritual/misc_chalk_void" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.misc_chalk_void.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.misc_chalk_void.title" + } + }, + "requirements": [ + [ + "misc_chalk_void" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/misc_eldritch_chalice.json b/src/generated/resources/data/occultism/advancement/occultism/misc_eldritch_chalice.json new file mode 100644 index 000000000..52161cd33 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/misc_eldritch_chalice.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "misc_eldritch_chalice": { + "conditions": { + "ritual_id": "occultism:ritual/misc_eldritch_chalice" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.misc_eldritch_chalice.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.misc_eldritch_chalice.title" + } + }, + "requirements": [ + [ + "misc_eldritch_chalice" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/misc_stabilized_storage.json b/src/generated/resources/data/occultism/advancement/occultism/misc_stabilized_storage.json new file mode 100644 index 000000000..8e25180a3 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/misc_stabilized_storage.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "misc_stabilized_storage": { + "conditions": { + "ritual_id": "occultism:ritual/misc_stabilized_storage" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.misc_stabilized_storage.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.misc_stabilized_storage.title" + } + }, + "requirements": [ + [ + "misc_stabilized_storage" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/misc_trinity_gem.json b/src/generated/resources/data/occultism/advancement/occultism/misc_trinity_gem.json new file mode 100644 index 000000000..413897247 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/misc_trinity_gem.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "misc_trinity_gem": { + "conditions": { + "ritual_id": "occultism:ritual/misc_trinity_gem" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.misc_trinity_gem.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.misc_trinity_gem.title" + } + }, + "requirements": [ + [ + "misc_trinity_gem" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/occultism/possess_iesnium_golem.json b/src/generated/resources/data/occultism/advancement/occultism/possess_iesnium_golem.json new file mode 100644 index 000000000..b31c795ed --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/occultism/possess_iesnium_golem.json @@ -0,0 +1,32 @@ +{ + "parent": "occultism:occultism/root", + "criteria": { + "possess_iesnium_golem": { + "conditions": { + "ritual_id": "occultism:ritual/possess_iesnium_golem" + }, + "trigger": "occultism:ritual" + } + }, + "display": { + "announce_to_chat": false, + "description": { + "translate": "advancements.occultism.possess_iesnium_golem.description" + }, + "hidden": true, + "icon": { + "count": 1, + "id": "occultism:jei_dummy/none" + }, + "show_toast": false, + "title": { + "translate": "advancements.occultism.possess_iesnium_golem.title" + } + }, + "requirements": [ + [ + "possess_iesnium_golem" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/building_blocks/crafting/tallow_block.json b/src/generated/resources/data/occultism/advancement/recipes/building_blocks/crafting/tallow_block.json new file mode 100644 index 000000000..d8ababc8e --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/building_blocks/crafting/tallow_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_tallow": { + "conditions": { + "items": [ + { + "items": "#c:tallow" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/tallow_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tallow" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/tallow_block" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/crushing/crushing/coal_dust_from_tag.json b/src/generated/resources/data/occultism/advancement/recipes/crushing/crushing/coal_dust_from_tag.json new file mode 100644 index 000000000..9a1d0a9b8 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/crushing/crushing/coal_dust_from_tag.json @@ -0,0 +1,48 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "minecraft:coals" + } + }, + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "c:dusts/coal" + } + } + ], + "parent": "minecraft:recipes/root", + "criteria": { + "has_coal": { + "conditions": { + "items": [ + { + "items": "#minecraft:coals" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crushing/coal_dust_from_tag" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_coal" + ] + ], + "rewards": { + "recipes": [ + "occultism:crushing/coal_dust_from_tag" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/copper_sacrificial_bowl.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/copper_sacrificial_bowl.json new file mode 100644 index 000000000..e92e4925b --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/copper_sacrificial_bowl.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sacrificial_bowl": { + "conditions": { + "items": [ + { + "items": "occultism:sacrificial_bowl" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/copper_sacrificial_bowl" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sacrificial_bowl" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/copper_sacrificial_bowl" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_black_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_black_dye.json new file mode 100644 index 000000000..3c60df79b --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_black_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_black_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_black_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_blue_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_blue_dye.json new file mode 100644 index 000000000..6b028996c --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_blue_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_blue_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_blue_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_brown_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_brown_dye.json new file mode 100644 index 000000000..eacc70b7b --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_brown_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_brown_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_brown_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_cyan_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_cyan_dye.json new file mode 100644 index 000000000..653659af8 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_cyan_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_cyan_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_cyan_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_gray_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_gray_dye.json new file mode 100644 index 000000000..463572090 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_gray_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_gray_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_gray_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_green_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_green_dye.json new file mode 100644 index 000000000..4b48f6a6b --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_green_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_green_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_green_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_light_blue_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_light_blue_dye.json new file mode 100644 index 000000000..299208e19 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_light_blue_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_light_blue_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_light_blue_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_light_gray_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_light_gray_dye.json new file mode 100644 index 000000000..53964a5e8 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_light_gray_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_light_gray_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_light_gray_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_lime_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_lime_dye.json new file mode 100644 index 000000000..bcca78cb7 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_lime_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_lime_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_lime_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_magenta_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_magenta_dye.json new file mode 100644 index 000000000..5cc585df9 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_magenta_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_magenta_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_magenta_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_orange_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_orange_dye.json new file mode 100644 index 000000000..cbf04adbe --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_orange_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_orange_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_orange_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_pink_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_pink_dye.json new file mode 100644 index 000000000..58870e461 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_pink_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_pink_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_pink_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_purple_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_purple_dye.json new file mode 100644 index 000000000..4ea4b5c7e --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_purple_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_purple_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_purple_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_red_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_red_dye.json new file mode 100644 index 000000000..5b8482236 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_red_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_red_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_red_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_white_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_white_dye.json new file mode 100644 index 000000000..6516d6f91 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_white_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_white_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_white_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_yellow_dye.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_yellow_dye.json new file mode 100644 index 000000000..d11681c3c --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherflower_to_yellow_dye.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherflower": { + "conditions": { + "items": [ + { + "items": "occultism:otherflower" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherflower_to_yellow_dye" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherflower" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherflower_to_yellow_dye" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherglass.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherglass.json new file mode 100644 index 000000000..92070f44d --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherglass.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iesnium_nugget": { + "conditions": { + "items": [ + { + "items": "occultism:iesnium_nugget" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherglass" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iesnium_nugget" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherglass" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherstone_pedestal_silver.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherstone_pedestal_silver.json new file mode 100644 index 000000000..68a7ef759 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/otherstone_pedestal_silver.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherstone_pedestal": { + "conditions": { + "items": [ + { + "items": "occultism:otherstone_pedestal" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/otherstone_pedestal_silver" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherstone_pedestal" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/otherstone_pedestal_silver" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/silver_sacrificial_bowl.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/silver_sacrificial_bowl.json new file mode 100644 index 000000000..e1988b0c0 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/silver_sacrificial_bowl.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_sacrificial_bowl": { + "conditions": { + "items": [ + { + "items": "occultism:sacrificial_bowl" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/silver_sacrificial_bowl" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sacrificial_bowl" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/silver_sacrificial_bowl" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/storage_stabilizer_tier0.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/storage_stabilizer_tier0.json new file mode 100644 index 000000000..0cce6c8f5 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/storage_stabilizer_tier0.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_otherstone_pedestal": { + "conditions": { + "items": [ + { + "items": "occultism:otherstone_pedestal" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/storage_stabilizer_tier0" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_otherstone_pedestal" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/storage_stabilizer_tier0" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/tallow.json b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/tallow.json new file mode 100644 index 000000000..14c35605b --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/misc/crafting/tallow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_tallow_block": { + "conditions": { + "items": [ + { + "items": "occultism:tallow_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:crafting/tallow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tallow_block" + ] + ], + "rewards": { + "recipes": [ + "occultism:crafting/tallow" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/craft_iesnium_anvil.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/craft_iesnium_anvil.json new file mode 100644 index 000000000..1eb1c7615 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/craft_iesnium_anvil.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_marid": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_marid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/craft_iesnium_anvil" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_marid" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/craft_iesnium_anvil" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/craft_iesnium_sacrificial_bowl.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/craft_iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..1e2d02d0b --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/craft_iesnium_sacrificial_bowl.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_afrit": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_afrit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/craft_iesnium_sacrificial_bowl" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_afrit" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/craft_iesnium_sacrificial_bowl" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_bee_nest.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_bee_nest.json new file mode 100644 index 000000000..5cc4ce68b --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_bee_nest.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_afrit": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_afrit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/misc_bee_nest" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_afrit" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/misc_bee_nest" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_bell.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_bell.json new file mode 100644 index 000000000..10e7772d8 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_bell.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_afrit": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_afrit" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/misc_bell" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_afrit" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/misc_bell" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_chalk_rainbow.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_chalk_rainbow.json new file mode 100644 index 000000000..3389c8ea1 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_chalk_rainbow.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_marid": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_marid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/misc_chalk_rainbow" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_marid" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/misc_chalk_rainbow" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_chalk_void.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_chalk_void.json new file mode 100644 index 000000000..01b798512 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_chalk_void.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_marid": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_marid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/misc_chalk_void" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_marid" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/misc_chalk_void" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_eldritch_chalice.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_eldritch_chalice.json new file mode 100644 index 000000000..352608612 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_eldritch_chalice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_marid": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_marid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/misc_eldritch_chalice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_marid" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/misc_eldritch_chalice" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_reinforced_deepslate.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_reinforced_deepslate.json index 56be3b7bf..4ce338988 100644 --- a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_reinforced_deepslate.json +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_reinforced_deepslate.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_bound_marid": { + "has_bound_afrit": { "conditions": { "items": [ { - "items": "occultism:book_of_binding_bound_marid" + "items": "occultism:book_of_binding_bound_afrit" } ] }, @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "has_bound_marid" + "has_bound_afrit" ] ], "rewards": { diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_stabilized_storage.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_stabilized_storage.json new file mode 100644 index 000000000..6a5e1f1e0 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_stabilized_storage.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_marid": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_marid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/misc_stabilized_storage" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_marid" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/misc_stabilized_storage" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_trinity_gem.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_trinity_gem.json new file mode 100644 index 000000000..5ad2b8fcc --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/misc_trinity_gem.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_marid": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_marid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/misc_trinity_gem" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_marid" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/misc_trinity_gem" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/possess_iesnium_golem.json b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/possess_iesnium_golem.json new file mode 100644 index 000000000..10a220f32 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/ritual/ritual/possess_iesnium_golem.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bound_marid": { + "conditions": { + "items": [ + { + "items": "occultism:book_of_binding_bound_marid" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:ritual/possess_iesnium_golem" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bound_marid" + ] + ], + "rewards": { + "recipes": [ + "occultism:ritual/possess_iesnium_golem" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/advancement/recipes/spirit_fire/spirit_fire/otherflower.json b/src/generated/resources/data/occultism/advancement/recipes/spirit_fire/spirit_fire/otherflower.json new file mode 100644 index 000000000..067b8f4f9 --- /dev/null +++ b/src/generated/resources/data/occultism/advancement/recipes/spirit_fire/spirit_fire/otherflower.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_flower": { + "conditions": { + "items": [ + { + "items": "#minecraft:flowers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "occultism:spirit_fire/otherflower" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_flower" + ] + ], + "rewards": { + "recipes": [ + "occultism:spirit_fire/otherflower" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/copper_sacrificial_bowl.json b/src/generated/resources/data/occultism/loot_table/blocks/copper_sacrificial_bowl.json new file mode 100644 index 000000000..488bfa6dd --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/copper_sacrificial_bowl.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:copper_sacrificial_bowl" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/copper_sacrificial_bowl" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/eldritch_chalice.json b/src/generated/resources/data/occultism/loot_table/blocks/eldritch_chalice.json new file mode 100644 index 000000000..05c122886 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/eldritch_chalice.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:eldritch_chalice" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/eldritch_chalice" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/iesnium_anvil.json b/src/generated/resources/data/occultism/loot_table/blocks/iesnium_anvil.json new file mode 100644 index 000000000..f117ef996 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/iesnium_anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:iesnium_anvil" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/iesnium_anvil" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/iesnium_sacrificial_bowl.json b/src/generated/resources/data/occultism/loot_table/blocks/iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..d7260fad1 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/iesnium_sacrificial_bowl.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:iesnium_sacrificial_bowl" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/iesnium_sacrificial_bowl" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/otherflower.json b/src/generated/resources/data/occultism/loot_table/blocks/otherflower.json new file mode 100644 index 000000000..83d4c97d6 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/otherflower.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:otherflower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/otherflower" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/otherflower_natural.json b/src/generated/resources/data/occultism/loot_table/blocks/otherflower_natural.json new file mode 100644 index 000000000..4bc19329c --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/otherflower_natural.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "occultism:otherflower_natural", + "condition": "minecraft:block_state_property", + "properties": { + "uncovered": "true" + } + } + ], + "name": "occultism:otherflower" + }, + { + "type": "minecraft:item", + "name": "minecraft:poppy" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/otherflower_natural" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/otherglass.json b/src/generated/resources/data/occultism/loot_table/blocks/otherglass.json new file mode 100644 index 000000000..c8e3a4329 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/otherglass.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:air" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/otherglass" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/otherstone_pedestal_silver.json b/src/generated/resources/data/occultism/loot_table/blocks/otherstone_pedestal_silver.json new file mode 100644 index 000000000..16a76b33d --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/otherstone_pedestal_silver.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:otherstone_pedestal_silver" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/otherstone_pedestal_silver" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/potted_otherflower.json b/src/generated/resources/data/occultism/loot_table/blocks/potted_otherflower.json new file mode 100644 index 000000000..a21dc26d7 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/potted_otherflower.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:otherflower" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/potted_otherflower" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/silver_sacrificial_bowl.json b/src/generated/resources/data/occultism/loot_table/blocks/silver_sacrificial_bowl.json new file mode 100644 index 000000000..5a9fb200b --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/silver_sacrificial_bowl.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:silver_sacrificial_bowl" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/silver_sacrificial_bowl" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/storage_controller_stabilized.json b/src/generated/resources/data/occultism/loot_table/blocks/storage_controller_stabilized.json new file mode 100644 index 000000000..e99b5ff1d --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/storage_controller_stabilized.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_components", + "include": [ + "occultism:storage_controller_contents", + "occultism:sort_direction", + "occultism:sort_type", + "occultism:crafting_matrix", + "occultism:order_stack" + ], + "source": "block_entity" + } + ], + "name": "occultism:storage_controller_stabilized" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/storage_controller_stabilized" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/storage_stabilizer_tier0.json b/src/generated/resources/data/occultism/loot_table/blocks/storage_stabilizer_tier0.json new file mode 100644 index 000000000..44fe95aa6 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/storage_stabilizer_tier0.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:storage_stabilizer_tier0" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/storage_stabilizer_tier0" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_table/blocks/tallow_block.json b/src/generated/resources/data/occultism/loot_table/blocks/tallow_block.json new file mode 100644 index 000000000..de8aa23d1 --- /dev/null +++ b/src/generated/resources/data/occultism/loot_table/blocks/tallow_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "occultism:tallow_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/tallow_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/apprentice_ritual_satchel.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/apprentice_ritual_satchel.json index 32cdbe030..f6450d3c6 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/apprentice_ritual_satchel.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/apprentice_ritual_satchel.json @@ -69,6 +69,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 20, - "x": 3, - "y": 1 + "x": 0, + "y": -4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/artisanal_ritual_satchel.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/artisanal_ritual_satchel.json index 805d22d5e..d866827d4 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/artisanal_ritual_satchel.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/artisanal_ritual_satchel.json @@ -80,6 +80,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 21, - "x": 5, - "y": 1 + "x": 2, + "y": -4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/bee_nest.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/bee_nest.json new file mode 100644 index 000000000..822253ad5 --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/bee_nest.json @@ -0,0 +1,52 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/contact_wild_spirit" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.bee_nest.description", + "hide_while_locked": false, + "icon": { + "item": "minecraft:bee_nest" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.bee_nest.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "minecraft:bee_nest" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.bee_nest.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/misc_bee_nest", + "text": "", + "title1": "", + "title2": "" + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/overview", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 30, + "x": 4, + "y": 2 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/bell.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/bell.json new file mode 100644 index 000000000..57b9de85e --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/bell.json @@ -0,0 +1,52 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/contact_wild_spirit" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.bell.description", + "hide_while_locked": false, + "icon": { + "item": "minecraft:bell" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.bell.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "minecraft:bell" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.bell.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/misc_bell", + "text": "", + "title1": "", + "title2": "" + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/overview", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 31, + "x": 6, + "y": 2 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_afrit_miner.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_afrit_miner.json index 81a86b62a..ebd7773b6 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_afrit_miner.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_afrit_miner.json @@ -47,6 +47,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 6, - "x": 0, - "y": -5 + "x": -2, + "y": -6 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_ancient_miner.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_ancient_miner.json index 63ecffba1..daf7fa56d 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_ancient_miner.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_ancient_miner.json @@ -47,6 +47,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 8, - "x": 4, - "y": -5 + "x": 2, + "y": -6 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_budding_amethyst.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_budding_amethyst.json index e7c5554e5..6520b576f 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_budding_amethyst.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_budding_amethyst.json @@ -46,7 +46,7 @@ } ], "show_when_any_parent_unlocked": false, - "sort_number": 25, - "x": 3, - "y": -3 + "sort_number": 28, + "x": 0, + "y": 2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_matrix.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_matrix.json index 236769883..257e76685 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_matrix.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_matrix.json @@ -43,6 +43,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 10, - "x": -2, - "y": 1 + "x": -4, + "y": 4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_mineshaft.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_mineshaft.json index bc786f82e..db296338e 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_mineshaft.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_dimensional_mineshaft.json @@ -43,6 +43,17 @@ "title": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.description.title", "use_markdown_in_title": false }, + { + "type": "modonomicon:text", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "show_title_separator": true, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.redstone.text", + "title": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_dimensional_mineshaft.redstone.title", + "use_markdown_in_title": false + }, { "type": "modonomicon:text", "anchor": "", @@ -66,5 +77,5 @@ "show_when_any_parent_unlocked": false, "sort_number": 3, "x": -6, - "y": -5 + "y": -4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_djinni_miner.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_djinni_miner.json index 42d6be220..de722d1f7 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_djinni_miner.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_djinni_miner.json @@ -43,6 +43,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 5, - "x": -2, - "y": -5 + "x": -4, + "y": -6 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_eldritch_chalice.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_eldritch_chalice.json new file mode 100644 index 000000000..c944ef612 --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_eldritch_chalice.json @@ -0,0 +1,52 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/contact_eldritch_spirit" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_eldritch_chalice.description", + "hide_while_locked": false, + "icon": { + "item": "occultism:eldritch_chalice" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_eldritch_chalice.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "occultism:eldritch_chalice" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_eldritch_chalice.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/misc_eldritch_chalice", + "text": "", + "title1": "", + "title2": "" + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/craft_iesnium_sacrificial_bowl", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 32, + "x": -2, + "y": -4 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_familiar_ring.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_familiar_ring.json index f3c74eeca..94bbaabee 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_familiar_ring.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_familiar_ring.json @@ -54,6 +54,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 23, - "x": -2, - "y": -3 + "x": 6, + "y": -2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_foliot_miner.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_foliot_miner.json index 0da00f49e..fa409ed47 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_foliot_miner.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_foliot_miner.json @@ -76,6 +76,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 4, - "x": -4, - "y": -5 + "x": -6, + "y": -6 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_iesnium_anvil.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_iesnium_anvil.json new file mode 100644 index 000000000..e23be7bf3 --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_iesnium_anvil.json @@ -0,0 +1,63 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/craft_marid" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.description", + "hide_while_locked": false, + "icon": { + "item": "occultism:iesnium_anvil" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "occultism:iesnium_anvil" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/craft_iesnium_anvil", + "text": "", + "title1": "", + "title2": "" + }, + { + "type": "modonomicon:text", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "show_title_separator": true, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.apothic.text", + "title": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_anvil.apothic.title", + "use_markdown_in_title": false + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/craft_infused_pickaxe", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 26, + "x": -2, + "y": -2 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_iesnium_sacrificial_bowl.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..17c9d4197 --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_iesnium_sacrificial_bowl.json @@ -0,0 +1,52 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/craft_afrit" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_sacrificial_bowl.description", + "hide_while_locked": false, + "icon": { + "item": "occultism:iesnium_sacrificial_bowl" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_sacrificial_bowl.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "occultism:iesnium_sacrificial_bowl" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_iesnium_sacrificial_bowl.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/craft_iesnium_sacrificial_bowl", + "text": "", + "title1": "", + "title2": "" + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/craft_infused_pickaxe", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 25, + "x": -4, + "y": -4 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_infused_pickaxe.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_infused_pickaxe.json index ac5b78b63..75eb5953f 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_infused_pickaxe.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_infused_pickaxe.json @@ -48,5 +48,5 @@ "show_when_any_parent_unlocked": false, "sort_number": 2, "x": -6, - "y": -3 + "y": -2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_marid_miner.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_marid_miner.json index e4d6598cb..248608aaf 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_marid_miner.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_marid_miner.json @@ -47,6 +47,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 7, - "x": 2, - "y": -5 + "x": 0, + "y": -6 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_master_chalks.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_master_chalks.json new file mode 100644 index 000000000..bb73ec2bf --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_master_chalks.json @@ -0,0 +1,75 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/contact_eldritch_spirit" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.description", + "hide_while_locked": false, + "icon": { + "item": "occultism:chalk_rainbow" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "occultism:chalk_rainbow" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/misc_chalk_rainbow", + "text": "", + "title1": "", + "title2": "" + }, + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "occultism:chalk_void" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_master_chalks.spotlight2.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/misc_chalk_void", + "text": "", + "title1": "", + "title2": "" + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/overview", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 34, + "x": 2, + "y": -2 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_otherworld_goggles.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_otherworld_goggles.json index 7f71cad2c..0354522bd 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_otherworld_goggles.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_otherworld_goggles.json @@ -104,5 +104,5 @@ "show_when_any_parent_unlocked": false, "sort_number": 18, "x": -6, - "y": 1 + "y": 2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_reinforced_deepslate.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_reinforced_deepslate.json index 913e9947d..ba5b8aed0 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_reinforced_deepslate.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_reinforced_deepslate.json @@ -4,10 +4,10 @@ "category": "crafting_rituals", "condition": { "type": "modonomicon:entry_read", - "entry_id": "pentacles/contact_eldritch_spirit" + "entry_id": "pentacles/contact_wild_spirit" }, "description": "", - "hide_while_locked": true, + "hide_while_locked": false, "icon": { "item": "minecraft:reinforced_deepslate" }, @@ -46,7 +46,7 @@ } ], "show_when_any_parent_unlocked": false, - "sort_number": 26, - "x": 5, - "y": -3 + "sort_number": 29, + "x": 2, + "y": 2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_satchel.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_satchel.json index 1e779ec25..c8a46137d 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_satchel.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_satchel.json @@ -47,6 +47,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 19, - "x": 1, - "y": 1 + "x": 0, + "y": -2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_soul_gem.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_soul_gem.json index 2aab73ae4..53b336eed 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_soul_gem.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_soul_gem.json @@ -58,6 +58,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 22, - "x": -4, - "y": -3 + "x": 4, + "y": -2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilized_storage.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilized_storage.json new file mode 100644 index 000000000..708dbe835 --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilized_storage.json @@ -0,0 +1,52 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/contact_eldritch_spirit" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilized_storage.description", + "hide_while_locked": false, + "icon": { + "item": "occultism:storage_controller_stabilized" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilized_storage.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "occultism:storage_controller_stabilized" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.craft_stabilized_storage.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/misc_stabilized_storage", + "text": "", + "title1": "", + "title2": "" + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/craft_stabilizer_tier4", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 33, + "x": 6, + "y": 6 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier1.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier1.json index a3847d717..389befa2c 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier1.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier1.json @@ -43,6 +43,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 12, - "x": -2, - "y": 5 + "x": 0, + "y": 4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier2.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier2.json index 4529e6781..cf3f8dbad 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier2.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier2.json @@ -43,6 +43,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 13, - "x": 0, - "y": 5 + "x": 2, + "y": 4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier3.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier3.json index a60d5dc8e..50ec4181f 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier3.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier3.json @@ -47,6 +47,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 14, - "x": 2, - "y": 5 + "x": 4, + "y": 4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier4.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier4.json index 874db5975..98ae29ae0 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier4.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stabilizer_tier4.json @@ -47,6 +47,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 15, - "x": 4, - "y": 5 + "x": 6, + "y": 4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stable_wormhole.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stable_wormhole.json index f942c648f..b9de594da 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stable_wormhole.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_stable_wormhole.json @@ -43,6 +43,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 16, - "x": 0, - "y": 3 + "x": -2, + "y": 4 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_controller_base.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_controller_base.json index 5225cb6f3..5b9cfe61e 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_controller_base.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_controller_base.json @@ -43,6 +43,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 11, - "x": -2, - "y": 3 + "x": -4, + "y": 6 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_remote.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_remote.json index ed2292dc1..82c26328a 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_remote.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_remote.json @@ -43,6 +43,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 17, - "x": -4, - "y": 3 + "x": 2, + "y": 6 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_system.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_system.json index f2c7df6cc..167ea4ac6 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_system.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_storage_system.json @@ -37,5 +37,5 @@ "show_when_any_parent_unlocked": false, "sort_number": 9, "x": -4, - "y": 1 + "y": 2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_wild_trim.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_wild_trim.json index e3f0ece46..7febe0f1d 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_wild_trim.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/craft_wild_trim.json @@ -31,7 +31,7 @@ "condition": { "type": "modonomicon:none" }, - "recipe_id_1": "occultism:ritual/craft_wild_trim", + "recipe_id_1": "occultism:ritual/misc_wild_trim", "text": "", "title1": "", "title2": "" @@ -46,7 +46,7 @@ } ], "show_when_any_parent_unlocked": false, - "sort_number": 24, - "x": 1, - "y": -3 + "sort_number": 27, + "x": -2, + "y": 2 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/overview.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/overview.json index 3f0c818ea..325e1111b 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/overview.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/overview.json @@ -30,5 +30,5 @@ "show_when_any_parent_unlocked": false, "sort_number": 0, "x": -8, - "y": -1 + "y": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/repair.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/repair.json index 7fb8fd4df..dee556f9c 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/repair.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/repair.json @@ -79,7 +79,7 @@ } ], "show_when_any_parent_unlocked": false, - "sort_number": 27, - "x": 7, - "y": -1 + "sort_number": 35, + "x": 8, + "y": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/return_to_rituals.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/return_to_rituals.json index 29e081669..efcfd4157 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/return_to_rituals.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/return_to_rituals.json @@ -26,5 +26,5 @@ "show_when_any_parent_unlocked": false, "sort_number": 1, "x": -10, - "y": -1 + "y": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/trinity_gem.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/trinity_gem.json new file mode 100644 index 000000000..a4822530c --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/crafting_rituals/trinity_gem.json @@ -0,0 +1,52 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "crafting_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/contact_eldritch_spirit" + }, + "description": "book.occultism.dictionary_of_spirits.crafting_rituals.trinity_gem.description", + "hide_while_locked": false, + "icon": { + "item": "occultism:trinity_gem" + }, + "name": "book.occultism.dictionary_of_spirits.crafting_rituals.trinity_gem.name", + "pages": [ + { + "type": "modonomicon:spotlight", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "item": { + "item": "occultism:trinity_gem" + }, + "text": "book.occultism.dictionary_of_spirits.crafting_rituals.trinity_gem.spotlight.text", + "title": "" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/misc_trinity_gem", + "text": "", + "title1": "", + "title2": "" + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "crafting_rituals/craft_soul_gem", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 24, + "x": 4, + "y": -4 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/familiar_rituals/demonic_partner.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/familiar_rituals/demonic_partner.json index 89890eab7..0425a350b 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/familiar_rituals/demonic_partner.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/familiar_rituals/demonic_partner.json @@ -131,6 +131,6 @@ ], "show_when_any_parent_unlocked": false, "sort_number": 21, - "x": 4, + "x": 5, "y": 0 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/familiar_rituals/iesnium_golem.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/familiar_rituals/iesnium_golem.json new file mode 100644 index 000000000..903041bd1 --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/familiar_rituals/iesnium_golem.json @@ -0,0 +1,78 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "familiar_rituals", + "condition": { + "type": "modonomicon:entry_read", + "entry_id": "pentacles/possess_marid" + }, + "description": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.description", + "hide_while_locked": false, + "icon": { + "height": 16, + "texture": "occultism:textures/gui/book/iesnium_golem.png", + "width": 16 + }, + "name": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.name", + "pages": [ + { + "type": "modonomicon:entity", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "default_rotation": -45.0, + "entity_id": "occultism:iesnium_golem", + "name": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.golem.title", + "offset": 0.0, + "rotate": true, + "scale": 1.0, + "text": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.golem.text" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:ritual/possess_iesnium_golem", + "text": "", + "title1": "", + "title2": "" + }, + { + "type": "modonomicon:text", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "show_title_separator": true, + "text": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.description.text", + "title": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.description.title", + "use_markdown_in_title": false + }, + { + "type": "modonomicon:text", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "show_title_separator": true, + "text": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.familiar.text", + "title": "book.occultism.dictionary_of_spirits.familiar_rituals.iesnium_golem.familiar.title", + "use_markdown_in_title": false + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "familiar_rituals/overview", + "line_enabled": true, + "line_reversed": false + } + ], + "show_when_any_parent_unlocked": false, + "sort_number": 22, + "x": 3, + "y": -4 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/iesnium.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/iesnium.json index 733782c77..d5851526b 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/iesnium.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/iesnium.json @@ -64,6 +64,17 @@ "text": "book.occultism.dictionary_of_spirits.getting_started.iesnium.uses.text", "title": "book.occultism.dictionary_of_spirits.getting_started.iesnium.uses.title", "use_markdown_in_title": false + }, + { + "type": "modonomicon:crafting_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:crafting/otherglass", + "text": "book.occultism.dictionary_of_spirits.getting_started.iesnium.otherglass.text", + "title1": "", + "title2": "" } ], "parents": [ diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/ritual_prep_bowl.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/ritual_prep_bowl.json index 59aac2f7f..8170058a4 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/ritual_prep_bowl.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/ritual_prep_bowl.json @@ -28,7 +28,7 @@ "type": "modonomicon:none" }, "recipe_id_1": "occultism:crafting/sacrificial_bowl", - "text": "", + "text": "book.occultism.dictionary_of_spirits.getting_started.ritual_prep_bowl.sacrificial_bowl_recipe.text", "title1": "", "title2": "" }, diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/spirit_fire.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/spirit_fire.json index bebf199c7..3dedd6dff 100644 --- a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/spirit_fire.json +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/getting_started/spirit_fire.json @@ -89,6 +89,17 @@ "text": "", "title1": "", "title2": "" + }, + { + "type": "occultism:spirit_fire_recipe", + "anchor": "", + "condition": { + "type": "modonomicon:none" + }, + "recipe_id_1": "occultism:spirit_fire/otherflower", + "text": "book.occultism.dictionary_of_spirits.getting_started.spirit_fire.otherflower_recipe.text", + "title1": "", + "title2": "" } ], "parents": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_eldritch_spirit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_eldritch_spirit.json index f0cffc9d1..5e102b9fb 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_eldritch_spirit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_eldritch_spirit.json @@ -10,20 +10,24 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "B": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_brown" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_brown", + "tag": "#occultism:glyphs_brown" }, "C": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_cyan" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_cyan", + "tag": "#occultism:glyphs_cyan" }, "M": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_magenta" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_magenta", + "tag": "#occultism:glyphs_magenta" }, "e": { "type": "modonomicon:block", diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_wild_spirit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_wild_spirit.json index cfa562345..c1afa43da 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_wild_spirit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/contact_wild_spirit.json @@ -10,20 +10,24 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "A": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_light_blue" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_light_blue", + "tag": "#occultism:glyphs_light_blue" }, "E": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_green" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_green", + "tag": "#occultism:glyphs_green" }, "P": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_pink" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_pink", + "tag": "#occultism:glyphs_pink" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_afrit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_afrit.json index a9842c08a..d5adc1937 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_afrit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_afrit.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -27,27 +28,33 @@ }, "G": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gray", "tag": "#occultism:foundation_glyphs_dark" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "R": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_red" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_red", + "tag": "#occultism:glyphs_red" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "X": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_purple" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_purple", + "tag": "#occultism:glyphs_purple" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_djinni.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_djinni.json index 31f0e805e..6571027e4 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_djinni.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_djinni.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -22,20 +23,24 @@ "block": "minecraft:skeleton_skull" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "S": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_light_gray", "tag": "#occultism:foundation_glyphs_no_white" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "X": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_purple" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_purple", + "tag": "#occultism:glyphs_purple" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_foliot.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_foliot.json index 14f60f7e7..4fbc4c210 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_foliot.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_foliot.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -19,11 +20,13 @@ }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "X": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_purple" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_purple", + "tag": "#occultism:glyphs_purple" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_marid.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_marid.json index ce39a2ea1..440d6fc8e 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_marid.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/craft_marid.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -30,32 +31,39 @@ "block": "minecraft:wither_skeleton_skull" }, "K": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_black" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_black", + "tag": "#occultism:glyphs_black" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "R": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_red" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_red", + "tag": "#occultism:glyphs_red" }, "U": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_blue" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_blue", + "tag": "#occultism:glyphs_blue" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "X": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_purple" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_purple", + "tag": "#occultism:glyphs_purple" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/debug.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/debug.json index 0bd5e2db0..50ecf48fa 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/debug.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/debug.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -22,12 +23,14 @@ "block": "minecraft:skeleton_skull" }, "X": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_purple" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_purple", + "tag": "#occultism:glyphs_purple" }, "Y": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_gold" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gold", + "tag": "#occultism:glyphs_yellow" }, "e": { "type": "modonomicon:block", diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_afrit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_afrit.json index 98b922772..f6034d6c1 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_afrit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_afrit.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -27,27 +28,33 @@ }, "G": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gray", "tag": "#occultism:foundation_glyphs_dark" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "R": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_red" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_red", + "tag": "#occultism:glyphs_red" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "Y": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_gold" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gold", + "tag": "#occultism:glyphs_yellow" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_djinni.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_djinni.json index 4e4e1871a..d673ff68c 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_djinni.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_djinni.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -22,20 +23,24 @@ "block": "minecraft:skeleton_skull" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "S": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_light_gray", "tag": "#occultism:foundation_glyphs_no_white" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "Y": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_gold" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gold", + "tag": "#occultism:glyphs_yellow" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_foliot.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_foliot.json index 2797dd290..54721b6b7 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_foliot.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_foliot.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -19,11 +20,13 @@ }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "Y": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_gold" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gold", + "tag": "#occultism:glyphs_yellow" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_marid.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_marid.json index dcd697376..a25d332b5 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_marid.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_marid.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -30,32 +31,39 @@ "block": "minecraft:wither_skeleton_skull" }, "K": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_black" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_black", + "tag": "#occultism:glyphs_black" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "R": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_red" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_red", + "tag": "#occultism:glyphs_red" }, "U": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_blue" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_blue", + "tag": "#occultism:glyphs_blue" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "Y": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_gold" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gold", + "tag": "#occultism:glyphs_yellow" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_unbound_afrit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_unbound_afrit.json index b7b1cf6d9..bd7ba74dc 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_unbound_afrit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/possess_unbound_afrit.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -27,23 +28,28 @@ }, "G": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gray", "tag": "#occultism:foundation_glyphs_dark" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" }, "Y": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_gold" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gold", + "tag": "#occultism:glyphs_yellow" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/resurrect_spirit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/resurrect_spirit.json index 7413b504b..8e9600878 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/resurrect_spirit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/resurrect_spirit.json @@ -10,12 +10,14 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "W": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_white" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", + "tag": "#occultism:foundation_glyphs_any" } }, "pattern": [ diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_afrit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_afrit.json index 5db247d6b..d770929c4 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_afrit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_afrit.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -27,22 +28,27 @@ }, "G": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gray", "tag": "#occultism:foundation_glyphs_dark" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "R": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_red" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_red", + "tag": "#occultism:glyphs_red" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" } }, diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_djinni.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_djinni.json index 8e2647a5f..e7a3c6e80 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_djinni.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_djinni.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -22,15 +23,18 @@ "block": "minecraft:skeleton_skull" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "S": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_light_gray", "tag": "#occultism:foundation_glyphs_no_white" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" } }, diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_foliot.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_foliot.json index 8f20b3be4..fd40c4290 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_foliot.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_foliot.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -19,6 +20,7 @@ }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" } }, diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_marid.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_marid.json index 883409c13..0eb3bebe3 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_marid.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_marid.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -30,27 +31,33 @@ "block": "minecraft:wither_skeleton_skull" }, "K": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_black" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_black", + "tag": "#occultism:glyphs_black" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "R": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_red" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_red", + "tag": "#occultism:glyphs_red" }, "U": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_blue" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_blue", + "tag": "#occultism:glyphs_blue" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" } }, diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_afrit.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_afrit.json index fd62da791..eab3714ef 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_afrit.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_afrit.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -27,18 +28,22 @@ }, "G": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_gray", "tag": "#occultism:foundation_glyphs_dark" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" } }, diff --git a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_marid.json b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_marid.json index 7d892d250..4a4a57787 100644 --- a/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_marid.json +++ b/src/generated/resources/data/occultism/modonomicon/multiblocks/summon_unbound_marid.json @@ -10,8 +10,9 @@ "display": "minecraft:stone" }, "0": { - "type": "modonomicon:block", - "block": "occultism:golden_sacrificial_bowl" + "type": "modonomicon:tag", + "display": "occultism:golden_sacrificial_bowl", + "tag": "#occultism:center_sacrificial_bowl" }, "1": { "type": "modonomicon:tag", @@ -30,23 +31,28 @@ "block": "minecraft:wither_skeleton_skull" }, "K": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_black" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_black", + "tag": "#occultism:glyphs_black" }, "L": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_lime" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_lime", + "tag": "#occultism:glyphs_lime" }, "O": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_orange" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_orange", + "tag": "#occultism:glyphs_orange" }, "R": { - "type": "modonomicon:block", - "block": "occultism:chalk_glyph_red" + "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_red", + "tag": "#occultism:glyphs_red" }, "W": { "type": "modonomicon:tag", + "display": "occultism:chalk_glyph_white", "tag": "#occultism:foundation_glyphs_any" } }, diff --git a/src/generated/resources/data/occultism/recipe/crafting/copper_sacrificial_bowl.json b/src/generated/resources/data/occultism/recipe/crafting/copper_sacrificial_bowl.json new file mode 100644 index 000000000..39f1801e4 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/copper_sacrificial_bowl.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:sacrificial_bowl" + }, + { + "tag": "c:ingots/copper" + } + ], + "result": { + "count": 1, + "id": "occultism:copper_sacrificial_bowl" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_black_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_black_dye.json new file mode 100644 index 000000000..9aa0cc638 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_black_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/black" + } + ], + "result": { + "count": 3, + "id": "minecraft:black_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_blue_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_blue_dye.json new file mode 100644 index 000000000..6dea5b08b --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_blue_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/blue" + } + ], + "result": { + "count": 3, + "id": "minecraft:blue_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_brown_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_brown_dye.json new file mode 100644 index 000000000..d01d7c493 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_brown_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/brown" + } + ], + "result": { + "count": 3, + "id": "minecraft:brown_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_cyan_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_cyan_dye.json new file mode 100644 index 000000000..95e7416fe --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_cyan_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/cyan" + } + ], + "result": { + "count": 3, + "id": "minecraft:cyan_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_gray_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_gray_dye.json new file mode 100644 index 000000000..ca7521874 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_gray_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/gray" + } + ], + "result": { + "count": 3, + "id": "minecraft:gray_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_green_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_green_dye.json new file mode 100644 index 000000000..b487061e1 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_green_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/green" + } + ], + "result": { + "count": 3, + "id": "minecraft:green_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_light_blue_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_light_blue_dye.json new file mode 100644 index 000000000..829ccdd41 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_light_blue_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/light_blue" + } + ], + "result": { + "count": 3, + "id": "minecraft:light_blue_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_light_gray_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_light_gray_dye.json new file mode 100644 index 000000000..80bcea709 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_light_gray_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/light_gray" + } + ], + "result": { + "count": 3, + "id": "minecraft:light_gray_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_lime_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_lime_dye.json new file mode 100644 index 000000000..c9409710c --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_lime_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/lime" + } + ], + "result": { + "count": 3, + "id": "minecraft:lime_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_magenta_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_magenta_dye.json new file mode 100644 index 000000000..0ea3f436c --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_magenta_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/magenta" + } + ], + "result": { + "count": 3, + "id": "minecraft:magenta_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_orange_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_orange_dye.json new file mode 100644 index 000000000..d09757ef6 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_orange_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/orange" + } + ], + "result": { + "count": 3, + "id": "minecraft:orange_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_pink_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_pink_dye.json new file mode 100644 index 000000000..8820ac044 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_pink_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/pink" + } + ], + "result": { + "count": 3, + "id": "minecraft:pink_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_purple_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_purple_dye.json new file mode 100644 index 000000000..92742927d --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_purple_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/purple" + } + ], + "result": { + "count": 3, + "id": "minecraft:purple_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_red_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_red_dye.json new file mode 100644 index 000000000..53ea6e08f --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_red_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/red" + } + ], + "result": { + "count": 3, + "id": "minecraft:red_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_white_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_white_dye.json new file mode 100644 index 000000000..c48aaea81 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_white_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/white" + } + ], + "result": { + "count": 3, + "id": "minecraft:white_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_yellow_dye.json b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_yellow_dye.json new file mode 100644 index 000000000..03f4bf737 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherflower_to_yellow_dye.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherflower" + }, + { + "tag": "c:dyes/yellow" + } + ], + "result": { + "count": 3, + "id": "minecraft:yellow_dye" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherglass.json b/src/generated/resources/data/occultism/recipe/crafting/otherglass.json new file mode 100644 index 000000000..24eb5ca64 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherglass.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "e": { + "tag": "c:dusts/end_stone" + }, + "g": { + "tag": "c:glass_blocks" + }, + "n": { + "tag": "c:nuggets/iesnium" + } + }, + "pattern": [ + "nen", + "ege", + "nen" + ], + "result": { + "count": 1, + "id": "occultism:otherglass_natural" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/otherstone_pedestal_silver.json b/src/generated/resources/data/occultism/recipe/crafting/otherstone_pedestal_silver.json new file mode 100644 index 000000000..fb75d7074 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/otherstone_pedestal_silver.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "c:ingots/silver" + }, + { + "item": "occultism:otherstone_pedestal" + } + ], + "result": { + "count": 1, + "id": "occultism:otherstone_pedestal_silver" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/silver_sacrificial_bowl.json b/src/generated/resources/data/occultism/recipe/crafting/silver_sacrificial_bowl.json new file mode 100644 index 000000000..1e8689bbd --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/silver_sacrificial_bowl.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:sacrificial_bowl" + }, + { + "tag": "c:ingots/silver" + } + ], + "result": { + "count": 1, + "id": "occultism:silver_sacrificial_bowl" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/storage_stabilizer_tier0.json b/src/generated/resources/data/occultism/recipe/crafting/storage_stabilizer_tier0.json new file mode 100644 index 000000000..74d5473a3 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/storage_stabilizer_tier0.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:otherstone_pedestal" + } + ], + "result": { + "count": 1, + "id": "occultism:storage_stabilizer_tier0" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/tallow.json b/src/generated/resources/data/occultism/recipe/crafting/tallow.json new file mode 100644 index 000000000..8d29a84ef --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/tallow.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "occultism:tallow_block" + } + ], + "result": { + "count": 9, + "id": "occultism:tallow" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crafting/tallow_block.json b/src/generated/resources/data/occultism/recipe/crafting/tallow_block.json new file mode 100644 index 000000000..4f618772f --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crafting/tallow_block.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + }, + { + "tag": "c:tallow" + } + ], + "result": { + "count": 1, + "id": "occultism:tallow_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/crushing/coal_dust_from_tag.json b/src/generated/resources/data/occultism/recipe/crushing/coal_dust_from_tag.json new file mode 100644 index 000000000..c4674b036 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/crushing/coal_dust_from_tag.json @@ -0,0 +1,28 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "minecraft:coals" + } + }, + { + "type": "neoforge:not", + "value": { + "type": "neoforge:tag_empty", + "tag": "c:dusts/coal" + } + } + ], + "type": "occultism:crushing", + "ignore_crushing_multiplier": true, + "ingredient": { + "tag": "minecraft:coals" + }, + "result": { + "type": "occultism:tag", + "count": 1, + "tag": "c:dusts/coal" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_matrix.json b/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_matrix.json index f31acf070..0044421c4 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_matrix.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_matrix.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 240, + "duration": 150, "ingredients": [ { "item": "minecraft:quartz_block" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_mineshaft.json b/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_mineshaft.json index 363c3693b..f2ce3c74d 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_mineshaft.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_dimensional_mineshaft.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 240, + "duration": 150, "ingredients": [ { "item": "occultism:otherstone" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_dragonyst_dust.json b/src/generated/resources/data/occultism/recipe/ritual/craft_dragonyst_dust.json index 70f674883..8fe240453 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_dragonyst_dust.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_dragonyst_dust.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_marid" }, - "duration": 300, + "duration": 510, "ingredients": [ { "tag": "c:dusts/amethyst" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_familiar_ring.json b/src/generated/resources/data/occultism/recipe/ritual/craft_familiar_ring.json index 2c6406616..c5c5af0e4 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_familiar_ring.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_familiar_ring.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 90, + "duration": 150, "ingredients": [ { "item": "occultism:soul_gem" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_gray_paste.json b/src/generated/resources/data/occultism/recipe/ritual/craft_gray_paste.json index 81121c190..1edaa7267 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_gray_paste.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_gray_paste.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 90, + "duration": 150, "ingredients": [ { "tag": "c:gunpowders" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_iesnium_anvil.json b/src/generated/resources/data/occultism/recipe/ritual/craft_iesnium_anvil.json new file mode 100644 index 000000000..1339b32e2 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_iesnium_anvil.json @@ -0,0 +1,34 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:book_of_binding_bound_marid" + }, + "duration": 510, + "ingredients": [ + { + "item": "minecraft:anvil" + }, + { + "tag": "c:storage_blocks/iesnium" + }, + { + "tag": "c:storage_blocks/iesnium" + }, + { + "tag": "c:storage_blocks/iesnium" + }, + { + "item": "occultism:marid_essence" + } + ], + "pentacle_id": "occultism:craft_marid", + "result": { + "count": 1, + "id": "occultism:iesnium_anvil" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/craft_iesnium_anvil" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_iesnium_sacrificial_bowl.json b/src/generated/resources/data/occultism/recipe/ritual/craft_iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..e604c4c19 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_iesnium_sacrificial_bowl.json @@ -0,0 +1,34 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:book_of_binding_bound_afrit" + }, + "duration": 300, + "ingredients": [ + { + "item": "occultism:golden_sacrificial_bowl" + }, + { + "item": "occultism:research_fragment_dust" + }, + { + "item": "occultism:spirit_attuned_crystal" + }, + { + "tag": "c:storage_blocks/iesnium" + }, + { + "item": "occultism:afrit_essence" + } + ], + "pentacle_id": "occultism:craft_afrit", + "result": { + "count": 1, + "id": "occultism:iesnium_sacrificial_bowl" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/craft_iesnium_sacrificial_bowl" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_infused_pickaxe.json b/src/generated/resources/data/occultism/recipe/ritual/craft_infused_pickaxe.json index da5fbcc1a..655097d1a 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_infused_pickaxe.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_infused_pickaxe.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 150, "ingredients": [ { "tag": "c:rods/wooden" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_miner_afrit_deeps.json b/src/generated/resources/data/occultism/recipe/ritual/craft_miner_afrit_deeps.json index 5b1243fce..eda6d9298 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_miner_afrit_deeps.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_miner_afrit_deeps.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 120, + "duration": 300, "ingredients": [ { "item": "occultism:miner_djinni_ores" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_miner_djinni_ores.json b/src/generated/resources/data/occultism/recipe/ritual/craft_miner_djinni_ores.json index 6b1e74d62..f35cd838c 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_miner_djinni_ores.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_miner_djinni_ores.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 150, "ingredients": [ { "item": "occultism:miner_foliot_unspecialized" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_miner_marid_master.json b/src/generated/resources/data/occultism/recipe/ritual/craft_miner_marid_master.json index 32fd411b4..f9b339e9d 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_miner_marid_master.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_miner_marid_master.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_marid" }, - "duration": 120, + "duration": 510, "ingredients": [ { "item": "occultism:miner_afrit_deeps" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_nature_paste.json b/src/generated/resources/data/occultism/recipe/ritual/craft_nature_paste.json index 78a3a712a..a000e73b0 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_nature_paste.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_nature_paste.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, + "duration": 60, "ingredients": [ { "tag": "minecraft:leaves" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t1.json b/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t1.json index 4457168a9..56b7e634f 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t1.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t1.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 240, + "duration": 150, "ingredients": [ { "item": "minecraft:hopper" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t2.json b/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t2.json index 78c6d81c3..49f9f2e2f 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t2.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_ritual_satchel_t2.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 240, + "duration": 300, "ingredients": [ { "item": "minecraft:hopper" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_satchel.json b/src/generated/resources/data/occultism/recipe/ritual/craft_satchel.json index dfaa80f83..bf6bf2eee 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_satchel.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_satchel.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, - "duration": 240, + "duration": 60, "ingredients": [ { "tag": "c:chests/wooden" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_soul_gem.json b/src/generated/resources/data/occultism/recipe/ritual/craft_soul_gem.json index 45241e3a2..c879c429f 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_soul_gem.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_soul_gem.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 150, "ingredients": [ { "tag": "c:gems/diamond" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier1.json b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier1.json index 9374abd5c..a5c4e5479 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier1.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier1.json @@ -3,10 +3,10 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, - "duration": 120, + "duration": 60, "ingredients": [ { - "item": "occultism:otherstone_pedestal" + "item": "occultism:storage_stabilizer_tier0" }, { "tag": "c:storage_blocks/copper" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier2.json b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier2.json index 8878a1997..4c53d9c59 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier2.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier2.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 240, + "duration": 150, "ingredients": [ { "item": "occultism:storage_stabilizer_tier1" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier3.json b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier3.json index cae8fd3fa..5a567a9e6 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier3.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier3.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 240, + "duration": 300, "ingredients": [ { "item": "occultism:storage_stabilizer_tier2" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier4.json b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier4.json index af5d25d62..6f3ffc194 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier4.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_stabilizer_tier4.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_marid" }, - "duration": 240, + "duration": 510, "ingredients": [ { "item": "occultism:storage_stabilizer_tier3" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_stable_wormhole.json b/src/generated/resources/data/occultism/recipe/ritual/craft_stable_wormhole.json index e24663433..7e282528d 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_stable_wormhole.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_stable_wormhole.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, - "duration": 120, + "duration": 60, "ingredients": [ { "item": "occultism:wormhole_frame" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_storage_controller_base.json b/src/generated/resources/data/occultism/recipe/ritual/craft_storage_controller_base.json index ad5d635f3..e2f99968d 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_storage_controller_base.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_storage_controller_base.json @@ -9,10 +9,10 @@ "item": "occultism:otherstone_pedestal" }, { - "tag": "c:ingots/gold" + "tag": "c:ingots/copper" }, { - "tag": "c:ingots/gold" + "tag": "c:ingots/copper" }, { "tag": "c:ingots/gold" diff --git a/src/generated/resources/data/occultism/recipe/ritual/craft_storage_remote.json b/src/generated/resources/data/occultism/recipe/ritual/craft_storage_remote.json index 8e7534824..5a2d3f88f 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/craft_storage_remote.json +++ b/src/generated/resources/data/occultism/recipe/ritual/craft_storage_remote.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 120, + "duration": 150, "ingredients": [ { "item": "occultism:storage_remote_inert" diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_bat.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_bat.json index c5e01d187..83da66948 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_bat.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_bat.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.bats", "tag": "c:bats" @@ -41,5 +41,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_bat" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_beaver.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_beaver.json index 4a972bba1..6d692762c 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_beaver.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_beaver.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, + "duration": 45, "entity_to_summon": "occultism:beaver_familiar", "ingredients": [ { @@ -33,5 +34,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_beaver" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_beholder.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_beholder.json index 75967c9fe..97e5158d7 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_beholder.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_beholder.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.spiders", "tag": "c:spiders" @@ -49,5 +50,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_beholder" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_blacksmith.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_blacksmith.json index 1e72cb0c3..8eab7ba69 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_blacksmith.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_blacksmith.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, + "duration": 45, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.zombies", "tag": "c:zombies" @@ -49,5 +50,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_blacksmith" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_chimera.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_chimera.json index f9221879e..f85fbbbaa 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_chimera.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_chimera.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.sheep", "tag": "c:sheep" @@ -53,5 +53,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_chimera" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_cthulhu.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_cthulhu.json index b70cb3659..bc72112ec 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_cthulhu.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_cthulhu.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.squid", "tag": "c:squids" @@ -50,5 +50,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_cthulhu" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_deer.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_deer.json index 7c2f7bc8a..72f7cac86 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_deer.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_deer.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, - "duration": 15, + "duration": 45, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.cows", "tag": "c:cows" @@ -44,5 +44,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_deer" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_devil.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_devil.json index 994b15986..93b97d205 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_devil.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_devil.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.horses", "tag": "c:horses" @@ -50,5 +50,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_devil" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_dragon.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_dragon.json index b0dbdcd53..f7b7a728a 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_dragon.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_dragon.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.horses", "tag": "c:horses" @@ -50,5 +50,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_dragon" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_fairy.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_fairy.json index f5d56ba18..a0b6423e3 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_fairy.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_fairy.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.horses", "tag": "c:horses" @@ -46,5 +47,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_fairy" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_greedy.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_greedy.json index f8d2a478a..8b68fa528 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_greedy.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_greedy.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, + "duration": 45, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.zombies", "tag": "c:zombies" @@ -37,5 +38,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_greedy" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_guardian.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_guardian.json index 9839f45cb..a6858fe39 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_guardian.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_guardian.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 60, + "duration": 135, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.humans", "tag": "occultism:humans" @@ -44,5 +44,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_guardian" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_headless.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_headless.json index b4ac8796a..f785376b7 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_headless.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_headless.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.snow_golem", "tag": "c:golems/snow" @@ -44,5 +44,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_headless" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_mummy.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_mummy.json index cb16d3b21..be8600610 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_mummy.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_mummy.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.llamas", "tag": "c:llamas" @@ -49,5 +50,5 @@ "count": 1, "id": "occultism:ritual_dummy/familiar_mummy" }, - "ritual_type": "occultism:familiar" + "ritual_type": "occultism:summon_tamed" } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_otherworld_bird.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_otherworld_bird.json index 58e001d4d..508a3f583 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_otherworld_bird.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_otherworld_bird.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.parrots", "tag": "c:parrots" diff --git a/src/generated/resources/data/occultism/recipe/ritual/familiar_parrot.json b/src/generated/resources/data/occultism/recipe/ritual/familiar_parrot.json index e1619975e..44f861ad9 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/familiar_parrot.json +++ b/src/generated/resources/data/occultism/recipe/ritual/familiar_parrot.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, + "duration": 45, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.chicken", "tag": "c:chickens" diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_bee_nest.json b/src/generated/resources/data/occultism/recipe/ritual/misc_bee_nest.json new file mode 100644 index 000000000..24e92a832 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_bee_nest.json @@ -0,0 +1,35 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "minecraft:beehive" + }, + "duration": 180, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.bees", + "tag": "c:bees" + }, + "ingredients": [ + { + "item": "minecraft:honeycomb_block" + }, + { + "item": "minecraft:honeycomb_block" + }, + { + "item": "minecraft:honeycomb_block" + }, + { + "item": "minecraft:honeycomb_block" + } + ], + "pentacle_id": "occultism:contact_wild_spirit", + "result": { + "count": 1, + "id": "minecraft:bee_nest" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/misc_bee_nest" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_bell.json b/src/generated/resources/data/occultism/recipe/ritual/misc_bell.json new file mode 100644 index 000000000..2c338cd87 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_bell.json @@ -0,0 +1,38 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "tag": "c:storage_blocks/gold" + }, + "duration": 180, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.goats", + "tag": "c:goats" + }, + "ingredients": [ + { + "tag": "c:nuggets/gold" + }, + { + "item": "minecraft:chain" + }, + { + "tag": "c:stones" + }, + { + "tag": "c:stones" + }, + { + "tag": "minecraft:logs" + } + ], + "pentacle_id": "occultism:contact_wild_spirit", + "result": { + "count": 1, + "id": "minecraft:bell" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/misc_bell" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_chalk_rainbow.json b/src/generated/resources/data/occultism/recipe/ritual/misc_chalk_rainbow.json new file mode 100644 index 000000000..5d73f7b62 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_chalk_rainbow.json @@ -0,0 +1,59 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:brush" + }, + "duration": 780, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.parrots", + "tag": "c:parrots" + }, + "ingredients": [ + { + "item": "occultism:chalk_red" + }, + { + "item": "occultism:chalk_brown" + }, + { + "item": "occultism:chalk_orange" + }, + { + "item": "occultism:chalk_gold" + }, + { + "item": "occultism:chalk_lime" + }, + { + "item": "occultism:chalk_green" + }, + { + "item": "occultism:chalk_cyan" + }, + { + "item": "occultism:chalk_blue" + }, + { + "item": "occultism:chalk_light_blue" + }, + { + "item": "occultism:chalk_pink" + }, + { + "item": "occultism:chalk_magenta" + }, + { + "item": "occultism:chalk_purple" + } + ], + "pentacle_id": "occultism:contact_eldritch_spirit", + "result": { + "count": 1, + "id": "occultism:chalk_rainbow" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/misc_chalk_rainbow" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_chalk_void.json b/src/generated/resources/data/occultism/recipe/ritual/misc_chalk_void.json new file mode 100644 index 000000000..de6319898 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_chalk_void.json @@ -0,0 +1,35 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:chalk_rainbow" + }, + "duration": 780, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.humans", + "tag": "occultism:humans" + }, + "ingredients": [ + { + "item": "occultism:chalk_white" + }, + { + "item": "occultism:chalk_light_gray" + }, + { + "item": "occultism:chalk_gray" + }, + { + "item": "occultism:chalk_black" + } + ], + "pentacle_id": "occultism:contact_eldritch_spirit", + "result": { + "count": 1, + "id": "occultism:chalk_void" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/misc_chalk_void" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_eldritch_chalice.json b/src/generated/resources/data/occultism/recipe/ritual/misc_eldritch_chalice.json new file mode 100644 index 000000000..8416a8eb7 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_eldritch_chalice.json @@ -0,0 +1,59 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:iesnium_sacrificial_bowl" + }, + "duration": 780, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.ravager", + "tag": "c:ravagers" + }, + "ingredients": [ + { + "item": "minecraft:heavy_core" + }, + { + "item": "minecraft:bell" + }, + { + "item": "minecraft:soul_lantern" + }, + { + "item": "minecraft:chorus_flower" + }, + { + "tag": "c:storage_blocks/netherite" + }, + { + "item": "minecraft:sponge" + }, + { + "item": "minecraft:reinforced_deepslate" + }, + { + "item": "minecraft:respawn_anchor" + }, + { + "tag": "c:storage_blocks/iesnium" + }, + { + "item": "minecraft:end_stone_bricks" + }, + { + "item": "minecraft:sculk_catalyst" + }, + { + "item": "minecraft:budding_amethyst" + } + ], + "pentacle_id": "occultism:contact_eldritch_spirit", + "result": { + "count": 1, + "id": "occultism:eldritch_chalice" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/misc_eldritch_chalice" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_miner_ancient_eldritch.json b/src/generated/resources/data/occultism/recipe/ritual/misc_miner_ancient_eldritch.json index 24a594549..649b826ab 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/misc_miner_ancient_eldritch.json +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_miner_ancient_eldritch.json @@ -3,7 +3,11 @@ "activation_item": { "item": "occultism:mining_dim_core" }, - "duration": 360, + "duration": 780, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.humans", + "tag": "occultism:humans" + }, "ingredients": [ { "item": "occultism:miner_marid_master" diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_reinforced_deepslate.json b/src/generated/resources/data/occultism/recipe/ritual/misc_reinforced_deepslate.json index e39aabe41..4831c85d0 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/misc_reinforced_deepslate.json +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_reinforced_deepslate.json @@ -3,50 +3,41 @@ "activation_item": { "item": "minecraft:deepslate" }, - "duration": 360, + "duration": 180, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.warden", "tag": "c:wardens" }, "ingredients": [ { - "tag": "c:nether_stars" + "item": "minecraft:iron_bars" }, { - "item": "minecraft:shulker_shell" + "item": "minecraft:iron_bars" }, { - "item": "minecraft:armadillo_scute" + "item": "minecraft:iron_bars" }, { - "item": "minecraft:turtle_scute" - }, - { - "item": "minecraft:echo_shard" - }, - { - "item": "minecraft:anvil" - }, - { - "tag": "c:storage_blocks/netherite" + "item": "minecraft:iron_bars" }, { "tag": "c:obsidians" }, { - "tag": "c:obsidians/crying" + "tag": "c:obsidians" }, { - "item": "minecraft:end_stone_bricks" + "tag": "c:obsidians" }, { - "item": "minecraft:sculk_catalyst" + "tag": "c:obsidians" }, { - "tag": "c:storage_blocks/iesnium" + "tag": "c:ingots/iesnium" } ], - "pentacle_id": "occultism:contact_eldritch_spirit", + "pentacle_id": "occultism:contact_wild_spirit", "result": { "count": 1, "id": "minecraft:reinforced_deepslate" diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_stabilized_storage.json b/src/generated/resources/data/occultism/recipe/ritual/misc_stabilized_storage.json new file mode 100644 index 000000000..8268c1ce2 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_stabilized_storage.json @@ -0,0 +1,53 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:dimensional_matrix" + }, + "duration": 780, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.humans", + "tag": "occultism:humans" + }, + "ingredients": [ + { + "item": "occultism:storage_stabilizer_tier4" + }, + { + "item": "occultism:storage_stabilizer_tier4" + }, + { + "item": "occultism:storage_stabilizer_tier4" + }, + { + "item": "occultism:storage_stabilizer_tier4" + }, + { + "item": "occultism:storage_stabilizer_tier4" + }, + { + "item": "occultism:storage_stabilizer_tier4" + }, + { + "item": "occultism:storage_controller_base" + }, + { + "tag": "c:dusts/echo" + }, + { + "tag": "c:dusts/echo" + }, + { + "tag": "c:dusts/echo" + } + ], + "pentacle_id": "occultism:contact_eldritch_spirit", + "result": { + "count": 1, + "id": "occultism:storage_controller_stabilized" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/misc_stabilized_storage" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_trinity_gem.json b/src/generated/resources/data/occultism/recipe/ritual/misc_trinity_gem.json new file mode 100644 index 000000000..eaf71e12b --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_trinity_gem.json @@ -0,0 +1,50 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:soul_gem" + }, + "duration": 780, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.humans", + "tag": "occultism:humans" + }, + "ingredients": [ + { + "item": "occultism:afrit_essence" + }, + { + "item": "occultism:marid_essence" + }, + { + "item": "occultism:cruelty_essence" + }, + { + "tag": "c:dusts/echo" + }, + { + "tag": "c:dusts/dragonyst" + }, + { + "tag": "c:dusts/witherite" + }, + { + "tag": "c:dusts/iesnium" + }, + { + "tag": "c:dusts/iesnium" + }, + { + "tag": "c:dusts/iesnium" + } + ], + "pentacle_id": "occultism:contact_eldritch_spirit", + "result": { + "count": 1, + "id": "occultism:trinity_gem" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/misc_trinity_gem" + }, + "ritual_type": "occultism:craft" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/misc_wild_trim.json b/src/generated/resources/data/occultism/recipe/ritual/misc_wild_trim.json index c316b6dc4..8c2dfbad1 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/misc_wild_trim.json +++ b/src/generated/resources/data/occultism/recipe/ritual/misc_wild_trim.json @@ -3,7 +3,7 @@ "activation_item": { "item": "minecraft:diamond_block" }, - "duration": 240, + "duration": 180, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.ocelot", "tag": "c:ocelots" diff --git a/src/generated/resources/data/occultism/recipe/ritual/possess_hoglin.json b/src/generated/resources/data/occultism/recipe/ritual/possess_hoglin.json index 160abd8bd..d2e5bd797 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/possess_hoglin.json +++ b/src/generated/resources/data/occultism/recipe/ritual/possess_hoglin.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.pigs", "tag": "c:pigs" diff --git a/src/generated/resources/data/occultism/recipe/ritual/possess_iesnium_golem.json b/src/generated/resources/data/occultism/recipe/ritual/possess_iesnium_golem.json new file mode 100644 index 000000000..8274bc402 --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/ritual/possess_iesnium_golem.json @@ -0,0 +1,48 @@ +{ + "type": "occultism:ritual", + "activation_item": { + "item": "occultism:book_of_binding_bound_marid" + }, + "duration": 240, + "entity_to_sacrifice": { + "display_name": "ritual.occultism.sacrifice.iron_golem", + "tag": "c:golems/iron" + }, + "entity_to_summon": "occultism:iesnium_golem", + "ingredients": [ + { + "tag": "c:storage_blocks/iesnium" + }, + { + "tag": "c:storage_blocks/iesnium" + }, + { + "tag": "c:storage_blocks/iesnium" + }, + { + "item": "occultism:marid_essence" + }, + { + "item": "occultism:spirit_attuned_crystal" + }, + { + "tag": "c:nether_stars" + } + ], + "pentacle_id": "occultism:possess_marid", + "result": { + "components": { + "minecraft:item_name": "{\"translate\":\"item.occultism.ritual_dummy.possess_iesnium_golem\"}", + "minecraft:lore": [ + "{\"translate\":\"item.occultism.ritual_dummy.possess_iesnium_golem.tooltip\"}" + ] + }, + "count": 1, + "id": "occultism:spawn_egg/iesnium_golem" + }, + "ritual_dummy": { + "count": 1, + "id": "occultism:ritual_dummy/possess_iesnium_golem" + }, + "ritual_type": "occultism:summon" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/possess_random_animal_special.json b/src/generated/resources/data/occultism/recipe/ritual/possess_random_animal_special.json index 122b8d989..84a1a0aa4 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/possess_random_animal_special.json +++ b/src/generated/resources/data/occultism/recipe/ritual/possess_random_animal_special.json @@ -31,7 +31,7 @@ } ], "item_to_use": { - "item": "minecraft:firework_rocket" + "item": "minecraft:wind_charge" }, "pentacle_id": "occultism:possess_djinni", "result": { diff --git a/src/generated/resources/data/occultism/recipe/ritual/possess_shulker.json b/src/generated/resources/data/occultism/recipe/ritual/possess_shulker.json index 171d91340..712cdc807 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/possess_shulker.json +++ b/src/generated/resources/data/occultism/recipe/ritual/possess_shulker.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.cubemob", "tag": "occultism:cubemob" diff --git a/src/generated/resources/data/occultism/recipe/ritual/possess_unbound_otherworld_bird.json b/src/generated/resources/data/occultism/recipe/ritual/possess_unbound_otherworld_bird.json index 35cc573c8..0a7aef356 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/possess_unbound_otherworld_bird.json +++ b/src/generated/resources/data/occultism/recipe/ritual/possess_unbound_otherworld_bird.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, + "duration": 60, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.parrots", "tag": "c:parrots" diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_crusher.json b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_crusher.json index 305b73d0b..061cc24a6 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_crusher.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_crusher.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 120, + "duration": 180, "entity_to_summon": "occultism:afrit", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_rain_weather.json b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_rain_weather.json index 86393fe98..926104b68 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_rain_weather.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_rain_weather.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.cows", "tag": "c:cows" @@ -40,5 +40,5 @@ }, "ritual_type": "occultism:summon_spirit_with_job", "spirit_job_type": "occultism:rain_weather", - "spirit_max_age": 120 + "spirit_max_age": 15 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_smelter.json b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_smelter.json index 3f53fb1de..5c9f8ce10 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_smelter.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_smelter.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 120, + "duration": 180, "entity_to_summon": "occultism:afrit", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_thunder_weather.json b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_thunder_weather.json index c130c69a7..02e8cb30e 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_thunder_weather.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_afrit_thunder_weather.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 60, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.cows", "tag": "c:cows" @@ -40,5 +40,5 @@ }, "ritual_type": "occultism:summon_spirit_with_job", "spirit_job_type": "occultism:thunder_weather", - "spirit_max_age": 240 + "spirit_max_age": 15 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_husband.json b/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_husband.json index 68a37d6e7..783558745 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_husband.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_husband.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 120, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.chicken", "tag": "c:chickens" diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_wife.json b/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_wife.json index 73be0dffb..39088b07f 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_wife.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_demonic_wife.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 120, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.chicken", "tag": "c:chickens" diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_clear_weather.json b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_clear_weather.json index 59105e7d3..13a4edd4f 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_clear_weather.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_clear_weather.json @@ -36,5 +36,5 @@ }, "ritual_type": "occultism:summon_spirit_with_job", "spirit_job_type": "occultism:clear_weather", - "spirit_max_age": 60 + "spirit_max_age": 15 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_crusher.json b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_crusher.json index 6ae96520b..3c1d0ab5c 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_crusher.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_crusher.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 90, + "duration": 120, "entity_to_summon": "occultism:djinni", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_day_time.json b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_day_time.json index d27e7cb57..e7463bdd3 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_day_time.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_day_time.json @@ -36,5 +36,5 @@ }, "ritual_type": "occultism:summon_spirit_with_job", "spirit_job_type": "occultism:day_time", - "spirit_max_age": 60 + "spirit_max_age": 15 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_manage_machine.json b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_manage_machine.json index 03f1bcb90..19e5efdbd 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_manage_machine.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_manage_machine.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 60, + "duration": 120, "entity_to_summon": "occultism:djinni", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_night_time.json b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_night_time.json index ae3ef11ac..fffd27248 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_night_time.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_night_time.json @@ -36,5 +36,5 @@ }, "ritual_type": "occultism:summon_spirit_with_job", "spirit_job_type": "occultism:night_time", - "spirit_max_age": 60 + "spirit_max_age": 15 } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_smelter.json b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_smelter.json index 5bbdfe51a..24dacce7c 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_smelter.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_djinni_smelter.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_djinni" }, - "duration": 90, + "duration": 120, "entity_to_summon": "occultism:djinni", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_otherstone_trader.json b/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_otherstone_trader.json index 7cf9ce67c..e4af4be0a 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_otherstone_trader.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_otherstone_trader.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, + "duration": 60, "entity_to_summon": "occultism:foliot", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_sapling_trader.json b/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_sapling_trader.json index 0f3bc4600..605c3d2ba 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_sapling_trader.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_foliot_sapling_trader.json @@ -3,6 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_foliot" }, + "duration": 60, "entity_to_summon": "occultism:foliot", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_marid_crusher.json b/src/generated/resources/data/occultism/recipe/ritual/summon_marid_crusher.json index 8530c278a..ecfc957b8 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_marid_crusher.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_marid_crusher.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_marid" }, - "duration": 150, + "duration": 240, "entity_to_summon": "occultism:marid", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_marid_smelter.json b/src/generated/resources/data/occultism/recipe/ritual/summon_marid_smelter.json index 50643dcee..b3cf58c9b 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_marid_smelter.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_marid_smelter.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_marid" }, - "duration": 150, + "duration": 240, "entity_to_summon": "occultism:marid", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_afrit.json b/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_afrit.json index a6d7c847a..46a564a71 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_afrit.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_afrit.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_afrit" }, - "duration": 60, + "duration": 150, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.cows", "tag": "c:cows" diff --git a/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_marid.json b/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_marid.json index f916bac25..00bd6dbe9 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_marid.json +++ b/src/generated/resources/data/occultism/recipe/ritual/summon_unbound_marid.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:book_of_binding_bound_marid" }, - "duration": 90, + "duration": 210, "entity_to_summon": "occultism:marid_unbound", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_breeze.json b/src/generated/resources/data/occultism/recipe/ritual/wild_breeze.json index 9ec43f98c..44abfd988 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_breeze.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_breeze.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:trial_key" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.wolfs", "tag": "c:wolfs" diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_creeper.json b/src/generated/resources/data/occultism/recipe/ritual/wild_creeper.json index 4e34507e0..a5fcead45 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_creeper.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_creeper.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:tnt" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.pigs", "tag": "c:pigs" diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_drowned.json b/src/generated/resources/data/occultism/recipe/ritual/wild_drowned.json index c4b45ced6..bc3d3ec8e 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_drowned.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_drowned.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:heart_of_the_sea" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.dolphin", "tag": "c:dolphins" diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_horde_illager.json b/src/generated/resources/data/occultism/recipe/ritual/wild_horde_illager.json index cab897c15..3b5badcfd 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_horde_illager.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_horde_illager.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:golden_apple" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.humans", "tag": "occultism:humans" diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_hunt.json b/src/generated/resources/data/occultism/recipe/ritual/wild_hunt.json index b0ff828ab..5aad51a45 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_hunt.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_hunt.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:skeleton_skull" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.humans", "tag": "occultism:humans" diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_husk.json b/src/generated/resources/data/occultism/recipe/ritual/wild_husk.json index 21afe703d..40303d11b 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_husk.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_husk.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:raw_gold" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.camel", "tag": "c:camels" diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_common.json b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_common.json index c433d0a5b..df2666b4b 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_common.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_common.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:spirit_attuned_gem" }, - "duration": 60, + "duration": 45, "entity_tag_to_summon": "occultism:random_animals_common", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_rideable.json b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_rideable.json index 2c7b44cbe..fb4ca5d98 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_rideable.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_rideable.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:spirit_attuned_gem" }, - "duration": 60, + "duration": 45, "entity_tag_to_summon": "occultism:random_animals_rideable", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_small.json b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_small.json index eedf6ceac..1c6c3ff07 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_small.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_small.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:spirit_attuned_gem" }, - "duration": 60, + "duration": 45, "entity_tag_to_summon": "occultism:random_animals_small", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_special.json b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_special.json index c16c09451..097ccd2cb 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_special.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_special.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:spirit_attuned_gem" }, - "duration": 60, + "duration": 45, "entity_tag_to_summon": "occultism:random_animals_special", "ingredients": [ { @@ -32,7 +32,7 @@ } ], "item_to_use": { - "item": "minecraft:firework_rocket" + "item": "minecraft:wind_charge" }, "pentacle_id": "occultism:contact_wild_spirit", "result": { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_water.json b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_water.json index b779d1ce1..c37e7d7af 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_water.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_random_animal_water.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:spirit_attuned_gem" }, - "duration": 60, + "duration": 45, "entity_tag_to_summon": "occultism:random_animals_water", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_silverfish.json b/src/generated/resources/data/occultism/recipe/ritual/wild_silverfish.json index d2900c925..35559ce85 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_silverfish.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_silverfish.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:brush" }, + "duration": 90, "entity_to_summon": "occultism:wild_horde_silverfish", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_strong_breeze.json b/src/generated/resources/data/occultism/recipe/ritual/wild_strong_breeze.json index 5ff96b41a..fa15473f9 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_strong_breeze.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_strong_breeze.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:ominous_trial_key" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.iron_golem", "tag": "c:golems/iron" diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_villager.json b/src/generated/resources/data/occultism/recipe/ritual/wild_villager.json index 66fe4e2e2..ccdaac1de 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_villager.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_villager.json @@ -3,7 +3,7 @@ "activation_item": { "item": "occultism:spirit_attuned_gem" }, - "duration": 60, + "duration": 45, "entity_tag_to_summon": "c:villagers", "ingredients": [ { diff --git a/src/generated/resources/data/occultism/recipe/ritual/wild_weak_breeze.json b/src/generated/resources/data/occultism/recipe/ritual/wild_weak_breeze.json index 9b679dc44..ea3fd1e32 100644 --- a/src/generated/resources/data/occultism/recipe/ritual/wild_weak_breeze.json +++ b/src/generated/resources/data/occultism/recipe/ritual/wild_weak_breeze.json @@ -3,6 +3,7 @@ "activation_item": { "item": "minecraft:honeycomb" }, + "duration": 90, "entity_to_sacrifice": { "display_name": "ritual.occultism.sacrifice.snow_golem", "tag": "c:golems/snow" diff --git a/src/generated/resources/data/occultism/recipe/spirit_fire/otherflower.json b/src/generated/resources/data/occultism/recipe/spirit_fire/otherflower.json new file mode 100644 index 000000000..6face045d --- /dev/null +++ b/src/generated/resources/data/occultism/recipe/spirit_fire/otherflower.json @@ -0,0 +1,10 @@ +{ + "type": "occultism:spirit_fire", + "ingredient": { + "tag": "minecraft:flowers" + }, + "result": { + "count": 1, + "id": "occultism:otherflower" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/center_sacrificial_bowl.json b/src/generated/resources/data/occultism/tags/block/center_sacrificial_bowl.json new file mode 100644 index 000000000..69945a37e --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/center_sacrificial_bowl.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:golden_sacrificial_bowl", + "occultism:iesnium_sacrificial_bowl", + "occultism:eldritch_chalice" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/chalk_glyphs.json b/src/generated/resources/data/occultism/tags/block/chalk_glyphs.json index 1a653652a..82431f6bb 100644 --- a/src/generated/resources/data/occultism/tags/block/chalk_glyphs.json +++ b/src/generated/resources/data/occultism/tags/block/chalk_glyphs.json @@ -15,6 +15,8 @@ "occultism:chalk_glyph_light_blue", "occultism:chalk_glyph_blue", "occultism:chalk_glyph_magenta", - "occultism:chalk_glyph_pink" + "occultism:chalk_glyph_pink", + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void" ] } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/foundation_glyphs_any.json b/src/generated/resources/data/occultism/tags/block/foundation_glyphs_any.json index 5d0575211..e4fe26a53 100644 --- a/src/generated/resources/data/occultism/tags/block/foundation_glyphs_any.json +++ b/src/generated/resources/data/occultism/tags/block/foundation_glyphs_any.json @@ -1,5 +1,6 @@ { "values": [ + "occultism:chalk_glyph_void", "occultism:chalk_glyph_white", "occultism:chalk_glyph_light_gray", "occultism:chalk_glyph_gray", diff --git a/src/generated/resources/data/occultism/tags/block/foundation_glyphs_dark.json b/src/generated/resources/data/occultism/tags/block/foundation_glyphs_dark.json index 8efa942ed..b469100d6 100644 --- a/src/generated/resources/data/occultism/tags/block/foundation_glyphs_dark.json +++ b/src/generated/resources/data/occultism/tags/block/foundation_glyphs_dark.json @@ -1,5 +1,6 @@ { "values": [ + "occultism:chalk_glyph_void", "occultism:chalk_glyph_gray", "occultism:chalk_glyph_black" ] diff --git a/src/generated/resources/data/occultism/tags/block/foundation_glyphs_no_white.json b/src/generated/resources/data/occultism/tags/block/foundation_glyphs_no_white.json index e436f5efe..9d3e4149c 100644 --- a/src/generated/resources/data/occultism/tags/block/foundation_glyphs_no_white.json +++ b/src/generated/resources/data/occultism/tags/block/foundation_glyphs_no_white.json @@ -1,5 +1,6 @@ { "values": [ + "occultism:chalk_glyph_void", "occultism:chalk_glyph_light_gray", "occultism:chalk_glyph_gray", "occultism:chalk_glyph_black" diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_black.json b/src/generated/resources/data/occultism/tags/block/glyphs_black.json new file mode 100644 index 000000000..5e1c6d1f4 --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_black.json @@ -0,0 +1,6 @@ +{ + "values": [ + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_black" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_blue.json b/src/generated/resources/data/occultism/tags/block/glyphs_blue.json new file mode 100644 index 000000000..69c265fbc --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_blue.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_blue" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_brown.json b/src/generated/resources/data/occultism/tags/block/glyphs_brown.json new file mode 100644 index 000000000..89a26fa16 --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_brown.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_brown" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_cyan.json b/src/generated/resources/data/occultism/tags/block/glyphs_cyan.json new file mode 100644 index 000000000..57349e3a5 --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_cyan.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_cyan" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_green.json b/src/generated/resources/data/occultism/tags/block/glyphs_green.json new file mode 100644 index 000000000..4647b3c78 --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_green.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_green" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_light_blue.json b/src/generated/resources/data/occultism/tags/block/glyphs_light_blue.json new file mode 100644 index 000000000..f01806c6d --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_light_blue.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_light_blue" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_lime.json b/src/generated/resources/data/occultism/tags/block/glyphs_lime.json new file mode 100644 index 000000000..e2a0a48ff --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_lime.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_lime" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_magenta.json b/src/generated/resources/data/occultism/tags/block/glyphs_magenta.json new file mode 100644 index 000000000..b6930aaa0 --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_magenta.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_magenta" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_orange.json b/src/generated/resources/data/occultism/tags/block/glyphs_orange.json new file mode 100644 index 000000000..cce2c19af --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_orange.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_orange" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_pink.json b/src/generated/resources/data/occultism/tags/block/glyphs_pink.json new file mode 100644 index 000000000..14fbc0f2b --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_pink.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_pink" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_purple.json b/src/generated/resources/data/occultism/tags/block/glyphs_purple.json new file mode 100644 index 000000000..5c1f19831 --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_purple.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_purple" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_red.json b/src/generated/resources/data/occultism/tags/block/glyphs_red.json new file mode 100644 index 000000000..c95c40a7e --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_red.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_red" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/glyphs_yellow.json b/src/generated/resources/data/occultism/tags/block/glyphs_yellow.json new file mode 100644 index 000000000..32979ef26 --- /dev/null +++ b/src/generated/resources/data/occultism/tags/block/glyphs_yellow.json @@ -0,0 +1,7 @@ +{ + "values": [ + "occultism:chalk_glyph_rainbow", + "occultism:chalk_glyph_void", + "occultism:chalk_glyph_gold" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/tags/block/pentacle_materials.json b/src/generated/resources/data/occultism/tags/block/pentacle_materials.json index 595381e8e..aa07ece1d 100644 --- a/src/generated/resources/data/occultism/tags/block/pentacle_materials.json +++ b/src/generated/resources/data/occultism/tags/block/pentacle_materials.json @@ -2,6 +2,8 @@ "values": [ "#c:skulls", "occultism:golden_sacrificial_bowl", + "occultism:iesnium_sacrificial_bowl", + "occultism:eldritch_chalice", "occultism:spirit_attuned_crystal", "#minecraft:candles", "#c:glass_panes", diff --git a/src/generated/resources/data/occultism/tags/block/storage_stabilizer.json b/src/generated/resources/data/occultism/tags/block/storage_stabilizer.json index 66bba5ccd..f238436d4 100644 --- a/src/generated/resources/data/occultism/tags/block/storage_stabilizer.json +++ b/src/generated/resources/data/occultism/tags/block/storage_stabilizer.json @@ -1,5 +1,6 @@ { "values": [ + "occultism:storage_stabilizer_tier0", "occultism:storage_stabilizer_tier1", "occultism:storage_stabilizer_tier2", "occultism:storage_stabilizer_tier3", diff --git a/src/generated/resources/data/occultism/tags/item/pentacle_materials.json b/src/generated/resources/data/occultism/tags/item/pentacle_materials.json index 252ab30a1..92a12f3f7 100644 --- a/src/generated/resources/data/occultism/tags/item/pentacle_materials.json +++ b/src/generated/resources/data/occultism/tags/item/pentacle_materials.json @@ -6,6 +6,8 @@ }, "#c:skulls", "occultism:golden_sacrificial_bowl", + "occultism:iesnium_sacrificial_bowl", + "occultism:eldritch_chalice", "occultism:spirit_attuned_crystal", "#minecraft:candles", "#c:glass_panes", diff --git a/src/generated/resources/data/occultism/tags/item/tools/chalk.json b/src/generated/resources/data/occultism/tags/item/tools/chalk.json index 7d860c2d6..39d29ed1e 100644 --- a/src/generated/resources/data/occultism/tags/item/tools/chalk.json +++ b/src/generated/resources/data/occultism/tags/item/tools/chalk.json @@ -15,6 +15,8 @@ "occultism:chalk_light_blue", "occultism:chalk_blue", "occultism:chalk_magenta", - "occultism:chalk_pink" + "occultism:chalk_pink", + "occultism:chalk_rainbow", + "occultism:chalk_void" ] } \ No newline at end of file diff --git a/src/generated/resources/data/occultism/worldgen/configured_feature/grove_underground.json b/src/generated/resources/data/occultism/worldgen/configured_feature/grove_underground.json index f898a49e8..ccdd8c028 100644 --- a/src/generated/resources/data/occultism/worldgen/configured_feature/grove_underground.json +++ b/src/generated/resources/data/occultism/worldgen/configured_feature/grove_underground.json @@ -4,7 +4,8 @@ "ceiling_light_chance": 0.1, "chance_to_generate": 300, "feature_seed_salt": 14653667, - "grass_chance": 0.6, + "flower_chance": 0.3, + "grass_chance": 0.3, "max_chunks_to_root": 9, "max_generation_height": 48, "min_generation_height": 9, diff --git a/src/generated/resources/data/occultism/worldgen/placed_feature/ore_iesnium.json b/src/generated/resources/data/occultism/worldgen/placed_feature/ore_iesnium.json index cd4a913c3..baee716de 100644 --- a/src/generated/resources/data/occultism/worldgen/placed_feature/ore_iesnium.json +++ b/src/generated/resources/data/occultism/worldgen/placed_feature/ore_iesnium.json @@ -13,10 +13,10 @@ "height": { "type": "minecraft:trapezoid", "max_inclusive": { - "absolute": 50 + "absolute": 128 }, "min_inclusive": { - "absolute": -64 + "absolute": 0 } } }, diff --git a/src/main/java/com/klikli_dev/occultism/Occultism.java b/src/main/java/com/klikli_dev/occultism/Occultism.java index 77e67ed10..4537a4ce7 100644 --- a/src/main/java/com/klikli_dev/occultism/Occultism.java +++ b/src/main/java/com/klikli_dev/occultism/Occultism.java @@ -192,6 +192,7 @@ private void onEntityAttributeCreation(final EntityAttributeCreationEvent event) event.put(OccultismEntities.MUMMY_FAMILIAR_TYPE.get(), MummyFamiliarEntity.createAttributes().build()); event.put(OccultismEntities.BEAVER_FAMILIAR_TYPE.get(), BeaverFamiliarEntity.createAttributes().build()); event.put(OccultismEntities.SHUB_NIGGURATH_SPAWN_TYPE.get(), ShubNiggurathSpawnEntity.createAttributes().build()); + event.put(OccultismEntities.IESNIUM_GOLEM_TYPE.get(), IesniumGolemEntity.createAttributes().build()); event.put(OccultismEntities.WILD_HORDE_HUSK_TYPE.get(), WildHordeHuskEntity.createAttributes().build()); event.put(OccultismEntities.WILD_HORDE_DROWNED_TYPE.get(), WildHordeDrownedEntity.createAttributes().build()); diff --git a/src/main/java/com/klikli_dev/occultism/client/gui/IesniumAnvilMenu.java b/src/main/java/com/klikli_dev/occultism/client/gui/IesniumAnvilMenu.java new file mode 100644 index 000000000..d63817510 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/client/gui/IesniumAnvilMenu.java @@ -0,0 +1,273 @@ +package com.klikli_dev.occultism.client.gui; + +import it.unimi.dsi.fastutil.objects.Object2IntMap; +import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.util.Mth; +import net.minecraft.util.StringUtil; +import net.minecraft.world.Container; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.*; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.ItemEnchantments; +import net.neoforged.fml.ModList; +import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.event.AnvilUpdateEvent; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; + +public class IesniumAnvilMenu extends AnvilMenu { + public int repairItemCountCost; + @Nullable + private String itemName; + private final DataSlot cost = DataSlot.standalone(); + + public IesniumAnvilMenu(int containerId, Inventory playerInventory, ContainerLevelAccess access) { + super(containerId, playerInventory, access); + } + + @Override + protected boolean mayPickup(Player player, boolean hasStack) { + return (player.hasInfiniteMaterials() || player.experienceLevel >= this.cost.get()/2) && this.cost.get() > 0; + } + + @Override + protected void onTake(Player player, @NotNull ItemStack stack) { + if (!player.getAbilities().instabuild) { + player.giveExperienceLevels(-this.cost.get()/2); + } + + this.inputSlots.setItem(0, ItemStack.EMPTY); + if (this.repairItemCountCost > 0) { + ItemStack itemstack = this.inputSlots.getItem(1); + if (!itemstack.isEmpty() && itemstack.getCount() > this.repairItemCountCost) { + itemstack.shrink(this.repairItemCountCost); + this.inputSlots.setItem(1, itemstack); + } else { + this.inputSlots.setItem(1, ItemStack.EMPTY); + } + } else { + this.inputSlots.setItem(1, ItemStack.EMPTY); + } + + this.cost.set(0); + this.access.execute((p_150479_, p_150480_) -> p_150479_.levelEvent(1030, p_150480_, 0)); + } + + @Override + public void createResult() { + ItemStack itemstack = this.inputSlots.getItem(0); + this.cost.set(1); + int i = 0; + long j = 0L; + int k = 0; + if (!itemstack.isEmpty() && EnchantmentHelper.canStoreEnchantments(itemstack)) { + ItemStack itemstack1 = itemstack.copy(); + ItemStack itemstack2 = this.inputSlots.getItem(1); + ItemEnchantments.Mutable itemenchantments$mutable = new ItemEnchantments.Mutable(EnchantmentHelper.getEnchantmentsForCrafting(itemstack1)); + j += (long) itemstack.getOrDefault(DataComponents.REPAIR_COST, 0) + + (long) itemstack2.getOrDefault(DataComponents.REPAIR_COST, 0); + this.repairItemCountCost = 0; + boolean flag = false; + if (!onIesniumAnvilChange(this, itemstack, itemstack2, resultSlots, itemName, j, this.player)) return; + if (!itemstack2.isEmpty()) { + flag = itemstack2.has(DataComponents.STORED_ENCHANTMENTS); + if (itemstack1.isDamageableItem() && itemstack1.getItem().isValidRepairItem(itemstack, itemstack2)) { + int l2 = Math.min(itemstack1.getDamageValue(), itemstack1.getMaxDamage() / 4); + if (l2 <= 0) { + this.resultSlots.setItem(0, ItemStack.EMPTY); + this.cost.set(0); + return; + } + + int j3; + for (j3 = 0; l2 > 0 && j3 < itemstack2.getCount(); j3++) { + int k3 = itemstack1.getDamageValue() - l2; + itemstack1.setDamageValue(k3); + i++; + l2 = Math.min(itemstack1.getDamageValue(), itemstack1.getMaxDamage() / 4); + } + + this.repairItemCountCost = j3; + } else { + if (!flag && (!itemstack1.is(itemstack2.getItem()) || !itemstack1.isDamageableItem())) { + this.resultSlots.setItem(0, ItemStack.EMPTY); + this.cost.set(0); + return; + } + + if (itemstack1.isDamageableItem() && !flag) { + int l = itemstack.getMaxDamage() - itemstack.getDamageValue(); + int i1 = itemstack2.getMaxDamage() - itemstack2.getDamageValue(); + int j1 = i1 + itemstack1.getMaxDamage() * 12 / 100; + int k1 = l + j1; + int l1 = itemstack1.getMaxDamage() - k1; + if (l1 < 0) { + l1 = 0; + } + + if (l1 < itemstack1.getDamageValue()) { + itemstack1.setDamageValue(l1); + i += 2; + } + } + + ItemEnchantments itemenchantments = EnchantmentHelper.getEnchantmentsForCrafting(itemstack2); + boolean flag2 = false; + boolean flag3 = false; + + for (Object2IntMap.Entry> entry : itemenchantments.entrySet()) { + Holder holder = entry.getKey(); + int i2 = itemenchantments$mutable.getLevel(holder); + int j2 = entry.getIntValue(); + j2 = i2 == j2 ? j2 + 1 : Math.max(j2, i2); + Enchantment enchantment = holder.value(); + // Neo: Respect IItemExtension#supportsEnchantment - we also delegate the logic for Enchanted Books to this method. + // Though we still allow creative players to combine any item with any enchantment in the anvil here. + boolean flag1 = itemstack.supportsEnchantment(holder); + if (this.player.getAbilities().instabuild) { + flag1 = true; + } + + for (Holder holder1 : itemenchantments$mutable.keySet()) { + if (!holder1.equals(holder) && !Enchantment.areCompatible(holder, holder1)) { + flag1 = false; + i++; + } + } + + if (!flag1) { + flag3 = true; + } else { + flag2 = true; + if(ModList.get().isLoaded("apothic_enchanting")) { + if (j2 > 9) { + j2 = 10; + } + } else { + if (j2 > enchantment.getMaxLevel()) { + j2 = enchantment.getMaxLevel() + 1; + } + } + itemenchantments$mutable.set(holder, j2); + int l3 = enchantment.getAnvilCost(); + if (flag) { + l3 = Math.max(1, l3 / 2); + } + + i += l3 * j2; + if (itemstack.getCount() > 1) { + i = 40; + } + } + } + + if (flag3 && !flag2) { + this.resultSlots.setItem(0, ItemStack.EMPTY); + this.cost.set(0); + return; + } + } + } + + if (this.itemName != null && !StringUtil.isBlank(this.itemName)) { + if (!this.itemName.equals(itemstack.getHoverName().getString())) { + k = 1; + i += k; + itemstack1.set(DataComponents.CUSTOM_NAME, Component.literal(this.itemName)); + } + } else if (itemstack.has(DataComponents.CUSTOM_NAME)) { + k = 1; + i += k; + itemstack1.remove(DataComponents.CUSTOM_NAME); + } + if (flag && !itemstack1.isBookEnchantable(itemstack2)) itemstack1 = ItemStack.EMPTY; + + int k2 = (int)Mth.clamp(j + (long)i, 0L, 2147483647L); + this.cost.set(k2); + if (i <= 0) { + itemstack1 = ItemStack.EMPTY; + } + + if (k == i && k > 0 && this.cost.get() >= 100) { + this.cost.set(99); + } + + if (this.cost.get() >= 100 && !this.player.getAbilities().instabuild) { + itemstack1 = ItemStack.EMPTY; + } + + if (!itemstack1.isEmpty()) { + int i3 = itemstack1.getOrDefault(DataComponents.REPAIR_COST, 0); + if (i3 < itemstack2.getOrDefault(DataComponents.REPAIR_COST, 0)) { + i3 = itemstack2.getOrDefault(DataComponents.REPAIR_COST, 0); + } + + if (k != i || k == 0) { + i3 = calculateLowedIncreasedRepairCost(i3); + } + + itemstack1.set(DataComponents.REPAIR_COST, i3); + EnchantmentHelper.setEnchantments(itemstack1, itemenchantments$mutable.toImmutable()); + } + + this.resultSlots.setItem(0, itemstack1); + this.broadcastChanges(); + } else { + this.resultSlots.setItem(0, ItemStack.EMPTY); + this.cost.set(0); + } + } + + public static int calculateLowedIncreasedRepairCost(int oldRepairCost) { + return (int)Math.min((long)oldRepairCost + 1L, 2147483647L); + } + + public boolean setItemName(@NotNull String itemName) { + String s = validateName(itemName); + if (s != null && !s.equals(this.itemName)) { + this.itemName = s; + if (this.getSlot(2).hasItem()) { + ItemStack itemstack = this.getSlot(2).getItem(); + if (StringUtil.isBlank(s)) { + itemstack.remove(DataComponents.CUSTOM_NAME); + } else { + itemstack.set(DataComponents.CUSTOM_NAME, Component.literal(s)); + } + } + + this.createResult(); + return true; + } else { + return false; + } + } + + @Nullable + private static String validateName(String itemName) { + String s = StringUtil.filterText(itemName); + return s.length() <= 50 ? s : null; + } + + public void setMaximumCost(long value) { + this.cost.set((int)Mth.clamp(value/2, 0L, Integer.MAX_VALUE)); + } + + public static boolean onIesniumAnvilChange(IesniumAnvilMenu container, ItemStack left, ItemStack right, Container outputSlot, String name, long baseCost, Player player) { + AnvilUpdateEvent e = new AnvilUpdateEvent(left, right, name, baseCost, player); + if (NeoForge.EVENT_BUS.post(e).isCanceled()) + return false; + if (e.getOutput().isEmpty()) + return true; + + outputSlot.setItem(0, e.getOutput()); + container.setMaximumCost(e.getCost()); + container.repairItemCountCost = e.getMaterialCost(); + return false; + } +} \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/occultism/client/render/entity/IesniumGolemRenderer.java b/src/main/java/com/klikli_dev/occultism/client/render/entity/IesniumGolemRenderer.java new file mode 100644 index 000000000..fddae63c7 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/client/render/entity/IesniumGolemRenderer.java @@ -0,0 +1,39 @@ +package com.klikli_dev.occultism.client.render.entity; + +import com.klikli_dev.occultism.Occultism; +import com.klikli_dev.occultism.common.entity.familiar.IesniumGolemEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.IronGolemModel; +import net.minecraft.client.model.geom.ModelLayers; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.entity.IronGolemRenderer; +import net.minecraft.client.renderer.entity.ZombieRenderer; +import net.minecraft.client.renderer.entity.layers.IronGolemCrackinessLayer; +import net.minecraft.client.renderer.entity.layers.IronGolemFlowerLayer; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.animal.IronGolem; +import net.minecraft.world.entity.monster.Zombie; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; + +import java.util.Objects; + +@OnlyIn(Dist.CLIENT) +public class IesniumGolemRenderer extends IronGolemRenderer { + private static final ResourceLocation IESNIUM_GOLEM_LOCATION = ResourceLocation.fromNamespaceAndPath(Occultism.MODID,"textures/entity/iesnium_golem.png"); + + public IesniumGolemRenderer(EntityRendererProvider.Context p_174188_) { + super(p_174188_); + this.addLayer(new IronGolemFlowerLayer(this, p_174188_.getBlockRenderDispatcher())); + } + + @Override + public ResourceLocation getTextureLocation(IronGolem entity) { + return IESNIUM_GOLEM_LOCATION; + } + + +} + diff --git a/src/main/java/com/klikli_dev/occultism/common/block/DimensionalMineshaftBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/DimensionalMineshaftBlock.java index 8cced7747..dd0381e2f 100644 --- a/src/main/java/com/klikli_dev/occultism/common/block/DimensionalMineshaftBlock.java +++ b/src/main/java/com/klikli_dev/occultism/common/block/DimensionalMineshaftBlock.java @@ -28,7 +28,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.player.Player; @@ -41,7 +40,6 @@ import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; @@ -123,4 +121,20 @@ public BlockEntityTicker getTicker(Level pLevel, Bloc shaft.tick(); }; } + + @Override + protected boolean hasAnalogOutputSignal(BlockState state) { + return true; + } + + @Override + protected int getAnalogOutputSignal(BlockState blockState, Level level, BlockPos pos) { + BlockEntity blockentity = level.getBlockEntity(pos); + return (blockentity instanceof DimensionalMineshaftBlockEntity mineshaft)? mineshaft.getRedstoneSignal() : 0; + } + + @Override + protected boolean isSignalSource(BlockState state) { + return true; + } } diff --git a/src/main/java/com/klikli_dev/occultism/common/block/GoldenSacrificialBowlBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/GoldenSacrificialBowlBlock.java index a86cc31d5..c56cb42b5 100644 --- a/src/main/java/com/klikli_dev/occultism/common/block/GoldenSacrificialBowlBlock.java +++ b/src/main/java/com/klikli_dev/occultism/common/block/GoldenSacrificialBowlBlock.java @@ -24,6 +24,7 @@ import com.klikli_dev.occultism.common.blockentity.GoldenSacrificialBowlBlockEntity; import com.klikli_dev.occultism.registry.OccultismBlockEntities; +import com.klikli_dev.occultism.registry.OccultismBlocks; import com.klikli_dev.occultism.util.StorageUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -40,14 +41,35 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.BooleanOp; import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; import javax.annotation.Nullable; +import java.util.stream.Stream; public class GoldenSacrificialBowlBlock extends Block implements EntityBlock { private static final VoxelShape SHAPE = Block.box(4, 0, 4, 12, 2.3, 12); + private static final VoxelShape SHAPE_TROPHY = Stream.of( + Block.box(6, 0, 6, 10, 1, 10), + Block.box(5, 0, 7, 11, 1, 9), + Block.box(7, 0, 5, 9, 1, 11), + Block.box(7.5, 1, 7.5, 8.5, 6, 8.5), + Block.box(6, 6, 6, 10, 7, 10), + Block.box(5, 6, 7, 11, 7, 9), + Block.box(7, 6, 5, 9, 7, 11), + Block.box(5, 7, 5, 11, 10, 11), + Block.box(4, 7, 7, 12, 10, 9), + Block.box(7, 7, 4, 9, 10, 12), + Block.box(5, 10, 4, 11, 15, 12), + Block.box(4, 10, 5, 12, 15, 11), + Block.box(3, 10, 6, 13, 15, 10), + Block.box(6, 10, 3, 10, 15, 13) + ).reduce((v1, v2) -> { + return Shapes.join(v1, v2, BooleanOp.OR); + }).get(); public GoldenSacrificialBowlBlock(Properties properties) { super(properties); @@ -89,6 +111,9 @@ protected ItemInteractionResult useItemOn(ItemStack pStack, BlockState pState, L @Override @SuppressWarnings("deprecation") public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + if (state.getBlock().equals(OccultismBlocks.ELDRITCH_CHALICE.get())) + return SHAPE_TROPHY; + return SHAPE; } diff --git a/src/main/java/com/klikli_dev/occultism/common/block/IesniumAnvilBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/IesniumAnvilBlock.java new file mode 100644 index 000000000..e56940639 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/block/IesniumAnvilBlock.java @@ -0,0 +1,137 @@ +package com.klikli_dev.occultism.common.block; + +import com.klikli_dev.occultism.client.gui.IesniumAnvilMenu; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.mojang.serialization.MapCodec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.item.FallingBlockEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.*; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +import javax.annotation.Nullable; + +public class IesniumAnvilBlock extends FallingBlock { + public static final MapCodec CODEC = simpleCodec(IesniumAnvilBlock::new); + public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + private static final VoxelShape BASE = Block.box(2.0, 0.0, 2.0, 14.0, 4.0, 14.0); + private static final VoxelShape X_LEG1 = Block.box(3.0, 4.0, 4.0, 13.0, 5.0, 12.0); + private static final VoxelShape X_LEG2 = Block.box(4.0, 5.0, 6.0, 12.0, 10.0, 10.0); + private static final VoxelShape X_TOP = Block.box(0.0, 10.0, 3.0, 16.0, 16.0, 13.0); + private static final VoxelShape Z_LEG1 = Block.box(4.0, 4.0, 3.0, 12.0, 5.0, 13.0); + private static final VoxelShape Z_LEG2 = Block.box(6.0, 5.0, 4.0, 10.0, 10.0, 12.0); + private static final VoxelShape Z_TOP = Block.box(3.0, 10.0, 0.0, 13.0, 16.0, 16.0); + private static final VoxelShape X_AXIS_AABB = Shapes.or(BASE, X_LEG1, X_LEG2, X_TOP); + private static final VoxelShape Z_AXIS_AABB = Shapes.or(BASE, Z_LEG1, Z_LEG2, Z_TOP); + private static final Component CONTAINER_TITLE = Component.translatable("container.repair"); + private static final float FALL_DAMAGE_PER_DISTANCE = 2.0F; + private static final int FALL_DAMAGE_MAX = 4096; + + @Override + public MapCodec codec() { + return CODEC; + } + + public IesniumAnvilBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getClockWise()); + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + if (level.isClientSide) { + return InteractionResult.SUCCESS; + } else { + player.openMenu(state.getMenuProvider(level, pos)); + player.awardStat(Stats.INTERACT_WITH_ANVIL); + return InteractionResult.CONSUME; + } + } + + @Nullable + @Override + protected MenuProvider getMenuProvider(BlockState state, Level level, BlockPos pos) { + return new SimpleMenuProvider( + (p_48785_, p_48786_, p_48787_) -> new IesniumAnvilMenu(p_48785_, p_48786_, ContainerLevelAccess.create(level, pos)), CONTAINER_TITLE + ); + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + Direction direction = state.getValue(FACING); + return direction.getAxis() == Direction.Axis.X ? X_AXIS_AABB : Z_AXIS_AABB; + } + + @Override + protected void falling(FallingBlockEntity fallingEntity) { + fallingEntity.setHurtsEntities(FALL_DAMAGE_PER_DISTANCE, FALL_DAMAGE_MAX); + } + + @Override + public void onLand(Level level, BlockPos pos, BlockState state, BlockState replaceableState, FallingBlockEntity fallingBlock) { + if (!fallingBlock.isSilent()) { + level.levelEvent(1031, pos, 0); + } + } + + @Override + public void onBrokenAfterFall(Level level, BlockPos pos, FallingBlockEntity fallingBlock) { + if (!fallingBlock.isSilent()) { + level.levelEvent(1029, pos, 0); + } + level.setBlockAndUpdate(pos, fallingBlock.getBlockState()); + } + + @Override + public DamageSource getFallDamageSource(Entity entity) { + return entity.damageSources().anvil(entity); + } + + /** + * Returns the blockstate with the given rotation from the passed blockstate. If inapplicable, returns the passed blockstate. + */ + @Override + protected BlockState rotate(BlockState state, Rotation rot) { + return state.setValue(FACING, rot.rotate(state.getValue(FACING))); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING); + } + + @Override + protected boolean isPathfindable(BlockState state, PathComputationType pathComputationType) { + return false; + } + + @Override + public int getDustColor(BlockState state, BlockGetter reader, BlockPos pos) { + return state.getMapColor(reader, pos).col; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/common/block/NonPathfindableBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/NonPathfindableBlock.java index 830f87067..dfd2d4372 100644 --- a/src/main/java/com/klikli_dev/occultism/common/block/NonPathfindableBlock.java +++ b/src/main/java/com/klikli_dev/occultism/common/block/NonPathfindableBlock.java @@ -27,13 +27,30 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.shapes.BooleanOp; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +import java.util.stream.Stream; public class NonPathfindableBlock extends Block { public NonPathfindableBlock(Properties properties) { super(properties); } - + private static final VoxelShape SHAPE = Stream.of( + Block.box(0, 0, 0, 16, 4, 16), + Block.box(4, 4, 4, 12, 12, 12), + Block.box(2, 12, 2, 14, 16, 14) + ).reduce((v1, v2) -> { + return Shapes.join(v1, v2, BooleanOp.OR); + }).get(); + @Override + @SuppressWarnings("deprecation") + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + return SHAPE; + } @Override protected boolean isPathfindable(BlockState pState, PathComputationType pPathComputationType) { return false; diff --git a/src/main/java/com/klikli_dev/occultism/common/block/RainbowGlyphBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/RainbowGlyphBlock.java new file mode 100644 index 000000000..1ecfd2b42 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/block/RainbowGlyphBlock.java @@ -0,0 +1,265 @@ +/* + * MIT License + * + * Copyright 2020 klikli-dev + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.klikli_dev.occultism.common.block; + +import com.klikli_dev.occultism.Occultism; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.klikli_dev.occultism.registry.OccultismItems; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.pathfinder.PathType; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.neoforged.neoforge.common.Tags; +import org.jetbrains.annotations.Nullable; + +import java.util.function.Supplier; + +public class RainbowGlyphBlock extends Block { + /** + * The glyph sign (the typeface) + */ + public static final IntegerProperty SIGN = IntegerProperty.create("sign", 0, 12); + public static final IntegerProperty COLOR = IntegerProperty.create("color", 0, 15); + public static final BooleanProperty CYCLE = BooleanProperty.create("cycle"); + public static final int MAX_SIGN = 12; + + private static final VoxelShape SHAPE = Block.box(0, 0, 0, 15, 0.04, 15); + + protected Supplier chalk; + protected Supplier color; + protected Boolean cycle; + + public RainbowGlyphBlock(Properties properties, Boolean cycle, Supplier chalk) { + super(properties); + this.chalk = chalk; + this.cycle = cycle; + this.registerDefaultState( + this.stateDefinition + .any() + .setValue(CYCLE, cycle) + ); + } + + public int getColor(BlockState state) { + return switch (state.getValue(COLOR)) { + case 1 -> Occultism.CLIENT_CONFIG.visuals.lightGrayChalkGlyphColor.get(); + case 2 -> Occultism.CLIENT_CONFIG.visuals.grayChalkGlyphColor.get(); + case 3 -> Occultism.CLIENT_CONFIG.visuals.blackChalkGlyphColor.get(); + case 4 -> Occultism.CLIENT_CONFIG.visuals.redChalkGlyphColor.get(); + case 5 -> Occultism.CLIENT_CONFIG.visuals.brownChalkGlyphColor.get(); + case 6 -> Occultism.CLIENT_CONFIG.visuals.orangeChalkGlyphColor.get(); + case 7 -> Occultism.CLIENT_CONFIG.visuals.yellowChalkGlyphColor.get(); + case 8 -> Occultism.CLIENT_CONFIG.visuals.limeChalkGlyphColor.get(); + case 9 -> Occultism.CLIENT_CONFIG.visuals.greenChalkGlyphColor.get(); + case 10 -> Occultism.CLIENT_CONFIG.visuals.cyanChalkGlyphColor.get(); + case 11 -> Occultism.CLIENT_CONFIG.visuals.blueChalkGlyphColor.get(); + case 12 -> Occultism.CLIENT_CONFIG.visuals.lightBlueChalkGlyphColor.get(); + case 13 -> Occultism.CLIENT_CONFIG.visuals.pinkChalkGlyphColor.get(); + case 14 -> Occultism.CLIENT_CONFIG.visuals.magentaChalkGlyphColor.get(); + case 15 -> Occultism.CLIENT_CONFIG.visuals.purpleChalkGlyphColor.get(); + default -> Occultism.CLIENT_CONFIG.visuals.whiteChalkGlyphColor.get(); + }; + } + + public Item getChalk() { + return this.chalk.get(); + } + + @Override + @SuppressWarnings("deprecation") + public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + if (!this.canSurvive(state, worldIn, pos)) { + worldIn.removeBlock(pos, false); + } + } + + @Override + @SuppressWarnings("deprecation") + public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { + return true; + } + + @Override + @SuppressWarnings("deprecation") + public boolean canBeReplaced(BlockState state, Fluid fluid) { + return true; + } + + @Override + @SuppressWarnings("deprecation") + public boolean canSurvive(BlockState state, LevelReader worldIn, BlockPos pos) { + BlockPos down = pos.below(); + BlockState downState = worldIn.getBlockState(down); + return downState.isFaceSturdy(worldIn, down, Direction.UP) && state.canBeReplaced(); + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + @SuppressWarnings("deprecation") + public VoxelShape getCollisionShape(BlockState state, BlockGetter worldIn, BlockPos pos, + CollisionContext context) { + return Shapes.empty(); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + BlockPos pos = context.getClickedPos(); + int sign = context.getLevel().getRandom().nextInt(MAX_SIGN + 1); + int cor = 0; + boolean cc = this.cycle; + BlockState current = context.getLevel().getBlockState(pos); + if (this.getChalk().asItem().equals(OccultismItems.CHALK_RAINBOW.get())){ + cor = 4; + } + if (current.getBlock() == this) { + sign = (current.getValue(SIGN) + 1) % (MAX_SIGN + 1); + cor = current.getValue(COLOR); + cc = current.getValue(CYCLE); + } + return this.defaultBlockState().setValue(COLOR, cor).setValue(CYCLE, cc).setValue(SIGN, sign) + .setValue(BlockStateProperties.HORIZONTAL_FACING, + context.getHorizontalDirection().getOpposite()); + } + + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(COLOR, CYCLE, SIGN, BlockStateProperties.HORIZONTAL_FACING); + super.createBlockStateDefinition(builder); + } + + @Override + public ItemStack getCloneItemStack(LevelReader pLevel, BlockPos pPos, BlockState pState) { + if (BuiltInRegistries.ITEM.containsValue(this.getChalk()))//fix for startup crash related to patchouli getting pick block too early + return new ItemStack(this.getChalk()); + return ItemStack.EMPTY; + } + + @Override + public @Nullable PathType getBlockPathType(BlockState state, BlockGetter level, BlockPos pos, @Nullable Mob mob) { + return PathType.OPEN; + } + @Override + protected ItemInteractionResult useItemOn( + ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult + ) { + if (player.getAbilities().mayBuild) { + if (stack.getItem().equals(OccultismItems.SPIRIT_ATTUNED_GEM.get())) { + if (state.getValue(CYCLE)) { + level.setBlockAndUpdate(pos, state.setValue(CYCLE, false)); + } else { + level.setBlockAndUpdate(pos, state.setValue(CYCLE, true)); + } + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_RED)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 4)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_BROWN)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 5)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_ORANGE)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 6)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_YELLOW)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 7)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_LIME)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 8)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_GREEN)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 9)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_CYAN)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 10)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_BLUE)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 11)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_LIGHT_BLUE)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 12)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_PINK)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 13)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_MAGENTA)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 14)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_PURPLE)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 15)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (state.getBlock().equals(OccultismBlocks.CHALK_GLYPH_VOID.get())) { + if (stack.getTags().toList().contains(Tags.Items.DYES_WHITE)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 0)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_LIGHT_GRAY)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 1)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_GRAY)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 2)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } else if (stack.getTags().toList().contains(Tags.Items.DYES_BLACK)) { + level.setBlockAndUpdate(pos, state.setValue(COLOR, 3)); + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } + } + } + return super.useItemOn(stack, state, level, pos, player, hand, hitResult); + } + + public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource rand) { + if (state.getValue(CYCLE)) { + Integer nextColor = state.getValue(COLOR) + 1; + if (nextColor == 16 && state.getBlock().equals(OccultismBlocks.CHALK_GLYPH_VOID.get())){nextColor = 0;} //return to white + if (nextColor == 16 && state.getBlock().equals(OccultismBlocks.CHALK_GLYPH_RAINBOW.get())){nextColor = 4;} //return to red + level.setBlockAndUpdate(pos, state.setValue(COLOR, nextColor)); + } + } + +} diff --git a/src/main/java/com/klikli_dev/occultism/common/block/SacrificialBowlBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/SacrificialBowlBlock.java index e6e7dd2e0..84893df9b 100644 --- a/src/main/java/com/klikli_dev/occultism/common/block/SacrificialBowlBlock.java +++ b/src/main/java/com/klikli_dev/occultism/common/block/SacrificialBowlBlock.java @@ -55,7 +55,7 @@ public class SacrificialBowlBlock extends DirectionalBlock implements EntityBloc public static final MapCodec CODEC = simpleCodec(SacrificialBowlBlock::new); - private static final DirectionalBlockShape SHAPE = new DirectionalBlockShape(12, 12, 2.3f); + private static final DirectionalBlockShape SHAPE = new DirectionalBlockShape(8, 8, 2.3f); public SacrificialBowlBlock(Properties properties) { super(properties); diff --git a/src/main/java/com/klikli_dev/occultism/common/block/otherworld/OtherflowerNaturalBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/otherworld/OtherflowerNaturalBlock.java new file mode 100644 index 000000000..36506be6c --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/block/otherworld/OtherflowerNaturalBlock.java @@ -0,0 +1,92 @@ +/* + * MIT License + * + * Copyright 2020 klikli-dev + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.klikli_dev.occultism.common.block.otherworld; + + +import com.klikli_dev.occultism.api.common.data.OtherworldBlockTier; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.klikli_dev.occultism.registry.OccultismEffects; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.FlowerBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; + +import javax.annotation.Nullable; + +public class OtherflowerNaturalBlock extends FlowerBlock implements IOtherworldBlock { + + public OtherflowerNaturalBlock(Properties properties) { + super(OccultismEffects.THIRD_EYE, 11, properties); + this.registerDefaultState(this.defaultBlockState().setValue(UNCOVERED, false)); + } + + + @Override + public Block getUncoveredBlock() { + return OccultismBlocks.OTHERFLOWER.get(); + } + + @Override + public Block getCoveredBlock() { + return Blocks.POPPY; + } + + @Override + public OtherworldBlockTier getTier() { + return OtherworldBlockTier.ONE; + } + + @Override + public void playerDestroy(Level worldIn, Player player, BlockPos pos, BlockState state, + @Nullable BlockEntity te, ItemStack stack) { + super.playerDestroy(worldIn, player, pos, IOtherworldBlock.super.getHarvestState(player, state, stack), te, + stack); + } + + @Override + public String getDescriptionId() { + return "block.minecraft.poppy"; + } + + + + @Override + @SuppressWarnings("deprecation") + public ItemStack getCloneItemStack(LevelReader worldIn, BlockPos pos, BlockState state) { + return IOtherworldBlock.super.getItem(worldIn, pos, state); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(UNCOVERED); + super.createBlockStateDefinition(builder); + } + +} diff --git a/src/main/java/com/klikli_dev/occultism/common/block/otherworld/OtherglassNaturalBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/otherworld/OtherglassNaturalBlock.java new file mode 100644 index 000000000..9e724afb1 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/block/otherworld/OtherglassNaturalBlock.java @@ -0,0 +1,90 @@ +/* + * MIT License + * + * Copyright 2020 klikli-dev + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.klikli_dev.occultism.common.block.otherworld; + + +import com.klikli_dev.occultism.api.common.data.OtherworldBlockTier; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.TransparentBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; + +import javax.annotation.Nullable; + +public class OtherglassNaturalBlock extends TransparentBlock implements IOtherworldBlock { + + public OtherglassNaturalBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.defaultBlockState().setValue(UNCOVERED, false)); + } + + @Override + public Block getUncoveredBlock() { + return Blocks.END_STONE; + } + + @Override + public Block getCoveredBlock() { + return OccultismBlocks.OTHERGLASS.get(); + } + + @Override + public OtherworldBlockTier getTier() { + return OtherworldBlockTier.TWO; + } + + @Override + public void playerDestroy(Level worldIn, Player player, BlockPos pos, BlockState state, + @Nullable BlockEntity te, ItemStack stack) { + super.playerDestroy(worldIn, player, pos, IOtherworldBlock.super.getHarvestState(player, state, stack), te, + stack); + } + + @Override + public String getDescriptionId() { + return "block.occultism.otherglass"; + } + + + + @Override + @SuppressWarnings("deprecation") + public ItemStack getCloneItemStack(LevelReader worldIn, BlockPos pos, BlockState state) { + return IOtherworldBlock.super.getItem(worldIn, pos, state); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(UNCOVERED); + super.createBlockStateDefinition(builder); + } + +} diff --git a/src/main/java/com/klikli_dev/occultism/common/blockentity/DimensionalMineshaftBlockEntity.java b/src/main/java/com/klikli_dev/occultism/common/blockentity/DimensionalMineshaftBlockEntity.java index 9d6469500..b636930c7 100644 --- a/src/main/java/com/klikli_dev/occultism/common/blockentity/DimensionalMineshaftBlockEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/blockentity/DimensionalMineshaftBlockEntity.java @@ -24,7 +24,6 @@ import com.klikli_dev.occultism.Occultism; import com.klikli_dev.occultism.common.container.DimensionalMineshaftContainer; -import com.klikli_dev.occultism.config.OccultismServerConfig; import com.klikli_dev.occultism.crafting.recipe.MinerRecipe; import com.klikli_dev.occultism.crafting.recipe.input.ItemHandlerRecipeInput; import com.klikli_dev.occultism.crafting.recipe.result.WeightedRecipeResult; @@ -56,7 +55,6 @@ import net.neoforged.neoforge.items.ItemHandlerHelper; import net.neoforged.neoforge.items.ItemStackHandler; import net.neoforged.neoforge.items.wrapper.CombinedInvWrapper; -import net.neoforged.neoforge.items.wrapper.RecipeWrapper; import javax.annotation.Nullable; import java.util.ArrayList; @@ -148,6 +146,10 @@ public CompoundTag saveNetwork(CompoundTag compound, HolderLookup.Provider provi public void tick() { + if(this.level.hasNeighborSignal(this.getBlockPos())){ + this.miningTime = 0; + return; + } if (!this.level.isClientSide) { ItemStack input = this.inputHandler.getStackInSlot(0); @@ -242,4 +244,19 @@ public void mine() { ItemHandlerHelper.insertItemStacked(this.outputHandler, minerCopy,false); } } + + public int getRedstoneSignal() { + ItemStack lamp = this.inputHandler.getStackInSlot(0); + int signalI = 0; + int signalO = 0; + if (!lamp.isEmpty()) { + signalI = (int) (10 * ((float) lamp.getItem().getDamage(lamp) / (lamp.getMaxDamage() - 1))); + signalO++; + } + for (int i = 0; i < 9; i++) { + if (!this.outputHandler.getStackInSlot(i).isEmpty()) + signalO++; + } + return Math.max(signalI, signalO); + } } diff --git a/src/main/java/com/klikli_dev/occultism/common/blockentity/GoldenSacrificialBowlBlockEntity.java b/src/main/java/com/klikli_dev/occultism/common/blockentity/GoldenSacrificialBowlBlockEntity.java index 534b9bc83..424cd2a96 100644 --- a/src/main/java/com/klikli_dev/occultism/common/blockentity/GoldenSacrificialBowlBlockEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/blockentity/GoldenSacrificialBowlBlockEntity.java @@ -31,6 +31,7 @@ import com.klikli_dev.occultism.common.ritual.Ritual; import com.klikli_dev.occultism.crafting.recipe.RitualRecipe; import com.klikli_dev.occultism.registry.OccultismBlockEntities; +import com.klikli_dev.occultism.registry.OccultismBlocks; import com.klikli_dev.occultism.registry.OccultismParticles; import com.klikli_dev.occultism.registry.OccultismRecipes; import com.klikli_dev.occultism.util.EntityUtil; @@ -83,6 +84,7 @@ public class GoldenSacrificialBowlBlockEntity extends SacrificialBowlBlockEntity public boolean sacrificeProvided; public boolean itemUseProvided; public int currentTime; + public int tier; public Consumer rightClickItemListener; public Consumer livingDeathEventListener; @@ -321,6 +323,21 @@ public int getSignal() { return 8; } + public int getTier(BlockState pBlockState){ + Block blockBowl = pBlockState.getBlock(); + + if (blockBowl.equals(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get())) + return 1; + + if (blockBowl.equals(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.get())) + return 2; + + if (blockBowl.equals(OccultismBlocks.ELDRITCH_CHALICE.get())) + return 3; + + return 0; + } + public void tick() { RecipeHolder recipe = this.getCurrentRitualRecipe(); if (!this.level.isClientSide && recipe != null) { @@ -377,8 +394,19 @@ public void tick() { } //Advance ritual time every second, based on the standard 20 tps, but taking into account duration multiplier - if (this.level.getGameTime() % ((int) (20 * Occultism.SERVER_CONFIG.rituals.ritualDurationMultiplier.get())) == 0) - this.currentTime++; + if (getTier(this.getBlockState()) == 1){ //golden bowl + if (this.level.getGameTime() % ((int) (20 * Occultism.SERVER_CONFIG.rituals.ritualDurationMultiplier.get())) == 0){ + this.currentTime++; + } + } else if (getTier(this.getBlockState()) == 2) { + if (Occultism.SERVER_CONFIG.rituals.ritualDurationMultiplier.get() < 0.2) { //avoiding crash of divide by 0 with iesnium bowl + this.currentTime++; + } else if (this.level.getGameTime() % ((int) (5 * Occultism.SERVER_CONFIG.rituals.ritualDurationMultiplier.get())) == 0) { + this.currentTime++; + } + } else { + this.currentTime = recipe.value().getDuration(); + } recipe .value().getRitual() diff --git a/src/main/java/com/klikli_dev/occultism/common/blockentity/StorageControllerBlockEntity.java b/src/main/java/com/klikli_dev/occultism/common/blockentity/StorageControllerBlockEntity.java index 8b62c1b5e..5bc2d42cd 100644 --- a/src/main/java/com/klikli_dev/occultism/common/blockentity/StorageControllerBlockEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/blockentity/StorageControllerBlockEntity.java @@ -86,7 +86,7 @@ public class StorageControllerBlockEntity extends NetworkedBlockEntity implement public static final int MAX_STABILIZER_DISTANCE = 5; protected static final List> BLOCK_BLACKLIST = Stream.of( - OccultismBlocks.STORAGE_CONTROLLER).collect(Collectors.toList()); + OccultismBlocks.STORAGE_CONTROLLER, OccultismBlocks.STORAGE_CONTROLLER_STABILIZED).collect(Collectors.toList()); private final AnimatableInstanceCache animatableInstanceCache = GeckoLibUtil.createInstanceCache(this); public Map matrix = new HashMap<>(); public ItemStack orderStack = ItemStack.EMPTY; @@ -124,12 +124,17 @@ public void updateStabilizers() { int additionalMaxItemTypes = 0; long additionalTotalItemCount = 0; List stabilizerLocations = this.findValidStabilizers(); - for (BlockPos pos : stabilizerLocations) { - additionalMaxItemTypes += this.getAdditionalMaxItemTypesForStabilizer(this.level.getBlockState(pos)); - additionalTotalItemCount += this.getAdditionalMaxTotalItemCountForStabilizer(this.level.getBlockState(pos)); + if (this.getBlockState().getBlock().equals(OccultismBlocks.STORAGE_CONTROLLER.get())) { + for (BlockPos pos : stabilizerLocations) { + additionalMaxItemTypes += this.getAdditionalMaxItemTypesForStabilizer(this.level.getBlockState(pos)); + additionalTotalItemCount += this.getAdditionalMaxTotalItemCountForStabilizer(this.level.getBlockState(pos)); + } + this.setStorageLimits(Occultism.SERVER_CONFIG.storage.controllerMaxItemTypes.get() + additionalMaxItemTypes, + Occultism.SERVER_CONFIG.storage.controllerMaxTotalItemCount.get() + additionalTotalItemCount); + } else { + this.setStorageLimits(Occultism.SERVER_CONFIG.storage.controllerMaxItemTypes.get() + Occultism.SERVER_CONFIG.storage.stabilizedControllerStabilizers.get() * Occultism.SERVER_CONFIG.storage.stabilizerTier4AdditionalMaxItemTypes.get(), + Occultism.SERVER_CONFIG.storage.controllerMaxTotalItemCount.get() + Occultism.SERVER_CONFIG.storage.stabilizedControllerStabilizers.get() * Occultism.SERVER_CONFIG.storage.stabilizerTier4AdditionalMaxTotalItemCount.get()); } - - this.setStorageLimits(Occultism.SERVER_CONFIG.storage.controllerMaxItemTypes.get() + additionalMaxItemTypes, Occultism.SERVER_CONFIG.storage.controllerMaxTotalItemCount.get() + additionalTotalItemCount); } public List findValidStabilizers() { diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/ChimeraFamiliarEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/ChimeraFamiliarEntity.java index 3b1806bc4..041a305f8 100644 --- a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/ChimeraFamiliarEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/ChimeraFamiliarEntity.java @@ -28,8 +28,11 @@ import com.klikli_dev.occultism.common.entity.ai.goal.OwnerHurtByTargetGoal; import com.klikli_dev.occultism.common.entity.ai.goal.OwnerHurtTargetGoal; import com.klikli_dev.occultism.registry.OccultismAdvancements; +import com.klikli_dev.occultism.registry.OccultismDataComponents; +import com.klikli_dev.occultism.util.TextUtil; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; @@ -311,6 +314,7 @@ protected InteractionResult mobInteract(Player playerIn, InteractionHand hand) { GoatFamiliarEntity goat = new GoatFamiliarEntity(this.level(), this.hasRing(), this.hasBeard(), this.getSize(), this.getFamiliarOwner()); goat.setPos(this.getX(), this.getY(), this.getZ()); + goat.setCustomName(Component.literal(TextUtil.generateName())); this.level().addFreshEntity(goat); OccultismAdvancements.FAMILIAR.get().trigger(playerIn, FamiliarTrigger.Type.GOAT_DETACH); } diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/FamiliarEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/FamiliarEntity.java index ef8095db0..b4e4971cc 100644 --- a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/FamiliarEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/FamiliarEntity.java @@ -90,6 +90,9 @@ public static AttributeSupplier.Builder createAttributes() { @Override protected void dropFromLootTable(DamageSource pDamageSource, boolean pAttackedRecently) { + if (this.getFamiliarEntity() instanceof GuardianFamiliarEntity) + return; + super.dropFromLootTable(pDamageSource, pAttackedRecently); var owner = this.getFamiliarOwner(); @@ -98,6 +101,8 @@ protected void dropFromLootTable(DamageSource pDamageSource, boolean pAttackedRe var health = this.getHealth(); this.setHealth(this.getMaxHealth()); //simulate a healthy familiar to avoid death on respawn + this.resetFallDistance(); + this.removeAllEffects(); var entityData = new CompoundTag(); var id = this.getEncodeId(); diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GoatFamiliarEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GoatFamiliarEntity.java index 40707c855..68e13c7af 100644 --- a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GoatFamiliarEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GoatFamiliarEntity.java @@ -29,6 +29,7 @@ import com.klikli_dev.occultism.registry.OccultismTags; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; @@ -195,6 +196,7 @@ private void transform() { 0); } else { ShubNiggurathFamiliarEntity shubNiggurath = new ShubNiggurathFamiliarEntity(this.level(), this); + shubNiggurath.setCustomName(this.getName()); this.level().addFreshEntity(shubNiggurath); this.remove(RemovalReason.DISCARDED); } diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GuardianFamiliarEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GuardianFamiliarEntity.java index e783857d7..5df9d20f3 100644 --- a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GuardianFamiliarEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/GuardianFamiliarEntity.java @@ -242,6 +242,8 @@ protected void dropFromLootTable(DamageSource pDamageSource, boolean pAttackedRe var health = this.getHealth(); this.setHealth(this.getMaxHealth()); //simulate a healthy familiar to avoid death on respawn + this.resetFallDistance(); + this.removeAllEffects(); var lives = this.getLives(); this.setLives((byte) (this.getRandom().nextInt(5) + 1)); //randomize lives for next respawn diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/IesniumGolemEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/IesniumGolemEntity.java new file mode 100644 index 000000000..9ab64f667 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/IesniumGolemEntity.java @@ -0,0 +1,117 @@ +/* + * MIT License + * + * Copyright 2020 klikli-dev + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.klikli_dev.occultism.common.entity.familiar; + +import com.klikli_dev.occultism.registry.OccultismItems; +import net.minecraft.core.component.DataComponents; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.goal.*; +import net.minecraft.world.entity.ai.goal.target.DefendVillageTargetGoal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; +import net.minecraft.world.entity.ai.goal.target.ResetUniversalAngerTargetGoal; +import net.minecraft.world.entity.animal.IronGolem; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.monster.Enemy; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; +import net.minecraft.world.level.Level; + +public class IesniumGolemEntity extends IronGolem{ + + public IesniumGolemEntity(EntityType type, + Level worldIn) { + super(type, worldIn); + } + @Override + protected void registerGoals() { + this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.0, true)); + this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9, 32.0F)); + this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6, false)); + this.goalSelector.addGoal(4, new GolemRandomStrollInVillageGoal(this, 0.6)); + this.goalSelector.addGoal(5, new OfferFlowerGoal(this)); + this.goalSelector.addGoal(7, new LookAtPlayerGoal(this, Player.class, 6.0F)); + this.goalSelector.addGoal(8, new RandomLookAroundGoal(this)); + this.targetSelector.addGoal(1, new DefendVillageTargetGoal(this)); + this.targetSelector.addGoal(2, new HurtByTargetGoal(this)); + this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt)); + this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Mob.class, 5, false, false, p_28879_ -> p_28879_ instanceof Enemy)); + this.targetSelector.addGoal(4, new ResetUniversalAngerTargetGoal<>(this, false)); + } + + //region Static Methods + public static AttributeSupplier.Builder createAttributes() { + return IronGolem.createAttributes() + .add(Attributes.MAX_HEALTH, 1.0) + .add(Attributes.MOVEMENT_SPEED, 0.5) + .add(Attributes.ATTACK_DAMAGE, 100.0) + .add(Attributes.ATTACK_SPEED,5) + .add(Attributes.FOLLOW_RANGE,64); + } + + @Override + public boolean canAttackType(EntityType type) { + return type != EntityType.PLAYER; + } + + @Override + public boolean isInvulnerableTo(DamageSource source) { + if (source.getEntity() == null || !source.getEntity().isCrouching()) + return true; + + return super.isInvulnerableTo(source); + } + + @Override + protected void dropFromLootTable(DamageSource pDamageSource, boolean pAttackedRecently) { + super.dropFromLootTable(pDamageSource, pAttackedRecently); + + var shard = new ItemStack(OccultismItems.SOUL_SHARD_ITEM.get()); + + var health = this.getHealth(); + this.setHealth(this.getMaxHealth()); //simulate a healthy familiar to avoid death on respawn + this.resetFallDistance(); + this.removeAllEffects(); + + var entityData = new CompoundTag(); + var id = this.getEncodeId(); + if (id != null) + entityData.putString("id", id); + entityData = this.saveWithoutId(entityData); + + shard.set(DataComponents.ENTITY_DATA, CustomData.of(entityData)); + this.setHealth(health); + + ItemEntity entityitem = new ItemEntity(this.level(), this.getX(), this.getY() + 0.5, this.getZ(), shard); + entityitem.setPickUpDelay(5); + entityitem.setDeltaMovement(entityitem.getDeltaMovement().multiply(0, 1, 0)); + + this.level().addFreshEntity(entityitem); + } +} diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/spirit/demonicpartner/DemonicPartner.java b/src/main/java/com/klikli_dev/occultism/common/entity/spirit/demonicpartner/DemonicPartner.java index a3a74b25e..2274e77af 100644 --- a/src/main/java/com/klikli_dev/occultism/common/entity/spirit/demonicpartner/DemonicPartner.java +++ b/src/main/java/com/klikli_dev/occultism/common/entity/spirit/demonicpartner/DemonicPartner.java @@ -67,6 +67,8 @@ protected void dropFromLootTable(DamageSource pDamageSource, boolean pAttackedRe var health = this.getHealth(); this.setHealth(this.getMaxHealth()); //simulate a healthy familiar to avoid death on respawn + this.resetFallDistance(); + this.removeAllEffects(); var entityData = new CompoundTag(); var id = this.getEncodeId(); diff --git a/src/main/java/com/klikli_dev/occultism/common/item/tool/BrushItem.java b/src/main/java/com/klikli_dev/occultism/common/item/tool/BrushItem.java index dc14de2ed..07a505d5e 100644 --- a/src/main/java/com/klikli_dev/occultism/common/item/tool/BrushItem.java +++ b/src/main/java/com/klikli_dev/occultism/common/item/tool/BrushItem.java @@ -23,6 +23,7 @@ package com.klikli_dev.occultism.common.item.tool; import com.klikli_dev.occultism.common.block.ChalkGlyphBlock; +import com.klikli_dev.occultism.common.block.RainbowGlyphBlock; import com.klikli_dev.occultism.registry.OccultismSounds; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundSource; @@ -43,7 +44,7 @@ public InteractionResult useOn(UseOnContext context) { BlockPos pos = context.getClickedPos(); if (!level.isClientSide) { //only remove chalks - if (level.getBlockState(pos).getBlock() instanceof ChalkGlyphBlock) { + if (level.getBlockState(pos).getBlock() instanceof ChalkGlyphBlock || level.getBlockState(pos).getBlock() instanceof RainbowGlyphBlock) { level.removeBlock(pos, false); level.playSound(null, pos, OccultismSounds.BRUSH.get(), SoundSource.PLAYERS, 0.5f, 1 + 0.5f * context.getPlayer().getRandom().nextFloat()); diff --git a/src/main/java/com/klikli_dev/occultism/common/item/tool/DivinationRodItem.java b/src/main/java/com/klikli_dev/occultism/common/item/tool/DivinationRodItem.java index 0ef1e1175..3f3eb2064 100644 --- a/src/main/java/com/klikli_dev/occultism/common/item/tool/DivinationRodItem.java +++ b/src/main/java/com/klikli_dev/occultism/common/item/tool/DivinationRodItem.java @@ -53,6 +53,7 @@ import net.neoforged.neoforge.common.Tags; import java.lang.reflect.Array; +import java.util.Arrays; import java.util.List; public class DivinationRodItem extends Item { @@ -241,6 +242,15 @@ public Block getOtherBlock(BlockState state, boolean isCreative) { || state.getBlock() == OccultismBlocks.IESNIUM_ORE.get()) { return OccultismBlocks.IESNIUM_ORE_NATURAL.get(); } + //otherflower ore is linked to any flower. + if (Arrays.toString(state.getTags().toArray()).contains("flower")) { + return OccultismBlocks.OTHERFLOWER_NATURAL.get(); + } + //Otherglass are linked to end stone + if (state.getBlock() == Blocks.END_STONE || state.getBlock() == OccultismBlocks.OTHERGLASS_NATURAL.get() + || state.getBlock() == OccultismBlocks.OTHERGLASS.get()) { + return OccultismBlocks.OTHERGLASS_NATURAL.get(); + } //check server config to link to any block that have c:ores if (Occultism.SERVER_CONFIG.itemSettings.anyOreDivinationRod.getAsBoolean()) { blocktags = state.getTags().toArray(); diff --git a/src/main/java/com/klikli_dev/occultism/common/item/tool/RainbowChalkItem.java b/src/main/java/com/klikli_dev/occultism/common/item/tool/RainbowChalkItem.java new file mode 100644 index 000000000..f2391329b --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/item/tool/RainbowChalkItem.java @@ -0,0 +1,92 @@ +/* + * MIT License + * + * Copyright 2020 klikli-dev + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.klikli_dev.occultism.common.item.tool; + +import com.klikli_dev.occultism.common.block.ChalkGlyphBlock; +import com.klikli_dev.occultism.common.block.RainbowGlyphBlock; +import com.klikli_dev.occultism.registry.OccultismSounds; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.function.Supplier; + +public class RainbowChalkItem extends Item { + Supplier glyphBlock; + + public RainbowChalkItem(Properties properties, Supplier glyphBlock) { + super(properties); + this.glyphBlock = glyphBlock; + } + + public Supplier getGlyphBlock() { + return this.glyphBlock; + } + + @Override + public InteractionResult useOn(UseOnContext context) { + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + BlockState state = level.getBlockState(pos); + Player player = context.getPlayer(); + boolean isReplacing = level.getBlockState(pos).canBeReplaced(new BlockPlaceContext(context)); + + if (!level.isClientSide) { + if (player.isCrouching()){ //brush job + if (level.getBlockState(pos).getBlock() instanceof ChalkGlyphBlock || level.getBlockState(pos).getBlock() instanceof RainbowGlyphBlock) { + level.removeBlock(pos, false); + level.playSound(null, pos, OccultismSounds.BRUSH.get(), SoundSource.PLAYERS, 0.5f, + 1 + 0.5f * context.getPlayer().getRandom().nextFloat()); + return InteractionResult.SUCCESS; + } + } + //only place if player clicked at a top face + //only if the block can be placed or is replacing an existing block + if ((context.getClickedFace() == Direction.UP + && this.glyphBlock.get().canSurvive(level.getBlockState(pos.above()), level, pos.above())) || isReplacing) { + ItemStack heldChalk = context.getItemInHand(); + BlockPos placeAt = isReplacing ? pos : pos.above(); + + boolean isSameChalkType = level.getBlockState(placeAt).getBlock() == this.glyphBlock.get(); + level.setBlockAndUpdate(placeAt, + this.glyphBlock.get().getStateForPlacement(new BlockPlaceContext(context))); + + level.playSound(null, pos, OccultismSounds.CHALK.get(), SoundSource.PLAYERS, 0.5f, + 1 + 0.5f * player.getRandom().nextFloat()); + + // do not consume durability if creative, or if same kind of chalk (= cycle through sings) + if (!player.isCreative() && !isSameChalkType) + heldChalk.hurtAndBreak(1, player, player.getEquipmentSlotForItem(heldChalk)); + } + } + return InteractionResult.SUCCESS; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/common/item/tool/SoulGemItem.java b/src/main/java/com/klikli_dev/occultism/common/item/tool/SoulGemItem.java index e7e976805..393aa52ea 100644 --- a/src/main/java/com/klikli_dev/occultism/common/item/tool/SoulGemItem.java +++ b/src/main/java/com/klikli_dev/occultism/common/item/tool/SoulGemItem.java @@ -22,6 +22,7 @@ package com.klikli_dev.occultism.common.item.tool; +import com.klikli_dev.occultism.registry.OccultismItems; import com.klikli_dev.occultism.registry.OccultismTags; import com.klikli_dev.occultism.util.EntityUtil; import com.mojang.serialization.MapCodec; @@ -137,7 +138,13 @@ public InteractionResult interactLivingEntity(ItemStack stack, Player player, Li return InteractionResult.FAIL; //do not capture entities on deny lists - if (target.getType().is(OccultismTags.Entities.SOUL_GEM_DENY_LIST)) { + if (target.getType().is(OccultismTags.Entities.SOUL_GEM_DENY_LIST) && stack.getItem().equals(OccultismItems.SOUL_GEM_ITEM.get())) { + player.sendSystemMessage( + Component.translatable(this.getDescriptionId() + ".message.entity_type_denied")); + return InteractionResult.FAIL; + } + + if (target.getType().is(OccultismTags.Entities.TRINITY_GEM_DENY_LIST) && stack.getItem().equals(OccultismItems.TRINITY_GEM_ITEM.get())) { player.sendSystemMessage( Component.translatable(this.getDescriptionId() + ".message.entity_type_denied")); return InteractionResult.FAIL; diff --git a/src/main/java/com/klikli_dev/occultism/common/item/tool/ritual_satchel/MultiBlockRitualSatchelItem.java b/src/main/java/com/klikli_dev/occultism/common/item/tool/ritual_satchel/MultiBlockRitualSatchelItem.java index a3e047c6a..39ce1f84a 100644 --- a/src/main/java/com/klikli_dev/occultism/common/item/tool/ritual_satchel/MultiBlockRitualSatchelItem.java +++ b/src/main/java/com/klikli_dev/occultism/common/item/tool/ritual_satchel/MultiBlockRitualSatchelItem.java @@ -58,7 +58,9 @@ protected Function4 { return config.grassChance; + }), Codec.floatRange(0.0f, 1.0f).fieldOf("flower_chance").forGetter((config) -> { + return config.flowerChance; }), Codec.floatRange(0.0f, 1.0f).fieldOf("tree_chance").forGetter((config) -> { return config.treeChance; }), Codec.floatRange(0.0f, 1.0f).fieldOf("vine_chance").forGetter((config) -> { @@ -69,6 +71,7 @@ public class MultiChunkFeatureConfig implements FeatureConfiguration { public final int featureSeedSalt; public final float grassChance; + public final float flowerChance; public final float treeChance; public final float vineChance; @@ -77,7 +80,7 @@ public class MultiChunkFeatureConfig implements FeatureConfiguration { public MultiChunkFeatureConfig(int maxChunksToRoot, int chanceToGenerate, int minGenerationHeight, - int maxGenerationHeight, int featureSeedSalt, float grassChance, float treeChance, + int maxGenerationHeight, int featureSeedSalt, float grassChance, float flowerChance, float treeChance, float vineChance, float ceilingLightChance, Holder otherworldTreeFeature) { this.maxChunksToRoot = maxChunksToRoot; @@ -86,6 +89,7 @@ public MultiChunkFeatureConfig(int maxChunksToRoot, int chanceToGenerate, int mi this.minGenerationHeight = minGenerationHeight; this.maxGenerationHeight = maxGenerationHeight; this.grassChance = grassChance; + this.flowerChance = grassChance; this.treeChance = treeChance; this.vineChance = vineChance; this.ceilingLightChance = ceilingLightChance; diff --git a/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java b/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java index 02bcacbd2..8d74eaad2 100644 --- a/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java +++ b/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java @@ -239,6 +239,7 @@ public static class StorageSettings { public final LongValue stabilizerTier4AdditionalMaxTotalItemCount; public final IntValue controllerMaxItemTypes; public final LongValue controllerMaxTotalItemCount; + public final IntValue stabilizedControllerStabilizers; public final BooleanValue unlinkWormholeOnBreak; public StorageSettings(ModConfigSpec.Builder builder) { @@ -273,7 +274,9 @@ public StorageSettings(ModConfigSpec.Builder builder) { this.controllerMaxTotalItemCount = builder.comment("The stack size the storage actuator uses.") .defineInRange("controllerMaxTotalItemCount", 256 * 1000L, 0, Long.MAX_VALUE); - + this.stabilizedControllerStabilizers = + builder.comment("The amount of stabilizers tier 4 in the stabilized storage actuator. (Don't auto change the recipe)") + .defineInRange("stabilizedControllerStabilizers", 7, 0, Integer.MAX_VALUE); this.unlinkWormholeOnBreak = builder.comment( "True to use the configured controllerStackSize for all items, instead of the stack sizes provided by " + diff --git a/src/main/java/com/klikli_dev/occultism/datagen/ItemModelsGenerator.java b/src/main/java/com/klikli_dev/occultism/datagen/ItemModelsGenerator.java index 2787b32a1..bfbc2a01d 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/ItemModelsGenerator.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/ItemModelsGenerator.java @@ -160,6 +160,8 @@ private void registerItemCommon() { this.name(OccultismItems.CHALK_RED_IMPURE.get()), this.name(OccultismItems.CHALK_WHITE.get()), this.name(OccultismItems.CHALK_WHITE_IMPURE.get()), + this.name(OccultismItems.CHALK_RAINBOW.get()), + this.name(OccultismItems.CHALK_VOID.get()), this.name(OccultismItems.COPPER_DUST.get()), this.name(OccultismItems.CRUELTY_ESSENCE.get()), this.name(OccultismItems.CRUSHED_BLACKSTONE.get()), @@ -243,10 +245,13 @@ private void registerItemFromBlock() { String[] items = { this.name(OccultismBlocks.CHISELED_OTHERSTONE_BRICKS.asItem()), this.name(OccultismBlocks.CRACKED_OTHERSTONE_BRICKS.asItem()), + this.name(OccultismBlocks.COPPER_SACRIFICIAL_BOWL.asItem()), this.name(OccultismBlocks.DIMENSIONAL_MINESHAFT.asItem()), + this.name(OccultismBlocks.ELDRITCH_CHALICE.asItem()), this.name(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.asItem()), this.name(OccultismBlocks.IESNIUM_BLOCK.asItem()), this.name(OccultismBlocks.IESNIUM_ORE.asItem()), + this.name(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.asItem()), this.name(OccultismBlocks.LARGE_CANDLE.asItem()), this.name(OccultismBlocks.LARGE_CANDLE_WHITE.asItem()), this.name(OccultismBlocks.LARGE_CANDLE_LIGHT_GRAY.asItem()), @@ -267,6 +272,7 @@ private void registerItemFromBlock() { this.name(OccultismBlocks.OTHERCOBBLESTONE.asItem()), this.name(OccultismBlocks.OTHERCOBBLESTONE_SLAB.asItem()), this.name(OccultismBlocks.OTHERCOBBLESTONE_STAIRS.asItem()), + this.name(OccultismBlocks.OTHERGLASS_NATURAL.asItem()), this.name(OccultismBlocks.OTHERPLANKS.asItem()), this.name(OccultismBlocks.OTHERPLANKS_FENCE_GATE.asItem()), this.name(OccultismBlocks.OTHERPLANKS_PRESSURE_PLATE.asItem()), @@ -277,6 +283,7 @@ private void registerItemFromBlock() { this.name(OccultismBlocks.OTHERSTONE_BRICKS_SLAB.asItem()), this.name(OccultismBlocks.OTHERSTONE_BRICKS_STAIRS.asItem()), this.name(OccultismBlocks.OTHERSTONE_PEDESTAL.asItem()), + this.name(OccultismBlocks.OTHERSTONE_PEDESTAL_SILVER.asItem()), this.name(OccultismBlocks.OTHERSTONE_PRESSURE_PLATE.asItem()), this.name(OccultismBlocks.OTHERSTONE_SLAB.asItem()), this.name(OccultismBlocks.OTHERSTONE_STAIRS.asItem()), @@ -292,13 +299,16 @@ private void registerItemFromBlock() { this.name(OccultismBlocks.SILVER_BLOCK.asItem()), this.name(OccultismBlocks.SILVER_ORE.asItem()), this.name(OccultismBlocks.SILVER_ORE_DEEPSLATE.asItem()), + this.name(OccultismBlocks.SILVER_SACRIFICIAL_BOWL.asItem()), this.name(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.asItem()), + this.name(OccultismBlocks.STORAGE_STABILIZER_TIER0.asItem()), this.name(OccultismBlocks.STORAGE_STABILIZER_TIER1.asItem()), this.name(OccultismBlocks.STORAGE_STABILIZER_TIER2.asItem()), this.name(OccultismBlocks.STORAGE_STABILIZER_TIER3.asItem()), this.name(OccultismBlocks.STORAGE_STABILIZER_TIER4.asItem()), this.name(OccultismBlocks.STRIPPED_OTHERWORLD_LOG.asItem()), - this.name(OccultismBlocks.STRIPPED_OTHERWORLD_WOOD.asItem()) + this.name(OccultismBlocks.STRIPPED_OTHERWORLD_WOOD.asItem()), + this.name(OccultismBlocks.TALLOW_BLOCK.asItem()) }; for (String item : items){ this.getBuilder(item) diff --git a/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java index 5f43b3390..38cef0b68 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java @@ -2103,7 +2103,9 @@ private BookEntryModel makePossessBeeEntry(CategoryEntryMap entryMap, char icon) a bee invoked by this way does not lose its stinger, always poison the target, attacks faster and can summon other bees when it takes damage. This is the only known method to obtain [](item://occultism:cursed_honey), eating will grants - a short regeneration buff. + a short regeneration buff.\\ + \\ + If this bee enters a hive, the djinni will return to [#](%1$s)The Other Place[#](). """.formatted(COLOR_PURPLE)); return BookEntryModel.create(this.modLoc(this.context().categoryId() + "/" + this.context().entryId()), this.context().entryName()) diff --git a/src/main/java/com/klikli_dev/occultism/datagen/PentacleProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/PentacleProvider.java index 8776b264d..61a2f30ae 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/PentacleProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/PentacleProvider.java @@ -355,7 +355,7 @@ private void start() { "__W_____W__", "_____W_____", "___________"), - new MappingBuilder().bowl().onlyWhiteChalk().ground().build()); + new MappingBuilder().bowl().whiteChalk().ground().build()); this.addPentacle("contact_wild_spirit", this.createPattern( "_____________", @@ -499,18 +499,18 @@ private MappingBuilder block(char c, Supplier b) { json.addProperty("block", BuiltInRegistries.BLOCK.getKey(b.get()).toString()); return this.element(c, json); } - private MappingBuilder block(char c, Block b) { + private MappingBuilder blockDisplay(char c, Supplier b, Supplier display) { JsonObject json = new JsonObject(); json.addProperty("type", "modonomicon:block"); - json.addProperty("block", b.toString()); + json.addProperty("block", BuiltInRegistries.BLOCK.getKey(b.get()).toString()); + json.addProperty("display", BuiltInRegistries.BLOCK.getKey(display.get()).toString()); return this.element(c, json); } - - private MappingBuilder blockDisplay(char c, Supplier b, Supplier display) { + private MappingBuilder tagDisplay(char c, TagKey tag, Supplier display) { JsonObject json = new JsonObject(); - json.addProperty("type", "modonomicon:block"); - json.addProperty("block", BuiltInRegistries.BLOCK.getKey(b.get()).toString()); + json.addProperty("type", "modonomicon:tag"); + json.addProperty("tag", "#" + tag.location()); json.addProperty("display", BuiltInRegistries.BLOCK.getKey(display.get()).toString()); return this.element(c, json); } @@ -530,7 +530,7 @@ private MappingBuilder tag(char c, TagKey tag) { } private MappingBuilder bowl() { - return this.block('0', OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL); + return this.tagDisplay('0', OccultismTags.Blocks.CENTER_SACRIFICIAL_BOWL, OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL); } private MappingBuilder candle() { return this.tag('1', OccultismTags.Blocks.CANDLES); @@ -546,55 +546,52 @@ private MappingBuilder wither() { } private MappingBuilder whiteChalk() { - return this.tag('W', OccultismTags.Blocks.FOUNDATION_GLYPHS_ANY); + return this.tagDisplay('W', OccultismTags.Blocks.FOUNDATION_GLYPHS_ANY, OccultismBlocks.CHALK_GLYPH_WHITE); } private MappingBuilder lightGrayChalk() { - return this.tag('S', OccultismTags.Blocks.FOUNDATION_GLYPHS_NO_WHITE); + return this.tagDisplay('S', OccultismTags.Blocks.FOUNDATION_GLYPHS_NO_WHITE, OccultismBlocks.CHALK_GLYPH_LIGHT_GRAY); } private MappingBuilder grayChalk() { - return this.tag('G', OccultismTags.Blocks.FOUNDATION_GLYPHS_DARK); + return this.tagDisplay('G', OccultismTags.Blocks.FOUNDATION_GLYPHS_DARK, OccultismBlocks.CHALK_GLYPH_GRAY); } private MappingBuilder blackChalk() { - return this.block('K', OccultismBlocks.CHALK_GLYPH_BLACK); + return this.tagDisplay('K', OccultismTags.Blocks.GLYPHS_BLACK, OccultismBlocks.CHALK_GLYPH_BLACK); } private MappingBuilder brownChalk() { - return this.block('B', OccultismBlocks.CHALK_GLYPH_BROWN); + return this.tagDisplay('B', OccultismTags.Blocks.GLYPHS_BROWN, OccultismBlocks.CHALK_GLYPH_BROWN); } private MappingBuilder redChalk() { - return this.block('R', OccultismBlocks.CHALK_GLYPH_RED); + return this.tagDisplay('R', OccultismTags.Blocks.GLYPHS_RED, OccultismBlocks.CHALK_GLYPH_RED); } private MappingBuilder orangeChalk() { - return this.block('O', OccultismBlocks.CHALK_GLYPH_ORANGE); + return this.tagDisplay('O', OccultismTags.Blocks.GLYPHS_ORANGE, OccultismBlocks.CHALK_GLYPH_ORANGE); } private MappingBuilder yellowChalk() { - return this.block('Y', OccultismBlocks.CHALK_GLYPH_YELLOW); + return this.tagDisplay('Y', OccultismTags.Blocks.GLYPHS_YELLOW, OccultismBlocks.CHALK_GLYPH_YELLOW); } private MappingBuilder limeChalk() { - return this.block('L', OccultismBlocks.CHALK_GLYPH_LIME); + return this.tagDisplay('L', OccultismTags.Blocks.GLYPHS_LIME, OccultismBlocks.CHALK_GLYPH_LIME); } private MappingBuilder greenChalk() { - return this.block('E', OccultismBlocks.CHALK_GLYPH_GREEN); + return this.tagDisplay('E', OccultismTags.Blocks.GLYPHS_GREEN, OccultismBlocks.CHALK_GLYPH_GREEN); } private MappingBuilder cyanChalk() { - return this.block('C', OccultismBlocks.CHALK_GLYPH_CYAN); + return this.tagDisplay('C', OccultismTags.Blocks.GLYPHS_CYAN, OccultismBlocks.CHALK_GLYPH_CYAN); } private MappingBuilder lightBlueChalk() { - return this.block('A', OccultismBlocks.CHALK_GLYPH_LIGHT_BLUE); + return this.tagDisplay('A', OccultismTags.Blocks.GLYPHS_LIGHT_BLUE, OccultismBlocks.CHALK_GLYPH_LIGHT_BLUE); } private MappingBuilder blueChalk() { - return this.block('U', OccultismBlocks.CHALK_GLYPH_BLUE); + return this.tagDisplay('U', OccultismTags.Blocks.GLYPHS_BLUE, OccultismBlocks.CHALK_GLYPH_BLUE); } private MappingBuilder purpleChalk() { - return this.block('X', OccultismBlocks.CHALK_GLYPH_PURPLE); + return this.tagDisplay('X', OccultismTags.Blocks.GLYPHS_PURPLE, OccultismBlocks.CHALK_GLYPH_PURPLE); } private MappingBuilder magentaChalk() { - return this.block('M', OccultismBlocks.CHALK_GLYPH_MAGENTA); + return this.tagDisplay('M', OccultismTags.Blocks.GLYPHS_MAGENTA, OccultismBlocks.CHALK_GLYPH_MAGENTA); } private MappingBuilder pinkChalk() { - return this.block('P', OccultismBlocks.CHALK_GLYPH_PINK); - } - private MappingBuilder onlyWhiteChalk() { - return this.block('W', OccultismBlocks.CHALK_GLYPH_WHITE); + return this.tagDisplay('P', OccultismTags.Blocks.GLYPHS_PINK, OccultismBlocks.CHALK_GLYPH_PINK); } private MappingBuilder eldritch(){ diff --git a/src/main/java/com/klikli_dev/occultism/datagen/StandardBlockStateProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/StandardBlockStateProvider.java index 713f8d62f..66deaedba 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/StandardBlockStateProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/StandardBlockStateProvider.java @@ -24,6 +24,7 @@ import com.klikli_dev.occultism.Occultism; import com.klikli_dev.occultism.common.block.ChalkGlyphBlock; +import com.klikli_dev.occultism.common.block.RainbowGlyphBlock; import com.klikli_dev.occultism.common.block.storage.StableWormholeBlock; import com.klikli_dev.occultism.registry.OccultismBlocks; import net.minecraft.core.Direction; @@ -54,15 +55,28 @@ protected void registerStatesAndModels() { .map(DeferredHolder::get) .filter(block -> block instanceof ChalkGlyphBlock) .forEach(this::generateGlyphBlockState); + OccultismBlocks.BLOCKS.getEntries().stream() + .map(DeferredHolder::get) + .filter(block -> block instanceof RainbowGlyphBlock) + .forEach(this::generateRainbowGlyphBlockState); this.simpleBlock(OccultismBlocks.STORAGE_CONTROLLER.get(), this.models().getExistingFile(this.modLoc("block/storage_controller"))); this.models().withExistingParent("item/storage_controller", this.modLoc("block/storage_controller")); this.simpleBlock(OccultismBlocks.STORAGE_CONTROLLER_BASE.get(), this.models().getExistingFile(this.modLoc("block/storage_controller_base"))); this.models().withExistingParent("item/storage_controller_base", this.modLoc("block/storage_controller_base")); + this.simpleBlock(OccultismBlocks.STORAGE_CONTROLLER_STABILIZED.get(), + this.models().getExistingFile(this.modLoc("block/storage_controller_stabilized"))); + this.models().withExistingParent("item/storage_controller_stabilized", this.modLoc("block/storage_controller_stabilized")); this.generateStableWormholeState(OccultismBlocks.STABLE_WORMHOLE.get()); this.directionalBlock(OccultismBlocks.SACRIFICIAL_BOWL.get(), this.models().getExistingFile(this.modLoc("block/sacrificial_bowl"))); + this.directionalBlock(OccultismBlocks.COPPER_SACRIFICIAL_BOWL.get(), + this.models().getExistingFile(this.modLoc("block/copper_sacrificial_bowl"))); + this.directionalBlock(OccultismBlocks.SILVER_SACRIFICIAL_BOWL.get(), + this.models().getExistingFile(this.modLoc("block/silver_sacrificial_bowl"))); + this.directionalBlock(OccultismBlocks.STORAGE_STABILIZER_TIER0.get(), + this.models().getExistingFile(this.modLoc("block/storage_stabilizer_tier0"))); this.directionalBlock(OccultismBlocks.STORAGE_STABILIZER_TIER1.get(), this.models().getExistingFile(this.modLoc("block/storage_stabilizer_tier1"))); this.directionalBlock(OccultismBlocks.STORAGE_STABILIZER_TIER2.get(), @@ -169,5 +183,24 @@ protected void generateGlyphBlockState(Block block) { .build(); }); } + protected void generateRainbowGlyphBlockState(Block block) { + ModelFile.ExistingModelFile parent = this.models() + .getExistingFile(this.modLoc("block/chalk_glyph/chalk_glyph")); + this.getVariantBuilder(block) + .forAllStatesExcept(state -> { + //this is called for every state combination + //create a child model for each glyph texture option + int sign = state.getValue(RainbowGlyphBlock.SIGN); + ModelFile subModel = this.models().getBuilder("block/chalk_glyph/" + sign).parent(parent) + .texture("texture", this.modLoc("block/chalk_glyph/" + sign)); + return ConfiguredModel.builder() + //load the child model + .modelFile(subModel) + // + .rotationY((int) state.getValue(BlockStateProperties.HORIZONTAL_FACING) + .toYRot()) + .build(); + }, RainbowGlyphBlock.COLOR); + } } diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/BindingRitualsCategory.java b/src/main/java/com/klikli_dev/occultism/datagen/book/BindingRitualsCategory.java index 7ad15068e..4247946aa 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/BindingRitualsCategory.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/BindingRitualsCategory.java @@ -10,9 +10,7 @@ import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; import com.klikli_dev.modonomicon.api.datagen.book.page.BookTextPageModel; import com.klikli_dev.occultism.datagen.OccultismBookProvider; -import com.klikli_dev.occultism.datagen.book.binding_rituals.ApprenticeRitualSatchelEntry; -import com.klikli_dev.occultism.datagen.book.binding_rituals.ArtisanalRitualSatchelEntry; -import com.klikli_dev.occultism.datagen.book.binding_rituals.DimensionalMineshaftEntry; +import com.klikli_dev.occultism.datagen.book.binding_rituals.*; import com.klikli_dev.occultism.datagen.book.pentacles.*; import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; import com.klikli_dev.occultism.registry.OccultismBlocks; @@ -31,17 +29,19 @@ public BindingRitualsCategory(OccultismBookProvider parent) { protected String[] generateEntryMap() { return new String[]{ "___________________________", - "_______b_e_x_p_q_r_________", + "_______e_x_p_q_r___________", "___________________________", - "_______d_h_c__w_v_s________", + "_______b_u_t_ĝ_ğ_Ť_________", "___________________________", - "___9_0______________y______", + "_______d___A_g_Č_h_c_______", "___________________________", - "_______f_z_a__g_ĝ_ğ________", + "___9_0_______________y____", "___________________________", - "_________o_n_m_____________", + "_______f_z_w_v_s_B_H______", "___________________________", - "___________i_j_k_l_________", + "_________a_m_i_j_k_l_______", + "___________________________", + "_________n_____o___ç_______", "___________________________" }; } @@ -125,6 +125,16 @@ protected void generateEntries() { .withCondition(BookEntryReadConditionModel.create().withEntry(craftDjinniID)); var craftFamiliarRing = this.add(this.makeCraftFamiliarRingEntry(this.entryMap, 'c')); craftFamiliarRing.withParent(BookEntryParentModel.create(craftSoulGem.getId())); + var craftTrinityGem = this.add(new TrinityGemEntry(this).generate('Ť')); + craftTrinityGem.withParent(BookEntryParentModel.create(craftSoulGem.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(contactEldritchID)); + + var craftIesniumSacrificialBowl = this.add(new IesniumSacrificialBowlEntry(this).generate('u')); + craftIesniumSacrificialBowl.withParent(BookEntryParentModel.create(craftInfusedPickaxe.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(craftAfritID)); + var craftIesniumAnvil = this.add(new IesniumAnvilEntry(this).generate('A')); + craftIesniumAnvil.withParent(BookEntryParentModel.create(craftInfusedPickaxe.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(craftMaridID)); var craftWildTrim = this.add(this.makeCraftWildTrimEntry(this.entryMap, 'w')); craftWildTrim.withParent(BookEntryParentModel.create(overview.getId())) @@ -134,9 +144,23 @@ protected void generateEntries() { .withCondition(BookEntryReadConditionModel.create().withEntry(contactWildID)); var craftDeepslate = this.add(this.makeCraftDeepslateEntry(this.entryMap, 's')); craftDeepslate.withParent(BookEntryParentModel.create(overview.getId())) - .withCondition(BookEntryReadConditionModel.create().withEntry(contactEldritchID)) - .hideWhileLocked(true); + .withCondition(BookEntryReadConditionModel.create().withEntry(contactWildID)); + var craftBeeNest = this.add(new BeeNestEntry(this).generate('B')); + craftBeeNest.withParent(BookEntryParentModel.create(overview.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(contactWildID)); + var craftBell = this.add(new BellEntry(this).generate('H')); + craftBell.withParent(BookEntryParentModel.create(overview.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(contactWildID)); + var craftEldritchChalice = this.add(new EldritchChaliceEntry(this).generate('t')); + craftEldritchChalice.withParent(BookEntryParentModel.create(craftIesniumSacrificialBowl.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(contactEldritchID)); + var craftStabilizedStorage = this.add(new StabilizedStorageEntry(this).generate('ç')); + craftStabilizedStorage.withParent(BookEntryParentModel.create(craftStabilizerTier4.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(contactEldritchID)); + var craftMasterChalks = this.add(new MasterChalksEntry(this).generate('Č')); + craftMasterChalks.withParent(BookEntryParentModel.create(overview.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(contactEldritchID)); var repairRituals = this.add(this.makeRepairEntry(this.entryMap, 'y')); repairRituals.withParent(BookEntryParentModel.create(overview.getId())) .withCondition(BookEntryReadConditionModel.create().withEntry(craftDjinniID)); @@ -644,7 +668,7 @@ private BookEntryModel makeCraftWildTrimEntry(CategoryEntryMap entryMap, char ic this.context().page("ritual"); var ritual = BookRitualRecipePageModel.create() - .withRecipeId1(this.modLoc("ritual/craft_wild_trim")); + .withRecipeId1(this.modLoc("ritual/misc_wild_trim")); return BookEntryModel.create(this.modLoc(this.context().categoryId() + "/" + this.context().entryId()), this.context().entryName()) .withIcon(Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE) diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/FamiliarRitualsCategory.java b/src/main/java/com/klikli_dev/occultism/datagen/book/FamiliarRitualsCategory.java index b7c2e0694..086f18a5c 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/FamiliarRitualsCategory.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/FamiliarRitualsCategory.java @@ -11,6 +11,7 @@ import com.klikli_dev.modonomicon.api.datagen.book.page.BookTextPageModel; import com.klikli_dev.occultism.datagen.OccultismBookProvider; import com.klikli_dev.occultism.datagen.book.familiar_rituals.DemonicPartnerEntry; +import com.klikli_dev.occultism.datagen.book.familiar_rituals.IesniumGolemEntry; import com.klikli_dev.occultism.datagen.book.familiar_rituals.ResurrectionEntry; import com.klikli_dev.occultism.datagen.book.pentacles.*; import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; @@ -26,11 +27,11 @@ public FamiliarRitualsCategory(OccultismBookProvider parent) { @Override public String[] generateEntryMap() { return new String[]{ - "________J_O__Y_____________", + "________J_O__Y__G__________", "___________________________", "_____a_X_S_L_M_T___________", "___________________________", - "___r_o___________Z_________", + "___r_o____________Z________", "___________________________", "_____H_W_K_N_Q_P___________", "___________________________", @@ -44,6 +45,7 @@ protected void generateEntries() { String possessDjinniID = this.modId() + ":" + PentaclesCategory.CATEGORY_ID + "/" + PossessDjinniEntry.ENTRY_ID; String summonDjinniID = this.modId() + ":" + PentaclesCategory.CATEGORY_ID + "/" + SummonDjinniEntry.ENTRY_ID; String possessAfritID = this.modId() + ":" + PentaclesCategory.CATEGORY_ID + "/" + PossessAfritEntry.ENTRY_ID; + String possessMaridID = this.modId() + ":" + PentaclesCategory.CATEGORY_ID + "/" + PossessMaridEntry.ENTRY_ID; String resurrectionID = this.modId() + ":" + PentaclesCategory.CATEGORY_ID + "/" + ResurrectSpiritEntry.ENTRY_ID; var overview = this.add(this.makeFamiliarsRitualsOverviewEntry(this.entryMap, 'o')); @@ -113,6 +115,9 @@ protected void generateEntries() { var demonicPartner = new DemonicPartnerEntry(this).generate('Z'); demonicPartner.withParent(BookEntryParentModel.create(overview.getId())) .withCondition(BookEntryReadConditionModel.create().withEntry(summonDjinniID)); + var iesniumGolem = new IesniumGolemEntry(this).generate('G'); + iesniumGolem.withParent(BookEntryParentModel.create(overview.getId())) + .withCondition(BookEntryReadConditionModel.create().withEntry(possessMaridID)); } @Override diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/GettingStartedCategory.java b/src/main/java/com/klikli_dev/occultism/datagen/book/GettingStartedCategory.java index e1e931370..684afb21a 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/GettingStartedCategory.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/GettingStartedCategory.java @@ -406,6 +406,15 @@ private BookEntryModel makeSpiritFireEntry(CategoryEntryMap entryMap, char icon) .withRecipeId1(this.modLoc("spirit_fire/spirit_attuned_gem")); //no text + this.context().page("otherflower_recipe"); + var otherflowerRecipe = BookSpiritFireRecipePageModel.create() + .withRecipeId1(this.modLoc("spirit_fire/otherflower")) + .withText(this.context().pageText()); + this.lang().add(this.context().pageText(), + """ + An easier way to clone any dye, mix this flower and the target color. You can also make ~~suspicious~~ delicious stews. + """); + return BookEntryModel.create(this.modLoc(this.context().categoryId() + "/" + this.context().entryId()), this.context().entryName()) .withDescription(this.context().entryDescription()) @@ -418,7 +427,8 @@ private BookEntryModel makeSpiritFireEntry(CategoryEntryMap entryMap, char icon) otherstoneRecipe, otherworldSaplingNaturalRecipe, otherworldAshesRecipe, - gemRecipe + gemRecipe, + otherflowerRecipe ); } @@ -945,8 +955,12 @@ private BookEntryModel makeRitualPrepBowlEntry(CategoryEntryMap entryMap, char i this.context().page("sacrificial_bowl_recipe"); var sacrificialBowlRecipe = BookCraftingRecipePageModel.create() - .withRecipeId1(this.modLoc("crafting/sacrificial_bowl")); - //no text + .withRecipeId1(this.modLoc("crafting/sacrificial_bowl")) + .withText(this.context().pageText()); + this.lang().add(this.context().pageText(), + """ + You can mix a sacrificial bowl with a copper or silver ingot to create variations with the same functionality. + """); this.context().page("golden_sacrificial_bowl"); @@ -1668,6 +1682,16 @@ When mined with the correct tools, it can be used to craft powerful items (you w Iesnium can be used to craft an improved pickaxe, spirit lamps, and other powerful items. Follow the progress in this book to learn more about it. """.formatted(COLOR_PURPLE)); + this.context().page("otherglass"); + var otherglass = BookCraftingRecipePageModel.create() + .withRecipeId1(this.modLoc("crafting/otherglass")) + .withText(this.context().pageText()); + this.lang().add(this.context().pageText(), + """ + One of the uses of iesnium is the creation of Otherglass, this block hides from common eyes and is revealed only to those who see the other world. To collect this you need an infused or iesnium pickaxe. + """.formatted(COLOR_PURPLE)); + + return BookEntryModel.create(this.modLoc(this.context().categoryId() + "/" + this.context().entryId()), this.context().entryName()) .withDescription(this.context().entryDescription()) .withIcon(OccultismBlocks.IESNIUM_ORE.get()) @@ -1677,7 +1701,8 @@ When mined with the correct tools, it can be used to craft powerful items (you w where, how, processing, - uses + uses, + otherglass ); } diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ApprenticeRitualSatchelEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ApprenticeRitualSatchelEntry.java index f7d464485..524a8611c 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ApprenticeRitualSatchelEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ApprenticeRitualSatchelEntry.java @@ -40,7 +40,7 @@ protected void generatePages() { this.pageTitle("About"); this.pageText(""" A ritual satchel can hold items needed to create pentacles for rituals, - if an item inside has less than 40 percent of durability the foil effect will stop. + if an item inside has less than 40 percent of durability the glint effect will stop. Other items cannot be placed in the satchel. \\ The satchel allows to speed up setting pentacles by automatically choosing the right items from the satchel, instead of manually selecting chalks, candles and other items to place them. diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ArtisanalRitualSatchelEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ArtisanalRitualSatchelEntry.java index e691d2229..7577fdb79 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ArtisanalRitualSatchelEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/ArtisanalRitualSatchelEntry.java @@ -42,7 +42,7 @@ protected void generatePages() { this.pageTitle("About"); this.pageText(""" A ritual satchel can hold items needed to create pentacles for rituals, - if an item inside has less than 40 percent of durability the foil effect will stop. + if an item inside has less than 40 percent of durability the glint effect will stop. Other items cannot be placed in the satchel. \\ The satchel sets up an entire pentacle at once, if all necessary items are present in the satchel.\\ diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/BeeNestEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/BeeNestEntry.java new file mode 100644 index 000000000..f24b24a05 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/BeeNestEntry.java @@ -0,0 +1,67 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; + +public class BeeNestEntry extends EntryProvider { + + public static final String ENTRY_ID = "bee_nest"; + + + public BeeNestEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(Items.BEE_NEST)) + .withText(this.context().pageText())); + this.pageText(""" + Unlike other rituals, creating a [](item://minecraft:bee_nest) is a service provided by {0} + and not bound any spirit to the final object. You sacrifice the items and the Wild Spirits + uses his power to forge that item for you. + + """, + this.color("Wild Spirits", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/misc_bee_nest")) + ); + //no text + } + + @Override + protected String entryName() { + return "Forge Bee nest"; + } + + @Override + protected String entryDescription() { + return "Not the bees..."; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(Items.BEE_NEST); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/BellEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/BellEntry.java new file mode 100644 index 000000000..71b4ab66a --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/BellEntry.java @@ -0,0 +1,67 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; + +public class BellEntry extends EntryProvider { + + public static final String ENTRY_ID = "bell"; + + + public BellEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(Items.BELL)) + .withText(this.context().pageText())); + this.pageText(""" + Unlike other rituals, creating a [](item://minecraft:bell) is a service provided by {0} + and not bound any spirit to the final object. You sacrifice the items and the Wild Spirits + uses his power to forge that item for you. + + """, + this.color("Wild Spirits", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/misc_bell")) + ); + //no text + } + + @Override + protected String entryName() { + return "Forge Bell"; + } + + @Override + protected String entryDescription() { + return "I got my bell"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(Items.BELL); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/DimensionalMineshaftEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/DimensionalMineshaftEntry.java index c9281d6f6..6950b26b2 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/DimensionalMineshaftEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/DimensionalMineshaftEntry.java @@ -52,6 +52,18 @@ protected void generatePages() { """ ); + this.page("redstone", () -> BookTextPageModel.create() + .withTitle(this.context().pageTitle()) + .withText(this.context().pageText())); + this.pageTitle("Redstone"); + this.pageText(""" + The dimensional mineshaft has two interactions with redstone: + 1. The spirit will stop working when receives a redstone signal; + 2. A comparator can be used to extract a signal based on occupied slots and lamp durability. + Tip, if the comparator sends a power of 10, it is better to stop the operations. + """ + ); + this.page("config", () -> BookTextPageModel.create() .withTitle(this.context().pageTitle()) .withText(this.context().pageText())); diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/EldritchChaliceEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/EldritchChaliceEntry.java new file mode 100644 index 000000000..fa7d80558 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/EldritchChaliceEntry.java @@ -0,0 +1,66 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.crafting.Ingredient; + +public class EldritchChaliceEntry extends EntryProvider { + + public static final String ENTRY_ID = "craft_eldritch_chalice"; + + + public EldritchChaliceEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(OccultismBlocks.ELDRITCH_CHALICE.asItem())) + .withText(this.context().pageText())); + this.pageText(""" + Forging an [](item://occultism:eldritch_chalice) is one service provide by {0}, this block will + helps occult masters twist time, performing any ritual instantly.\\ + All other things will works like the Golden or Iesnium Sacrificial Bowl. + """, + this.color("Eldritch Spirits", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/misc_eldritch_chalice")) + ); + //no text + } + + @Override + protected String entryName() { + return "Eldritch Chalice"; + } + + @Override + protected String entryDescription() { + return "Is it fast enough now?"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(OccultismBlocks.ELDRITCH_CHALICE.asItem()); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/IesniumAnvilEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/IesniumAnvilEntry.java new file mode 100644 index 000000000..e10af67cc --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/IesniumAnvilEntry.java @@ -0,0 +1,81 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookTextPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.crafting.Ingredient; + +public class IesniumAnvilEntry extends EntryProvider { + + public static final String ENTRY_ID = "craft_iesnium_anvil"; + + + public IesniumAnvilEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(OccultismBlocks.IESNIUM_ANVIL.asItem())) + .withText(this.context().pageText())); + this.pageText(""" + The [](item://occultism:iesnium_anvil) is a {0} infusion. + This anvil has some improvements: + 1. Is unbreakable; + 2. Can exceed the maximum level of enchantments by 1; + 3. Marid will pay half of the showed level cost (round up); + 4. The cost increase of working with the same item is reduced; + 5. The maximum cost limit is increased; + """, + this.color("Marid", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/craft_iesnium_anvil")) + ); + //no text + + this.page("apothic", () -> BookTextPageModel.create() + .withTitle(this.context().pageTitle()) + .withText(this.context().pageText())); + this.pageTitle("Apotheosis Information"); + this.pageText(""" + When using {0} you can get all enchantments at level 10 instead of one level higher than the maximum + """, + this.color("Apothic Enchanting Mod", ChatFormatting.DARK_PURPLE) + ); + } + + @Override + protected String entryName() { + return "Iesnium Anvil"; + } + + @Override + protected String entryDescription() { + return "Upgraded Anvil"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(OccultismBlocks.IESNIUM_ANVIL.asItem()); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/IesniumSacrificialBowlEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/IesniumSacrificialBowlEntry.java new file mode 100644 index 000000000..711582ebc --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/IesniumSacrificialBowlEntry.java @@ -0,0 +1,67 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.crafting.Ingredient; + +public class IesniumSacrificialBowlEntry extends EntryProvider { + + public static final String ENTRY_ID = "craft_iesnium_sacrificial_bowl"; + + + public IesniumSacrificialBowlEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.asItem())) + .withText(this.context().pageText())); + this.pageText(""" + The [](item://occultism:iesnium_sacrificial_bowl) is an {0} infusion + that helps expert occultists save time, + performing any ritual in only a quarter of the normal time. + All other things will works like the Golden Sacrificial Bowl. + """, + this.color("Afrit", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/craft_iesnium_sacrificial_bowl")) + ); + //no text + } + + @Override + protected String entryName() { + return "Iesnium Sacrificial Bowl"; + } + + @Override + protected String entryDescription() { + return "Faster Rituals"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.asItem()); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/MasterChalksEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/MasterChalksEntry.java new file mode 100644 index 000000000..5012579ff --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/MasterChalksEntry.java @@ -0,0 +1,82 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.klikli_dev.occultism.registry.OccultismItems; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.crafting.Ingredient; + +public class MasterChalksEntry extends EntryProvider { + + public static final String ENTRY_ID = "craft_master_chalks"; + + + public MasterChalksEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(OccultismItems.CHALK_RAINBOW)) + .withText(this.context().pageText())); + this.pageText(""" + Forging the [](item://occultism:chalk_rainbow) is a service provided by an {0}. + This chalk can replace any non-foundation chalk, with extra features. + 1. Use a [](item://occultism:spirit_attuned_gem) to toggle the random color changes or + use any dye to set the color of glyph, items will not be consumed. + 2. Use this chalk in a glyph while crouched will erase the glyph, acting as a [](item://occultism:brush). + """, + this.color("Eldritch Spirit", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/misc_chalk_rainbow")) + ); + //no text + this.page("spotlight2", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(OccultismItems.CHALK_VOID)) + .withText(this.context().pageText())); + this.pageText(""" + Forging the [](item://occultism:chalk_void) is a service provided by an {0}. + This chalk can replace any chalk and has the same abilities as the [](item://occultism:chalk_rainbow). + """, + this.color("Eldritch Spirit", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual2", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/misc_chalk_void")) + ); + //no text + } + + @Override + protected String entryName() { + return "Mastery Chalks"; + } + + @Override + protected String entryDescription() { + return "Choose your colors"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(OccultismItems.CHALK_RAINBOW); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/StabilizedStorageEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/StabilizedStorageEntry.java new file mode 100644 index 000000000..09fa3cb22 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/StabilizedStorageEntry.java @@ -0,0 +1,68 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.crafting.Ingredient; + +public class StabilizedStorageEntry extends EntryProvider { + + public static final String ENTRY_ID = "craft_stabilized_storage"; + + + public StabilizedStorageEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(OccultismBlocks.STORAGE_CONTROLLER_STABILIZED.asItem())) + .withText(this.context().pageText())); + this.pageText(""" + Forging the [](item://occultism:storage_controller_stabilized) is one service provide by {0}, + this block will helps occult masters twist space, placing the stabilizers in the same + position as the actuator in some extra-planar dimension invisible even to the best eyes.\\ + By default this item receives one bonus stabilizer tier 4\\ + Other external stabilizers do not affect this block. + """, + this.color("Eldritch Spirits", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/misc_stabilized_storage")) + ); + //no text + } + + @Override + protected String entryName() { + return "Stabilized Dimensional Storage Actuator"; + } + + @Override + protected String entryDescription() { + return "Compact"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(OccultismBlocks.STORAGE_CONTROLLER_STABILIZED.asItem()); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/TrinityGemEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/TrinityGemEntry.java new file mode 100644 index 000000000..a6e8a7498 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/binding_rituals/TrinityGemEntry.java @@ -0,0 +1,69 @@ +package com.klikli_dev.occultism.datagen.book.binding_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookSpotlightPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.klikli_dev.occultism.registry.OccultismBlocks; +import com.klikli_dev.occultism.registry.OccultismItems; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.crafting.Ingredient; + +public class TrinityGemEntry extends EntryProvider { + + public static final String ENTRY_ID = "trinity_gem"; + + + public TrinityGemEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + this.page("spotlight", () -> BookSpotlightPageModel.create() + .withItem(Ingredient.of(OccultismItems.TRINITY_GEM_ITEM)) + .withText(this.context().pageText())); + this.pageText(""" + Forging the [](item://occultism:trinity_gem) is a service provided by an {0}. + This gem is upgraded version of [](item://occultism:soul_gem) created with + 3 distinct essences, 3 powerful dusts and 3 iesnium dusts. + The trinity gem has a smaller entity blacklist (none by default), but some mobs might still be + incompatible like the ender dragon. + """, + this.color("Eldritch Spirit", ChatFormatting.DARK_PURPLE) + ); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/misc_trinity_gem")) + ); + //no text + } + + @Override + protected String entryName() { + return "Trinity Gem"; + } + + @Override + protected String entryDescription() { + return "Really catch all!"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(OccultismItems.TRINITY_GEM_ITEM); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/familiar_rituals/IesniumGolemEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/familiar_rituals/IesniumGolemEntry.java new file mode 100644 index 000000000..5d8df33bd --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/familiar_rituals/IesniumGolemEntry.java @@ -0,0 +1,89 @@ +package com.klikli_dev.occultism.datagen.book.familiar_rituals; + +import com.klikli_dev.modonomicon.api.datagen.CategoryProvider; +import com.klikli_dev.modonomicon.api.datagen.EntryBackground; +import com.klikli_dev.modonomicon.api.datagen.EntryProvider; +import com.klikli_dev.modonomicon.api.datagen.book.BookIconModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookEntityPageModel; +import com.klikli_dev.modonomicon.api.datagen.book.page.BookTextPageModel; +import com.klikli_dev.occultism.integration.modonomicon.pages.BookRitualRecipePageModel; +import com.klikli_dev.occultism.registry.OccultismItems; +import com.mojang.datafixers.util.Pair; +import net.minecraft.ChatFormatting; + +public class IesniumGolemEntry extends EntryProvider { + + public static final String ENTRY_ID = "iesnium_golem"; + + + public IesniumGolemEntry(CategoryProvider parent) { + super(parent); + } + + @Override + protected void generatePages() { + + this.page("golem", () -> BookEntityPageModel.create() + .withEntityId("occultism:iesnium_golem") + .withEntityName(this.context().pageTitle()) + .withText(this.context().pageText()) + ); + this.pageTitle("Iesnium Golem"); + this.pageText("**Provides:** {0}", + this.color("Immortal area protector", ChatFormatting.DARK_PURPLE)); + + this.page("ritual", () -> BookRitualRecipePageModel.create() + .withRecipeId1(this.modLoc("ritual/possess_iesnium_golem")) + ); + this.page("description", () -> BookTextPageModel.create() + .withTitle(this.context().pageTitle()) + .withText(this.context().pageText()) + ); + + this.pageTitle("Iesnium Golem"); + this.pageText(""" + An Iesnium Golem is a direct upgrade from a regular Iron Golem, this new version is much stronger and invulnerable. \\ + Only a player can dismiss them, by hitting while crouched, returning the {0}. + """, + this.itemLink(OccultismItems.SOUL_SHARD_ITEM.get())); + + this.page("familiar", () -> BookTextPageModel.create() + .withTitle(this.context().pageTitle()) + .withText(this.context().pageText())); + this.pageTitle("Not a Familiar"); + this.pageText(""" + The Iesnium Golem Chapter is part of the Familiar Category of this book because of the similarities, however a golem is not exactly a familiar since it does not have an owner. + \\ + \\ + As such, they also cannot be stored in a {0}. You can, however, use a {1} as for any other being. + """, + this.itemLink(OccultismItems.FAMILIAR_RING.get()), + this.itemLink(OccultismItems.SOUL_GEM_ITEM.get()) + ); + } + + @Override + protected String entryName() { + return "Iesnium Golem"; + } + + @Override + protected String entryDescription() { + return "Intangible golem"; + } + + @Override + protected Pair entryBackground() { + return EntryBackground.DEFAULT; + } + + @Override + protected BookIconModel entryIcon() { + return BookIconModel.create(this.modLoc("textures/gui/book/iesnium_golem.png")); + } + + @Override + protected String entryId() { + return ENTRY_ID; + } +} diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactEldritchSpiritEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactEldritchSpiritEntry.java index b1b219dcc..37e71e66d 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactEldritchSpiritEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactEldritchSpiritEntry.java @@ -29,7 +29,8 @@ protected void generatePages() { this.pageText(""" **Purpose:** Contact {0}\\ \\ - This is a very strange pentacle that you dont understand for now. + This strange pentacle uses forbidden knowledge, bringing together paraphernalia from ancient traditions.\\ + The level of power that can be achieved almost cheats the common reality. """, this.color("Eldritch", ChatFormatting.DARK_PURPLE) ); @@ -43,7 +44,10 @@ protected void generatePages() { this.pageTitle("Uses"); this.pageText(""" - [Eldritch Ancient Miner](entry://crafting_rituals/craft_ancient_miner) - - [Reinforced Deepslate](entry://crafting_rituals/craft_reinforced_deepslate) + - [Stabilized Storage](entry://crafting_rituals/craft_stabilized_storage) + - [Eldritch Chalice](entry://crafting_rituals/craft_eldritch_chalice) + - [Mastery Chalks](entry://crafting_rituals/craft_master_chalks) + - [Trinity Gem](entry://crafting_rituals/trinity_gem) """ ); diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactWildSpiritEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactWildSpiritEntry.java index 70bff927d..c12a682dc 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactWildSpiritEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ContactWildSpiritEntry.java @@ -66,6 +66,9 @@ protected void generatePages() { this.pageText(""" - [Wild Armor Trim Smithing Template](entry://crafting_rituals/craft_wild_trim) - [Budding Amethyst](entry://crafting_rituals/craft_budding_amethyst) + - [Reinforced Deepslate](entry://crafting_rituals/craft_reinforced_deepslate) + - [Bee Nest](entry://crafting_rituals/bee_nest) + - [Bell](entry://crafting_rituals/bell) """ ); } diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftAfritEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftAfritEntry.java index 8ffd3729a..0a5bf04d9 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftAfritEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftAfritEntry.java @@ -46,6 +46,7 @@ protected void generatePages() { ); this.pageTitle("Uses"); this.pageText(""" + - [Iesnium Sacrificial Bowl](entry://crafting_rituals/craft_iesnium_sacrificial_bowl) - [Storage Stabilizer Tier 3](entry://crafting_rituals/craft_stabilizer_tier3) - [Afrit Deep Ore Miner](entry://crafting_rituals/craft_afrit_miner) - [Artisanal Ritual Satchel](entry://crafting_rituals/artisanal_ritual_satchel) diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftMaridEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftMaridEntry.java index eee577945..6f8ade82f 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftMaridEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/CraftMaridEntry.java @@ -48,6 +48,7 @@ protected void generatePages() { this.pageText(""" - [Storage Stabilizer Tier 4](entry://crafting_rituals/craft_stabilizer_tier4) - [Marid Master Miner](entry://crafting_rituals/craft_marid_miner) + - [Iesnium Anvil](entry://crafting_rituals/craft_iesnium_anvil) """ ); diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/PossessMaridEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/PossessMaridEntry.java index f3ce87f06..a62d4b90e 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/PossessMaridEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/PossessMaridEntry.java @@ -44,6 +44,7 @@ protected void generatePages() { ); this.pageTitle("Uses"); this.pageText(""" + - [Iesnium Golem](entry://familiar_rituals/iesnium_golem) - [Cruelty Essence](entry://possession_rituals/possess_goat) """ ); diff --git a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ResurrectSpiritEntry.java b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ResurrectSpiritEntry.java index a5de9a8c6..276e72295 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ResurrectSpiritEntry.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/book/pentacles/ResurrectSpiritEntry.java @@ -31,13 +31,9 @@ protected void generatePages() { **Purpose:** Resurrect a {0}\\ \\ **Susjes Simple Circle** is a simple pentacle that returns the physical form of a spirit that has - been slaughtered, not needing much to do so.\\ - \\ - **Note:** This is the only pentacle where the {1} cannot be replaced with another better {2}. + been slaughtered, not needing much to do so. """, - this.color("Familiar", ChatFormatting.DARK_PURPLE), - this.color("White Chalk", ChatFormatting.LIGHT_PURPLE), - this.color("Foundation Chalk", ChatFormatting.LIGHT_PURPLE) + this.color("Familiar", ChatFormatting.DARK_PURPLE) ); this.page("multiblock", () -> BookMultiblockPageModel.create().withMultiblockId(this.modLoc(ENTRY_ID))); diff --git a/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java index df2a3755d..f3c278d7c 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java @@ -82,6 +82,7 @@ public void addItemMessages() { this.add(OccultismItems.DIVINATION_ROD.get().getDescriptionId() + ".message.linked_block", "The divination rod is now attuned to %s."); this.add(OccultismItems.DIVINATION_ROD.get().getDescriptionId() + ".message.no_link_found", "There is no resonance with this block."); this.add(OccultismItems.SOUL_GEM_ITEM.get().getDescriptionId() + ".message.entity_type_denied", "Soul gems cannot contain this type of being."); + this.add(OccultismItems.TRINITY_GEM_ITEM.get().getDescriptionId() + ".message.entity_type_denied", "Trinity gems cannot contain this type of being."); } public void addItemTooltips() { @@ -129,6 +130,8 @@ public void addItemTooltips() { this.add(OccultismItems.MINER_ANCIENT_ELDRITCH.get().getDescriptionId() + ".tooltip", "Something will mine random raw ores blocks, gems blocks and rare ores in the mining dimension."); this.add(OccultismItems.SOUL_GEM_ITEM.get().getDescriptionId() + ".tooltip_filled", "Contains a captured %s."); this.add(OccultismItems.SOUL_GEM_ITEM.get().getDescriptionId() + ".tooltip_empty", "Use on a creature to capture it."); + this.add(OccultismItems.TRINITY_GEM_ITEM.get().getDescriptionId() + ".tooltip_filled", "Contains a captured %s."); + this.add(OccultismItems.TRINITY_GEM_ITEM.get().getDescriptionId() + ".tooltip_empty", "Use on a creature to capture it."); this.add(OccultismItems.SATCHEL.get().getDescriptionId() + ".tooltip", "%s is bound to this satchel."); this.add(OccultismItems.RITUAL_SATCHEL_T1.get().getDescriptionId() + ".tooltip", "%s is bound to this satchel."); this.add(OccultismItems.RITUAL_SATCHEL_T2.get().getDescriptionId() + ".tooltip", "%s is bound to this satchel."); @@ -171,7 +174,7 @@ private void addItems() { A basic ritual satchel that can place ritual circles block by block. Right-Click a preview block to place it out of the satchel. Shift-Right-Click to open the satchel and add ritual ingredients. - If an item inside has less than 40% of durability the foil effect will stop. + If an item inside has less than 40% of durability the glint effect will stop. """ ); this.addItem(OccultismItems.RITUAL_SATCHEL_T2, "Artisanal Ritual Satchel"); @@ -181,7 +184,7 @@ private void addItems() { Right-Click any preview block to place all preview blocks out of the satchel. Shift-Right-Click to open the satchel and add ritual ingredients. Right-Click a Golden Bowl to remove the ritual circle and collect the ingredients. - If an item inside has less than 40% of durability the foil effect will stop. + If an item inside has less than 40% of durability the glint effect will stop. """ ); @@ -205,6 +208,8 @@ private void addItems() { this.addItem(OccultismItems.CHALK_BLUE, "Blue Chalk"); this.addItem(OccultismItems.CHALK_MAGENTA, "Magenta Chalk"); this.addItem(OccultismItems.CHALK_PINK, "Pink Chalk"); + this.addItem(OccultismItems.CHALK_RAINBOW, "Rainbow Chalk"); + this.addItem(OccultismItems.CHALK_VOID, "Void Chalk"); this.addItem(OccultismItems.CHALK_YELLOW_IMPURE, "Impure Yellow Chalk"); this.addItem(OccultismItems.CHALK_PURPLE_IMPURE, "Impure Purple Chalk"); this.addItem(OccultismItems.CHALK_RED_IMPURE, "Impure Red Chalk"); @@ -292,6 +297,8 @@ private void addItems() { this.addItem(OccultismItems.MINING_DIMENSION_CORE_PIECE, "Mining Dimension Core Piece"); this.addItem(OccultismItems.SOUL_GEM_ITEM, "Soul Gem"); this.add(OccultismItems.SOUL_GEM_ITEM.get().getDescriptionId() + "_empty", "Empty Soul Gem"); + this.addItem(OccultismItems.TRINITY_GEM_ITEM, "Trinity Gem"); + this.add(OccultismItems.TRINITY_GEM_ITEM.get().getDescriptionId() + "_empty", "Empty Trinity Gem"); this.addItem(OccultismItems.SOUL_SHARD_ITEM, "Soul Shard"); this.addItem(OccultismItems.SATCHEL, "Surprisingly Substantial Satchel"); this.addItem(OccultismItems.FAMILIAR_RING, "Familiar Ring"); @@ -337,6 +344,7 @@ private void addItems() { this.addItem(OccultismItems.SPAWN_EGG_PARROT_FAMILIAR, "Parrot Familiar Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_DEMONIC_WIFE, "Demonic Wife Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_DEMONIC_HUSBAND, "Demonic Husband Spawn Egg"); + this.addItem(OccultismItems.SPAWN_EGG_IESNIUM_GOLEM, "Iesnium Golem Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_WILD_HORDE_HUSK, "Wild Horde Husk Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_WILD_HORDE_DROWNED, "Wild Horde Drowned Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_WILD_HORDE_CREEPER, "Wild Horde Creeper Spawn Egg"); @@ -371,7 +379,7 @@ private void addItems() { private void addBlocks() { //"block\.occultism\.(.*?)": "(.*)", //this.addBlock\(OccultismItems.\U\1\E, "\2"\); - + this.addBlock(OccultismBlocks.OTHERGLASS, "Otherglass"); this.addBlock(OccultismBlocks.OTHERSTONE, "Otherstone"); this.addBlock(OccultismBlocks.OTHERSTONE_STAIRS, "Otherstone Stairs"); this.addBlock(OccultismBlocks.OTHERSTONE_SLAB, "Otherstone Slab"); @@ -393,7 +401,10 @@ private void addBlocks() { this.addBlock(OccultismBlocks.CHISELED_OTHERSTONE_BRICKS, "Chiseled Otherstone Bricks"); this.addBlock(OccultismBlocks.CRACKED_OTHERSTONE_BRICKS, "Cracked Otherstone Bricks"); this.addBlock(OccultismBlocks.OTHERSTONE_PEDESTAL, "Otherstone Pedestal"); + this.addBlock(OccultismBlocks.OTHERSTONE_PEDESTAL_SILVER, "Silver Otherstone Pedestal"); this.addBlock(OccultismBlocks.SACRIFICIAL_BOWL, "Sacrificial Bowl"); + this.addBlock(OccultismBlocks.COPPER_SACRIFICIAL_BOWL, "Copper Sacrificial Bowl"); + this.addBlock(OccultismBlocks.SILVER_SACRIFICIAL_BOWL, "Silver Sacrificial Bowl"); this.addBlock(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL, "Golden Sacrificial Bowl"); this.addBlock(OccultismBlocks.CHALK_GLYPH_WHITE, "White Chalk Glyph"); this.addBlock(OccultismBlocks.CHALK_GLYPH_YELLOW, "Yellow Chalk Glyph"); @@ -411,33 +422,37 @@ private void addBlocks() { this.addBlock(OccultismBlocks.CHALK_GLYPH_BLUE, "Blue Chalk Glyph"); this.addBlock(OccultismBlocks.CHALK_GLYPH_MAGENTA, "Magenta Chalk Glyph"); this.addBlock(OccultismBlocks.CHALK_GLYPH_PINK, "Pink Chalk Glyph"); + this.addBlock(OccultismBlocks.CHALK_GLYPH_RAINBOW, "Rainbow Chalk Glyph"); + this.addBlock(OccultismBlocks.CHALK_GLYPH_VOID, "Void Chalk Glyph"); this.addBlock(OccultismBlocks.STORAGE_CONTROLLER, "Dimensional Storage Actuator"); + this.addBlock(OccultismBlocks.STORAGE_CONTROLLER_STABILIZED, "Stabilized Dimensional Storage Actuator"); this.addBlock(OccultismBlocks.STORAGE_CONTROLLER_BASE, "Storage Actuator Base"); + this.addBlock(OccultismBlocks.STORAGE_STABILIZER_TIER0, "Dimensional Storage Stabilizer Base"); this.addBlock(OccultismBlocks.STORAGE_STABILIZER_TIER1, "Tier 1 Dimensional Storage Stabilizer"); this.addBlock(OccultismBlocks.STORAGE_STABILIZER_TIER2, "Tier 2 Dimensional Storage Stabilizer"); this.addBlock(OccultismBlocks.STORAGE_STABILIZER_TIER3, "Tier 3 Dimensional Storage Stabilizer"); this.addBlock(OccultismBlocks.STORAGE_STABILIZER_TIER4, "Tier 4 Dimensional Storage Stabilizer"); this.addBlock(OccultismBlocks.STABLE_WORMHOLE, "Stable Wormhole"); this.addBlock(OccultismBlocks.DATURA, "Demon's Dream"); - - this.add("block.occultism.otherworld_sapling", "Otherworld Sapling"); - this.add("block.occultism.otherworld_leaves", "Otherworld Leaves"); - this.add("block.occultism.otherworld_log", "Otherworld Log"); - this.add("block.occultism.otherworld_wood", "Otherworld Wood"); - this.add("block.occultism.stripped_otherworld_log", "Stripped Otherworld Log"); - this.add("block.occultism.stripped_otherworld_wood", "Stripped Otherworld Wood"); - this.add("block.occultism.otherplanks", "Otherplanks"); - this.add("block.occultism.otherplanks_stairs", "Otherplanks Stairs"); - this.add("block.occultism.otherplanks_slab", "Otherplanks Slab"); - this.add("block.occultism.otherplanks_fence", "Otherplanks Fence"); - this.add("block.occultism.otherplanks_fence_gate", "Otherplanks Fence Gate"); - this.add("block.occultism.otherplanks_door", "Otherplanks Door"); - this.add("block.occultism.otherplanks_trapdoor", "Otherplanks Trapdoor"); - this.add("block.occultism.otherplanks_pressure_plate", "Otherplanks Pressure Plate"); - this.add("block.occultism.otherplanks_button", "Otherplanks Button"); - this.add("block.occultism.otherplanks_sign", "Otherplanks Sign"); - this.add("block.occultism.otherplanks_hanging_sign", "Otherplanks Hanging Sign"); - + this.addBlock(OccultismBlocks.OTHERFLOWER, "Otherflower"); + this.addBlock(OccultismBlocks.OTHERWORLD_SAPLING, "Otherworld Sapling"); + this.addBlock(OccultismBlocks.OTHERWORLD_LEAVES, "Otherworld Leaves"); + this.addBlock(OccultismBlocks.OTHERWORLD_LOG, "Otherworld Log"); + this.addBlock(OccultismBlocks.OTHERWORLD_WOOD, "Otherworld Wood"); + this.addBlock(OccultismBlocks.STRIPPED_OTHERWORLD_LOG, "Stripped Otherworld Log"); + this.addBlock(OccultismBlocks.STRIPPED_OTHERWORLD_WOOD, "Stripped Otherworld Wood"); + this.addBlock(OccultismBlocks.OTHERPLANKS, "Otherplanks"); + this.addBlock(OccultismBlocks.OTHERPLANKS_STAIRS, "Otherplanks Stairs"); + this.addBlock(OccultismBlocks.OTHERPLANKS_SLAB, "Otherplanks Slab"); + this.addBlock(OccultismBlocks.OTHERPLANKS_FENCE, "Otherplanks Fence"); + this.addBlock(OccultismBlocks.OTHERPLANKS_FENCE_GATE, "Otherplanks Fence Gate"); + this.addBlock(OccultismBlocks.OTHERPLANKS_DOOR, "Otherplanks Door"); + this.addBlock(OccultismBlocks.OTHERPLANKS_TRAPDOOR, "Otherplanks Trapdoor"); + this.addBlock(OccultismBlocks.OTHERPLANKS_PRESSURE_PLATE, "Otherplanks Pressure Plate"); + this.addBlock(OccultismBlocks.OTHERPLANKS_BUTTON, "Otherplanks Button"); + this.addBlock(OccultismBlocks.OTHERPLANKS_SIGN, "Otherplanks Sign"); + this.addBlock(OccultismBlocks.OTHERPLANKS_HANGING_SIGN, "Otherplanks Hanging Sign"); + this.addBlock(OccultismBlocks.TALLOW_BLOCK, "Tallow Block"); this.addBlock(OccultismBlocks.SPIRIT_FIRE, "Spiritfire"); this.addBlock(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL, "Spirit Attuned Crystal"); this.addBlock(OccultismBlocks.LARGE_CANDLE, "Large Candle"); @@ -459,9 +474,11 @@ private void addBlocks() { this.addBlock(OccultismBlocks.LARGE_CANDLE_PURPLE, "Large Purple Candle"); this.addBlock(OccultismBlocks.SILVER_ORE, "Silver Ore"); this.addBlock(OccultismBlocks.SILVER_ORE_DEEPSLATE, "Deepslate Silver Ore"); + this.addBlock(OccultismBlocks.IESNIUM_ANVIL, "Iesnium Anvil"); this.addBlock(OccultismBlocks.IESNIUM_ORE, "Iesnium Ore"); this.addBlock(OccultismBlocks.SILVER_BLOCK, "Block of Silver"); this.addBlock(OccultismBlocks.IESNIUM_BLOCK, "Block of Iesnium"); + this.addBlock(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL, "Iesnium Sacrificial Bowl"); this.addBlock(OccultismBlocks.RAW_SILVER_BLOCK, "Block of Raw Silver"); this.addBlock(OccultismBlocks.RAW_IESNIUM_BLOCK, "Block of Raw Iesnium"); this.addBlock(OccultismBlocks.DIMENSIONAL_MINESHAFT, "Dimensional Mineshaft"); @@ -471,6 +488,7 @@ private void addBlocks() { this.addBlock(OccultismBlocks.SPIRIT_LANTERN, "Spirit Lantern"); this.addBlock(OccultismBlocks.SPIRIT_CAMPFIRE, "Spirit Campfire"); this.addBlock(OccultismBlocks.SPIRIT_TORCH, "Spirit Torch"); //spirit wall torch automatically uses the same translation + this.addBlock(OccultismBlocks.ELDRITCH_CHALICE, "Eldritch Chalice"); } private void addEntities() { @@ -520,6 +538,7 @@ private void addEntities() { this.addEntityType(OccultismEntities.THROWN_SWORD, "Thrown Sword"); this.addEntityType(OccultismEntities.DEMONIC_WIFE, "Demonic Wife"); this.addEntityType(OccultismEntities.DEMONIC_HUSBAND, "Demonic Husband"); + this.addEntityType(OccultismEntities.IESNIUM_GOLEM, "Iesnium Golem"); this.addEntityType(OccultismEntities.WILD_HORDE_HUSK, "Wild Horde Husk"); this.addEntityType(OccultismEntities.WILD_HORDE_DROWNED, "Wild Horde Drowned"); this.addEntityType(OccultismEntities.WILD_HORDE_CREEPER, "Wild Horde Creeper"); @@ -598,6 +617,7 @@ private void addMiscTranslations() { //Ritual Sacrifices this.add("ritual.occultism.sacrifice.cows", "Cow"); this.add("ritual.occultism.sacrifice.bats", "Bat"); + this.add("ritual.occultism.sacrifice.bees", "Bee"); this.add("ritual.occultism.sacrifice.zombies", "Zombie"); this.add("ritual.occultism.sacrifice.parrots", "Parrot"); this.add("ritual.occultism.sacrifice.chicken", "Chicken"); @@ -607,6 +627,7 @@ private void addMiscTranslations() { this.add("ritual.occultism.sacrifice.horses", "Horse"); this.add("ritual.occultism.sacrifice.sheep", "Sheep"); this.add("ritual.occultism.sacrifice.llamas", "Llama"); + this.add("ritual.occultism.sacrifice.goats", "Goat"); this.add("ritual.occultism.sacrifice.snow_golem", "Snow Golem"); this.add("ritual.occultism.sacrifice.iron_golem", "Iron Golem"); this.add("ritual.occultism.sacrifice.spiders", "Spider"); @@ -623,6 +644,7 @@ private void addMiscTranslations() { this.add("ritual.occultism.sacrifice.tadpoles", "Tadpole"); this.add("ritual.occultism.sacrifice.allay", "Allay"); this.add("ritual.occultism.sacrifice.warden", "Warden"); + this.add("ritual.occultism.sacrifice.ravager", "Ravager"); //Network Message this.add("network.messages.occultism.request_order.order_received", "Order received!"); @@ -698,7 +720,7 @@ private void addRitualMessages() { this.add("ritual.occultism.pentacle_help.no_pentacle", "\u00a7lNo pentacle found!\u00a7r\nIt seems you did not draw a pentacle, or your pentacle is missing large parts. See the \"Rituals\" section of the Dictionary of Spirits, the required Pentacle will be a clickable blue link above the ritual recipe on the ritual's page."); this.add("ritual.occultism.ritual_help", "\u00a7lInvalid ritual!\u00a7r\nWere you trying to perform ritual: \"%s\"? Missing items:\n%s"); this.add("ritual.occultism.disabled", "This ritual is disabled on this server."); - this.add("ritual.occultism.does_not_exist", "\u00a7lUnknown ritual\u00a7r. Make sure the pentacle & ingredients are set up correctly. If you are still unsuccessful join our discord at https://discord.gg/trE4SHRXvb"); + this.add("ritual.occultism.does_not_exist", "\u00a7lUnknown ritual\u00a7r. Make sure the pentacle & ingredients are set up correctly. If you are still unsuccessful join our discord at https://invite.gg/klikli"); this.add("ritual.occultism.book_not_bound", "\u00a7lUnbound Book of Calling\u00a7r. You must craft this book with Dictionary of Spirits to bind to a spirit before starting a ritual."); this.add("ritual.occultism.unknown.conditions", "Not all requirements for this ritual are met."); @@ -1146,6 +1168,11 @@ private void addRitualMessages() { this.addRitualMessage(OccultismItems.RITUAL_DUMMY_SUMMON_MARID_SMELTER, "finished", "Summoned marid smelter successfully."); this.addRitualMessage(OccultismItems.RITUAL_DUMMY_SUMMON_MARID_SMELTER, "interrupted", "Summoning of marid smelter interrupted."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM, "started", "Started possessing a marid into iesnium golem."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM, "finished", "Successfully bound a marid into iesnium golem."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM, "interrupted", "Possessing of marid interrupted."); + this.addRitualMessage(OccultismRituals.RESURRECT_FAMILIAR, "conditions", "Not all requirements for this ritual are met."); this.addRitualMessage(OccultismRituals.RESURRECT_FAMILIAR, "started", "Started resurrecting familiar."); this.addRitualMessage(OccultismRituals.RESURRECT_FAMILIAR, "finished", "Successfully resurrected familiar."); @@ -1161,6 +1188,16 @@ private void addRitualMessages() { this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T2, "finished", "Successfully bound an afrit into a ritual satchel."); this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T2, "interrupted", "Binding of afrit interrupted."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL, "started", "Started binding an afrit into iesnium sacrificial bowl."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL, "finished", "Successfully bound an afrit into iesnium sacrificial bowl."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL, "interrupted", "Binding of afrit interrupted."); + + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL, "started", "Started binding a marid into iesnium anvil."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL, "finished", "Successfully bound a marid into iesnium anvil."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL, "interrupted", "Binding of marid interrupted."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BUDDING_AMETHYST, "conditions", "Not all requirements for this ritual are met."); this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BUDDING_AMETHYST, "started", "Started forging budding amethyst."); this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BUDDING_AMETHYST, "finished", "Successfully forged budding amethyst."); @@ -1170,6 +1207,40 @@ private void addRitualMessages() { this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE, "started", "Started forging reinforced deepslate."); this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE, "finished", "Successfully forged reinforced deepslate."); this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE, "interrupted", "Forging reinforced deepslate interrupted."); + + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BEE_NEST, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BEE_NEST, "started", "Started forging bee nest."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BEE_NEST, "finished", "Successfully forged bee nest."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BEE_NEST, "interrupted", "Forging bee nest interrupted."); + + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BELL, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BELL, "started", "Started forging bell."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BELL, "finished", "Successfully forged bell."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_BELL, "interrupted", "Forging bell interrupted."); + + + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE, "started", "Started forging eldritch chalice."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE, "finished", "Successfully forged eldritch chalice."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE, "interrupted", "Forging eldritch chalice interrupted."); + + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_STABILIZED_STORAGE, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_STABILIZED_STORAGE, "started", "Started forging stabilized dimensional storage actuator."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_STABILIZED_STORAGE, "finished", "Successfully forged stabilized dimensional storage actuator."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_STABILIZED_STORAGE, "interrupted", "Forging stabilized dimensional storage actuator interrupted."); + + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_RAINBOW, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_RAINBOW, "started", "Started forging rainbow chalk."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_RAINBOW, "finished", "Successfully forged rainbow chalk."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_RAINBOW, "interrupted", "Forging rainbow chalk interrupted."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_VOID, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_VOID, "started", "Started forging void chalk."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_VOID, "finished", "Successfully forged void chalk."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_VOID, "interrupted", "Forging void chalk interrupted."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_TRINITY_GEM, "conditions", "Not all requirements for this ritual are met."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_TRINITY_GEM, "started", "Started forging trinity gem."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_TRINITY_GEM, "finished", "Successfully forged trinity gem."); + this.addRitualMessage(OccultismItems.RITUAL_DUMMY_FORGE_TRINITY_GEM, "interrupted", "Forging trinity gem interrupted."); } public void addRitualMessage(DeferredHolder ritual, String key, String message) { @@ -1989,7 +2060,9 @@ private void addCraftingRitualsCategory(BookContextHelper helper) { helper.page("spotlight"); this.add(helper.pageText(), """ - Unlike other rituals, creating a [](item://minecraft:reinforced_deepslate) is a service provided by Ancient Spirits and not bound any spirit to the final object. You sacrifice the items and the Ancient Spirits uses his power to forge that item for you. + Unlike other rituals, creating a [](item://minecraft:reinforced_deepslate) is a service provided by Wild Spirits and not bound any spirit to the final object. You sacrifice the items and the Wild Spirits uses his power to forge that item for you.\\ + \\ + These blocks can be collected with a infused or iesnium pickaxe. """.formatted(COLOR_PURPLE)); helper.page("ritual"); @@ -2720,6 +2793,10 @@ private void addAdvancements() { this.advancementDescr("chalks.magenta", "Dragon Power"); this.advancementTitle("chalks.pink", "Use the Pink Chalk"); this.advancementDescr("chalks.pink", "Wild Power"); + this.advancementTitle("chalks.rainbow", "Use the Rainbow Chalk"); + this.advancementDescr("chalks.rainbow", "Why Many Chalks?"); + this.advancementTitle("chalks.void", "Use the Void Chalk"); + this.advancementDescr("chalks.void", "..."); } private void addKeybinds() { @@ -2840,7 +2917,7 @@ private void addPentacles() { this.addPentacle("craft_afrit", "Sevira's Permanent Confinement"); this.addPentacle("craft_marid", "Uphyxes Inverted Tower"); this.addPentacle("resurrect_spirit", "Susje's Simple Circle"); - this.addPentacle("contact_wild_spirit", "Osorin's Wild Calling"); + this.addPentacle("contact_wild_spirit", "Osorin's Unbound Calling"); this.addPentacle("contact_eldritch_spirit", "Ronaza's Contact"); } @@ -3045,12 +3122,20 @@ private void addRitualDummies() { this.addTooltip(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_RIDEABLE.get(), "Summons a rideable random passive animal. (Possibilities: pig, camel, donkey, horse, skeleton horse, zombie horse, llama, trader llama, mule, strider)"); this.add(OccultismItems.RITUAL_DUMMY_POSSESS_VILLAGER.get(), "Ritual: Summon Villager"); this.addTooltip(OccultismItems.RITUAL_DUMMY_POSSESS_VILLAGER.get(), "Summons a villager or wandering Trader."); + this.add(OccultismItems.RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM.get(), "Ritual: Summon Iesnium Golem"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM.get(), "Summons the strong and invulnerable iesnium golem to defend a region."); this.add(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T1.get(), "Ritual: Craft Apprentice Ritual Satchel"); this.addTooltip(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T1.get(), "Binds a Djinni into a satchel to build pentacles step-by-step for the summoner."); this.add(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T2.get(), "Ritual: Craft Artisanal Ritual Satchel"); this.addTooltip(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T2.get(), "Binds an Afrit into a satchel to build pentacles all at once for the summoner."); + this.add(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL.get(), "Ritual: Craft Iesnium Sacrificial Bowl"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL.get(), "The Iesnium Sacrificial Bowl performs any ritual in only a quarter of the normal time. All other things will works like the Golden Sacrificial Bowl."); + + this.add(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL.get(), "Ritual: Craft Iesnium Anvil"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL.get(), "The iesnium anvil is an improvement on the common anvil, see all the advantages in the dictionary."); + //Misc dummy this.add(OccultismItems.RITUAL_DUMMY_RESURRECT_FAMILIAR.get(), "Ritual: Resurrect Familiar"); this.addTooltip(OccultismItems.RITUAL_DUMMY_RESURRECT_FAMILIAR.get(), "Resurrects a Familiar from a Soul Shard."); @@ -3105,10 +3190,31 @@ private void addRitualDummies() { this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_BUDDING_AMETHYST.get(), "Wild Spirits will forge a Budding Amethyst."); this.add(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE.get(), "Ritual: Forge Reinforced Deepslate"); - this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE.get(), "Ancient Spirits will forge a Reinforced Deepslate."); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE.get(), "Wild Spirits will forge a Reinforced Deepslate."); + + this.add(OccultismItems.RITUAL_DUMMY_FORGE_BEE_NEST.get(), "Ritual: Forge Bee Nest"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_BEE_NEST.get(), "Wild Spirits will forge a bee nest, more beautiful than beehive."); + + this.add(OccultismItems.RITUAL_DUMMY_FORGE_BELL.get(), "Ritual: Forge Bell"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_BELL.get(), "Wild Spirits will forge a bell."); + this.add(OccultismItems.RITUAL_DUMMY_FORGE_MINER_ANCIENT_ELDRITCH.get(), "Ritual: Summon Eldritch Ancient Miner"); this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_MINER_ANCIENT_ELDRITCH.get(), "Summon Eldritch Ancient Miner into a magic lamp."); + + this.add(OccultismItems.RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE.get(), "Ritual: Forge Eldritch Chalice"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE.get(), "Eldritch Spirits will forge an Eldritch Chalice, that performs any ritual instantly. Here is your trophy."); + + this.add(OccultismItems.RITUAL_DUMMY_FORGE_STABILIZED_STORAGE.get(), "Ritual: Forge Stabilized Dimensional Storage Actuator"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_STABILIZED_STORAGE.get(), "Eldritch Spirits will forge a Stabilized Dimensional Storage Actuator, works as an actuator with maximum stabilizers in only one block."); + + this.add(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_RAINBOW.get(), "Ritual: Forge Rainbow Chalk"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_RAINBOW.get(), "Eldritch Spirits will forge a rainbow chalk, substitute any colored chalk."); + this.add(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_VOID.get(), "Ritual: Forge Void Chalk"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_VOID.get(), "Eldritch Spirits will forge a rainbow chalk, substitute any chalk."); + this.add(OccultismItems.RITUAL_DUMMY_FORGE_TRINITY_GEM.get(), "Ritual: Forge Trinity Gem"); + this.addTooltip(OccultismItems.RITUAL_DUMMY_FORGE_TRINITY_GEM.get(), "Eldritch Spirits will forge a trinity gem, upgrading a soul gem."); + } public void addTooltip(ItemLike key, String value) { @@ -3339,6 +3445,7 @@ private void addConfigurationTranslations() { this.addConfig("stabilizerTier4AdditionalMaxTotalItemCount", "Stabilizer Tier 4 Additional Max Total Item Count"); this.addConfig("controllerMaxItemTypes", "Controller Max Item Types"); this.addConfig("controllerMaxTotalItemCount", "Controller Max Total Item Count"); + this.addConfig("stabilizedControllerStabilizers", "Stabilized Controller Built-in Stabilizers"); this.addConfig("unlinkWormholeOnBreak", "Unlink Wormhole on Break"); this.addConfig("spirit_job", "Spirit Job Settings"); diff --git a/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismBlockLoot.java b/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismBlockLoot.java index c646070de..25043c833 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismBlockLoot.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismBlockLoot.java @@ -108,7 +108,13 @@ else if (settings.lootTableType == OccultismBlocks.LootTableType.OTHERWORLD_BLOC OccultismDataComponents.CRAFTING_MATRIX.get(), OccultismDataComponents.ORDER_STACK.get() ); - + this.dropSelfWithComponents(OccultismBlocks.STORAGE_CONTROLLER_STABILIZED.get(), + OccultismDataComponents.STORAGE_CONTROLLER_CONTENTS.get(), + OccultismDataComponents.SORT_DIRECTION.get(), + OccultismDataComponents.SORT_TYPE.get(), + OccultismDataComponents.CRAFTING_MATRIX.get(), + OccultismDataComponents.ORDER_STACK.get() + ); this.dropSelfWithComponents(OccultismBlocks.STABLE_WORMHOLE.get(), OccultismDataComponents.LINKED_STORAGE_CONTROLLER.get(), @@ -128,6 +134,7 @@ else if (settings.lootTableType == OccultismBlocks.LootTableType.OTHERWORLD_BLOC this.add(OccultismBlocks.OTHERPLANKS_WALL_SIGN.get(), item -> createSingleItemTable(OccultismItems.OTHERPLANKS_SIGN)); this.add(OccultismBlocks.OTHERPLANKS_HANGING_SIGN.get(), item -> createSingleItemTable(OccultismItems.OTHERPLANKS_HANGING_SIGN)); this.add(OccultismBlocks.OTHERPLANKS_WALL_HANGING_SIGN.get(), item -> createSingleItemTable(OccultismItems.OTHERPLANKS_HANGING_SIGN)); + this.add(OccultismBlocks.POTTED_OTHERFLOWER.get(), createPotFlowerItemTable(OccultismBlocks.OTHERFLOWER.get())); } protected void registerOtherworldBlockTable(Block block) { diff --git a/src/main/java/com/klikli_dev/occultism/datagen/recipe/OccultismRecipeProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/recipe/OccultismRecipeProvider.java index 7e8726e8a..b8db1d2fd 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/recipe/OccultismRecipeProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/recipe/OccultismRecipeProvider.java @@ -14,6 +14,7 @@ import net.minecraft.data.recipes.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -111,6 +112,30 @@ private static void metalRecipes(RecipeOutput pRecipeOutput) { .requires(OccultismTags.Items.STORAGE_BLOCK_RAW_SILVER) .unlockedBy("has_raw_silver_block", has(OccultismTags.Items.STORAGE_BLOCK_RAW_SILVER)) .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/raw_silver_ingot_from_block")); + otherflowerDye(Items.WHITE_DYE, Tags.Items.DYES_WHITE, pRecipeOutput); + otherflowerDye(Items.LIGHT_GRAY_DYE, Tags.Items.DYES_LIGHT_GRAY, pRecipeOutput); + otherflowerDye(Items.GRAY_DYE, Tags.Items.DYES_GRAY, pRecipeOutput); + otherflowerDye(Items.BLACK_DYE, Tags.Items.DYES_BLACK, pRecipeOutput); + otherflowerDye(Items.BROWN_DYE, Tags.Items.DYES_BROWN, pRecipeOutput); + otherflowerDye(Items.RED_DYE, Tags.Items.DYES_RED, pRecipeOutput); + otherflowerDye(Items.ORANGE_DYE, Tags.Items.DYES_ORANGE, pRecipeOutput); + otherflowerDye(Items.YELLOW_DYE, Tags.Items.DYES_YELLOW, pRecipeOutput); + otherflowerDye(Items.LIME_DYE, Tags.Items.DYES_LIME, pRecipeOutput); + otherflowerDye(Items.GREEN_DYE, Tags.Items.DYES_GREEN, pRecipeOutput); + otherflowerDye(Items.CYAN_DYE, Tags.Items.DYES_CYAN, pRecipeOutput); + otherflowerDye(Items.BLUE_DYE, Tags.Items.DYES_BLUE, pRecipeOutput); + otherflowerDye(Items.LIGHT_BLUE_DYE, Tags.Items.DYES_LIGHT_BLUE, pRecipeOutput); + otherflowerDye(Items.PINK_DYE, Tags.Items.DYES_PINK, pRecipeOutput); + otherflowerDye(Items.MAGENTA_DYE, Tags.Items.DYES_MAGENTA, pRecipeOutput); + otherflowerDye(Items.PURPLE_DYE, Tags.Items.DYES_PURPLE, pRecipeOutput); + } + private static void otherflowerDye(ItemLike result, TagKey colorTag, RecipeOutput pRecipeOutput){ + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, result, 3) + .requires(OccultismBlocks.OTHERFLOWER.asItem()) + .requires(colorTag) + .unlockedBy("has_otherflower", has(OccultismBlocks.OTHERFLOWER.asItem())) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, + "crafting/otherflower_to_" + colorTag.toString().substring(31).replace("]","_")) + "dye"); } private static void blastingRecipes(RecipeOutput pRecipeOutput) { @@ -289,6 +314,9 @@ private void spiritFireRecipes(RecipeOutput pRecipeOutput) { SpiritFireRecipeBuilder.spiritFireRecipe(Ingredient.of(Items.BOOK), new ItemStack(OccultismItems.TABOO_BOOK.get())) .unlockedBy("has_book", has(Items.BOOK)) .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "spirit_fire/taboo_book")); + SpiritFireRecipeBuilder.spiritFireRecipe(Ingredient.of(ItemTags.FLOWERS), new ItemStack(OccultismBlocks.OTHERFLOWER.asItem())) + .unlockedBy("has_flower", has(ItemTags.FLOWERS)) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "spirit_fire/otherflower")); } private void miningRecipes(RecipeOutput pRecipeOutput) { @@ -373,6 +401,13 @@ private void crushingRecipes(RecipeOutput pRecipeOutput) { this.crushingGemRecipe("amethyst", pRecipeOutput); this.crushingGemRecipe("black_quartz", pRecipeOutput); + CrushingRecipeBuilder.crushingRecipe(ItemTags.COALS, OccultismTags.makeItemTag(ResourceLocation.fromNamespaceAndPath("c", "dusts/" + "coal")), 200) + .setAllowEmpty(false) + .setResultAmount(1) + .setIgnoreCrushingMultiplier(true) + .unlockedBy("has_coal", has(ItemTags.COALS)) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crushing/coal_dust_from_tag")); + CrushingRecipeBuilder.crushingRecipe(Tags.Items.RODS_BLAZE, Items.BLAZE_POWDER, 200) .allowEmpty() .setResultAmount(4) @@ -659,6 +694,14 @@ private void craftingRecipes(RecipeOutput pRecipeOutput) { .define('s', Tags.Items.RODS_WOODEN) .unlockedBy("has_iron_ingot", has(Tags.Items.INGOTS_IRON)) .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/butcher_knife")); + ShapelessRecipeBuilder.shapeless(RecipeCategory.BUILDING_BLOCKS, OccultismBlocks.TALLOW_BLOCK.get()) + .requires(Ingredient.of(OccultismTags.Items.TALLOW), 9) + .unlockedBy("has_tallow", has(OccultismTags.Items.TALLOW)) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/tallow_block")); + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, OccultismItems.TALLOW, 9) + .requires(OccultismBlocks.TALLOW_BLOCK.get()) + .unlockedBy("has_tallow_block", has(OccultismBlocks.TALLOW_BLOCK.get())) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/tallow")); ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, OccultismBlocks.LARGE_CANDLE.get()) .pattern("s") .pattern("t") @@ -957,6 +1000,15 @@ private void craftingRecipes(RecipeOutput pRecipeOutput) { .define('o', OccultismBlocks.OTHERSTONE.get()) .unlockedBy("has_otherstone", has(OccultismBlocks.OTHERSTONE.get())) .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/otherstone_pedestal")); + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, OccultismBlocks.OTHERSTONE_PEDESTAL_SILVER.get()) + .requires(OccultismTags.Items.SILVER_INGOT) + .requires(OccultismBlocks.OTHERSTONE_PEDESTAL.get()) + .unlockedBy("has_otherstone_pedestal", has(OccultismBlocks.OTHERSTONE_PEDESTAL.get())) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/otherstone_pedestal_silver")); + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, OccultismBlocks.STORAGE_STABILIZER_TIER0.get()) + .requires(OccultismBlocks.OTHERSTONE_PEDESTAL.get()) + .unlockedBy("has_otherstone_pedestal", has(OccultismBlocks.OTHERSTONE_PEDESTAL.get())) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/storage_stabilizer_tier0")); stairBuilder(OccultismBlocks.OTHERSTONE_STAIRS.get(), Ingredient.of(OccultismBlocks.OTHERSTONE.asItem())) .unlockedBy("has_otherstone", has(OccultismBlocks.OTHERSTONE.asItem())).save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/otherstone_stairs")); @@ -1035,6 +1087,16 @@ private void craftingRecipes(RecipeOutput pRecipeOutput) { .define('o', OccultismBlocks.OTHERSTONE.get()) .unlockedBy("has_otherstone", has(OccultismBlocks.OTHERSTONE.get())) .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/sacrificial_bowl")); + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, OccultismBlocks.COPPER_SACRIFICIAL_BOWL.get()) + .requires(OccultismBlocks.SACRIFICIAL_BOWL.asItem()) + .requires(Tags.Items.INGOTS_COPPER) + .unlockedBy("has_sacrificial_bowl", has(OccultismBlocks.SACRIFICIAL_BOWL.get())) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/copper_sacrificial_bowl")); + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, OccultismBlocks.SILVER_SACRIFICIAL_BOWL.get()) + .requires(OccultismBlocks.SACRIFICIAL_BOWL.asItem()) + .requires(OccultismTags.Items.SILVER_INGOT) + .unlockedBy("has_sacrificial_bowl", has(OccultismBlocks.SACRIFICIAL_BOWL.get())) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/silver_sacrificial_bowl")); ShapedRecipeBuilder.shaped(RecipeCategory.MISC, OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()) .pattern("gg") @@ -1155,6 +1217,17 @@ private void craftingRecipes(RecipeOutput pRecipeOutput) { .pattern("###") .unlockedBy("has_stripped_otherworld_log", has(OccultismBlocks.STRIPPED_OTHERWORLD_LOG.get())) .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/otherplanks_hanging_sign")); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, OccultismBlocks.OTHERGLASS_NATURAL.get()) + .pattern("nen") + .pattern("ege") + .pattern("nen") + .define('n', OccultismTags.Items.IESNIUM_NUGGET) + .define('e', OccultismTags.Items.END_STONE_DUST) + .define('g', Tags.Items.GLASS_BLOCKS) + .unlockedBy("has_iesnium_nugget", has(OccultismItems.IESNIUM_NUGGET.get())) + .save(pRecipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crafting/otherglass")); + } private void smeltingRecipes(RecipeOutput pRecipeOutput) { diff --git a/src/main/java/com/klikli_dev/occultism/datagen/recipe/RitualRecipes.java b/src/main/java/com/klikli_dev/occultism/datagen/recipe/RitualRecipes.java index d7dfbe593..1593adce0 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/recipe/RitualRecipes.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/recipe/RitualRecipes.java @@ -30,15 +30,14 @@ public abstract class RitualRecipes extends RecipeProvider { // Ritual Types - private static final ResourceLocation RITUAL_SUMMON = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "summon"); - private static final ResourceLocation RITUAL_SUMMON_WILD = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "summon_wild"); - private static final ResourceLocation RITUAL_SUMMON_JOB = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "summon_spirit_with_job"); - private static final ResourceLocation RITUAL_RESURRECT_FAMILIAR = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "resurrect_familiar"); - private static final ResourceLocation RITUAL_FAMILIAR = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "familiar"); - private static final ResourceLocation RITUAL_CRAFT_WITH_SPIRIT_NAME = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "craft_with_spirit_name"); - private static final ResourceLocation RITUAL_CRAFT = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "craft"); - private static final ResourceLocation RITUAL_CRAFT_MINER_SPIRIT = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "craft_miner_spirit"); - private static final ResourceLocation RITUAL_REPAIR = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "repair"); + private static final ResourceLocation RITUAL_SUMMON = OccultismRituals.SUMMON.getId(); + private static final ResourceLocation RITUAL_SUMMON_WILD = OccultismRituals.SUMMON_WILD.getId(); + private static final ResourceLocation RITUAL_SUMMON_JOB = OccultismRituals.SUMMON_SPIRIT_WITH_JOB.getId(); + private static final ResourceLocation RITUAL_FAMILIAR = OccultismRituals.SUMMON_TAMED.getId(); + private static final ResourceLocation RITUAL_CRAFT_WITH_SPIRIT_NAME = OccultismRituals.CRAFT_WITH_SPIRIT_NAME.getId(); + private static final ResourceLocation RITUAL_CRAFT = OccultismRituals.CRAFT.getId(); + private static final ResourceLocation RITUAL_CRAFT_MINER_SPIRIT = OccultismRituals.CRAFT_MINER_SPIRIT.getId(); + private static final ResourceLocation RITUAL_REPAIR = OccultismRituals.REPAIR.getId(); // Pentacle IDs private static final ResourceLocation PENTACLE_SUMMON_FOLIOT = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "summon_foliot"); private static final ResourceLocation PENTACLE_SUMMON_DJINNI = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "summon_djinni"); @@ -88,19 +87,25 @@ private static ItemStack makeJeiNoneDummy() { } public static void ritualRecipes(RecipeOutput recipeOutput, HolderLookup.Provider registries) { - craftingRituals(recipeOutput); - familiarRituals(recipeOutput); - possessRituals(recipeOutput); summonRituals(recipeOutput, registries); + possessRituals(recipeOutput); + familiarRituals(recipeOutput); + craftingRituals(recipeOutput); + stabilizerRecipes(recipeOutput); + minerRecipes(recipeOutput); resurrectRituals(recipeOutput); repairRituals(recipeOutput); + randomRituals(recipeOutput); + contactRituals(recipeOutput); } private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provider registries) { + //Duration 60 * tier (half if time or weather job) + //Afrit RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_AFRIT.get(), "item.occultism.ritual_dummy.summon_afrit_crusher"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_AFRIT_CRUSHER.get()), - 120, + 180, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_AFRIT, Ingredient.of(OccultismTags.Items.IESNIUM_DUST), @@ -116,7 +121,7 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_AFRIT.get(), "item.occultism.ritual_dummy.summon_afrit_smelter"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_AFRIT_SMELTER.get()), - 120, + 180, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_AFRIT, Ingredient.of(Tags.Items.RODS_BLAZE), @@ -132,7 +137,7 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_AFRIT.get(), "item.occultism.ritual_dummy.summon_afrit_rain_weather"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_AFRIT_RAIN_WEATHER.get()), - 60, + 90, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_AFRIT, Ingredient.of(Tags.Items.SANDS), @@ -140,7 +145,7 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid Ingredient.of(Items.CACTUS), Ingredient.of(Items.DEAD_BUSH)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .spiritMaxAge(120) + .spiritMaxAge(15) .entityToSummon(OccultismEntities.AFRIT_TYPE.get()) .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "rain_weather")) .entityToSacrifice(OccultismTags.Entities.COWS) @@ -149,7 +154,7 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_AFRIT.get(), "item.occultism.ritual_dummy.summon_afrit_thunder_weather"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_AFRIT_THUNDER_WEATHER.get()), - 60, + 90, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_AFRIT, Ingredient.of(Tags.Items.BONES), @@ -157,71 +162,52 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid Ingredient.of(Tags.Items.GUNPOWDERS), Ingredient.of(Items.GHAST_TEAR)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .spiritMaxAge(240) + .spiritMaxAge(15) .entityToSummon(OccultismEntities.AFRIT_TYPE.get()) .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "thunder_weather")) .entityToSacrifice(OccultismTags.Entities.COWS) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cows") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_afrit_thunder_weather")); + //Djinni RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DEMONIC_HUSBAND.get(), "item.occultism.ritual_dummy.summon_demonic_husband"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/summon_demonic_husband")), - 60, - OccultismRituals.SUMMON_TAMED.getId(), + 120, + RITUAL_FAMILIAR, PENTACLE_SUMMON_DJINNI, Ingredient.of(Tags.Items.INGOTS_GOLD), Ingredient.of(Tags.Items.GEMS_EMERALD), Ingredient.of(Tags.Items.GUNPOWDERS), Ingredient.of(Items.PORKCHOP), Ingredient.of(ItemTags.SWORDS), - Ingredient.of(Items.GLASS_BOTTLE) - ) + Ingredient.of(Items.GLASS_BOTTLE)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .entityToSummon(OccultismEntities.DEMONIC_HUSBAND.get()) .entityToSacrifice(OccultismTags.Entities.CHICKEN) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.chicken") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_demonic_husband")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DEMONIC_WIFE.get(), "item.occultism.ritual_dummy.summon_demonic_wife"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/summon_demonic_wife")), - 60, - OccultismRituals.SUMMON_TAMED.getId(), + 120, + RITUAL_FAMILIAR, PENTACLE_SUMMON_DJINNI, Ingredient.of(Tags.Items.INGOTS_GOLD), Ingredient.of(Tags.Items.GEMS_DIAMOND), Ingredient.of(Tags.Items.GUNPOWDERS), Ingredient.of(Items.PORKCHOP), Ingredient.of(ItemTags.SWORDS), - Ingredient.of(Items.GLASS_BOTTLE) - ) + Ingredient.of(Items.GLASS_BOTTLE)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .entityToSummon(OccultismEntities.DEMONIC_WIFE.get()) .entityToSacrifice(OccultismTags.Entities.CHICKEN) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.chicken") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_demonic_wife")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DJINNI.get(), "item.occultism.ritual_dummy.summon_djinni_clear_weather"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_CLEAR_WEATHER.get()), - 60, - RITUAL_SUMMON_JOB, - PENTACLE_SUMMON_DJINNI, - Ingredient.of(Tags.Items.CROPS_BEETROOT), - Ingredient.of(Tags.Items.CROPS_CARROT), - Ingredient.of(Tags.Items.CROPS_POTATO), - Ingredient.of(Tags.Items.CROPS_WHEAT)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .spiritMaxAge(60) - .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "clear_weather")) - .entityToSummon(OccultismEntities.DJINNI.get()) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_djinni_clear_weather")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DJINNI.get(), "item.occultism.ritual_dummy.summon_djinni_crusher"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_CRUSHER.get()), - 90, + 120, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_DJINNI, Ingredient.of(OccultismTags.Items.IRON_DUST), @@ -236,7 +222,7 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DJINNI.get(), "item.occultism.ritual_dummy.summon_djinni_smelter"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_SMELTER.get()), - 90, + 120, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_DJINNI, Ingredient.of(Items.FIRE_CHARGE), @@ -248,27 +234,10 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "smelt_tier2")) .entityToSummon(OccultismEntities.DJINNI_TYPE.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_djinni_smelter")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_MARID.get(), "item.occultism.ritual_dummy.summon_djinni_day_time"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_DAY_TIME.get()), - 60, - RITUAL_SUMMON_JOB, - PENTACLE_SUMMON_DJINNI, - Ingredient.of(Items.TORCH), - Ingredient.of(ItemTags.SAPLINGS), - Ingredient.of(Items.WHEAT), - Ingredient.of(Tags.Items.DYES_YELLOW)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .spiritMaxAge(60) - .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "day_time")) - .entityToSummon(OccultismEntities.DJINNI.get()) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_djinni_day_time")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), new ItemStack(OccultismItems.BOOK_OF_CALLING_DJINNI_MANAGE_MACHINE.get()), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_MANAGE_MACHINE.get()), - 60, + 120, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_DJINNI, Ingredient.of(Tags.Items.STORAGE_BLOCKS_COAL), @@ -280,7 +249,36 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "manage_machine")) .entityToSummon(OccultismEntities.DJINNI.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_djinni_manage_machine")); - + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DJINNI.get(), "item.occultism.ritual_dummy.summon_djinni_clear_weather"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_CLEAR_WEATHER.get()), + 60, + RITUAL_SUMMON_JOB, + PENTACLE_SUMMON_DJINNI, + Ingredient.of(Tags.Items.CROPS_BEETROOT), + Ingredient.of(Tags.Items.CROPS_CARROT), + Ingredient.of(Tags.Items.CROPS_POTATO), + Ingredient.of(Tags.Items.CROPS_WHEAT)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .spiritMaxAge(15) + .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "clear_weather")) + .entityToSummon(OccultismEntities.DJINNI.get()) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_djinni_clear_weather")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_MARID.get(), "item.occultism.ritual_dummy.summon_djinni_day_time"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_DAY_TIME.get()), + 60, + RITUAL_SUMMON_JOB, + PENTACLE_SUMMON_DJINNI, + Ingredient.of(Items.TORCH), + Ingredient.of(ItemTags.SAPLINGS), + Ingredient.of(Items.WHEAT), + Ingredient.of(Tags.Items.DYES_YELLOW)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .spiritMaxAge(15) + .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "day_time")) + .entityToSummon(OccultismEntities.DJINNI.get()) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_djinni_day_time")); RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DJINNI.get(), "item.occultism.ritual_dummy.summon_djinni_night_time"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_DJINNI_NIGHT_TIME.get()), @@ -292,11 +290,12 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid Ingredient.of(Tags.Items.BONES), Ingredient.of(Tags.Items.DYES_BLACK)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .spiritMaxAge(60) + .spiritMaxAge(15) .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "night_time")) .entityToSummon(OccultismEntities.DJINNI.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_djinni_night_time")); + //Foliot RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), new ItemStack(OccultismItems.BOOK_OF_CALLING_FOLIOT_CLEANER.get()), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_FOLIOT_CLEANER.get()), @@ -312,8 +311,6 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "cleaner")) .entityToSummon(OccultismEntities.FOLIOT.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_foliot_cleaner")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_FOLIOT.get(), "item.occultism.ritual_dummy.summon_foliot_crusher"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_FOLIOT_CRUSHER.get()), @@ -366,11 +363,10 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "lumberjack")) .entityToSummon(OccultismEntities.FOLIOT.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_foliot_lumberjack")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_FOLIOT.get(), "item.occultism.ritual_dummy.summon_foliot_otherstone_trader"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_FOLIOT_OTHERSTONE_TRADER.get()), - 30, + 60, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_FOLIOT, Ingredient.of(Blocks.STONE), @@ -382,11 +378,10 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "trade_otherstone_t1")) .entityToSummon(OccultismEntities.FOLIOT.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_foliot_otherstone_trader")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_FOLIOT.get(), "item.occultism.ritual_dummy.summon_foliot_sapling_trader"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_FOLIOT_SAPLING_TRADER.get()), - 30, + 60, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_FOLIOT, Ingredient.of(Items.OAK_SAPLING), @@ -398,7 +393,6 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .spiritJobType(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "trade_otherworld_saplings_t1")) .entityToSummon(OccultismEntities.FOLIOT.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_foliot_sapling_trader")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), new ItemStack(OccultismItems.BOOK_OF_CALLING_FOLIOT_TRANSPORT_ITEMS.get()), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_FOLIOT_TRANSPORT_ITEMS.get()), @@ -415,10 +409,11 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .entityToSummon(OccultismEntities.FOLIOT.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_foliot_transport_items")); + //Marid RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_MARID.get(), "item.occultism.ritual_dummy.summon_marid_crusher"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_MARID_CRUSHER.get()), - 150, + 240, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_MARID, Ingredient.of(Tags.Items.STORAGE_BLOCKS_DIAMOND), @@ -433,7 +428,7 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_MARID.get(), "item.occultism.ritual_dummy.summon_marid_smelter"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_MARID_SMELTER.get()), - 150, + 240, RITUAL_SUMMON_JOB, PENTACLE_SUMMON_MARID, Ingredient.of(Items.DRAGON_BREATH), @@ -448,10 +443,11 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .entityToSummon(OccultismEntities.MARID_TYPE.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_marid_smelter")); + //Unbound, duration - 30 RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), makeLoreSpawnEgg(OccultismItems.AFRIT_ESSENCE.get(), "item.occultism.ritual_dummy.summon_unbound_afrit"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_UNBOUND_AFRIT.get()), - 60, + 150, RITUAL_SUMMON, PENTACLE_SUMMON_UNBOUND_AFRIT, Ingredient.of(Tags.Items.NETHERRACKS), @@ -463,11 +459,10 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cows") .entityToSacrifice(OccultismTags.Entities.COWS) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_unbound_afrit")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), makeLoreSpawnEgg(OccultismItems.MARID_ESSENCE.get(), "item.occultism.ritual_dummy.summon_unbound_marid"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_SUMMON_UNBOUND_MARID.get()), - 90, + 210, RITUAL_SUMMON, PENTACLE_SUMMON_UNBOUND_MARID, Ingredient.of(Items.CONDUIT), @@ -478,189 +473,108 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .entityToSummon(OccultismEntities.MARID_UNBOUND.get()) .itemToUse(Ingredient.of(Items.TRIDENT)) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/summon_unbound_marid")); + } - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.SKELETON_SKULL), - makeLoreSpawnEgg(Items.WITHER_SKELETON_SKULL, "item.occultism.ritual_dummy.wild_hunt"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_HUNT.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Tags.Items.STORAGE_BLOCKS_COPPER), - Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_SILVER), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_GOLD), - Ingredient.of(Tags.Items.GEMS_DIAMOND), - Ingredient.of(Tags.Items.NETHERRACKS), - Ingredient.of(Items.SOUL_SAND)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.WILD_HUNT_WITHER_SKELETON.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") - .entityToSacrifice(OccultismTags.Entities.HUMANS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_hunt")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.RAW_GOLD), - makeLoreSpawnEgg(Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE, "item.occultism.ritual_dummy.wild_husk"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_HUSK.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.SAND), - Ingredient.of(Items.SANDSTONE), - Ingredient.of(Items.CHISELED_SANDSTONE), - Ingredient.of(Items.CUT_SANDSTONE), - Ingredient.of(Items.SMOOTH_SANDSTONE), - Ingredient.of(Items.DEAD_BUSH), - Ingredient.of(Items.SAND), - Ingredient.of(Items.SANDSTONE), - Ingredient.of(Items.CHISELED_SANDSTONE), - Ingredient.of(Items.CUT_SANDSTONE), - Ingredient.of(Items.SMOOTH_SANDSTONE), - Ingredient.of(Items.DEAD_BUSH)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.WILD_HORDE_HUSK.get()) - .summonNumber(5) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.camel") - .entityToSacrifice(OccultismTags.Entities.CAMEL) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_husk")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.HEART_OF_THE_SEA), - makeLoreSpawnEgg(Items.SNIFFER_EGG, "item.occultism.ritual_dummy.wild_drowned"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_DROWNED.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.DEAD_BRAIN_CORAL_BLOCK), - Ingredient.of(Items.DEAD_BUBBLE_CORAL_BLOCK), - Ingredient.of(Items.DEAD_FIRE_CORAL_BLOCK), - Ingredient.of(Items.DEAD_HORN_CORAL_BLOCK), - Ingredient.of(Items.DEAD_TUBE_CORAL_BLOCK), - Ingredient.of(Items.DRIED_KELP_BLOCK)) + private static void possessRituals(RecipeOutput recipeOutput) { + //Duration 30 * tier + //Afrit + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + makeLoreSpawnEgg(Items.HEART_OF_THE_SEA, "item.occultism.ritual_dummy.possess_elder_guardian"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_elder_guardian")), + 90, + RITUAL_SUMMON, + PENTACLE_POSSESS_AFRIT, + Ingredient.of(Items.OXIDIZED_COPPER), + Ingredient.of(Items.PRISMARINE), + Ingredient.of(Items.PRISMARINE_BRICKS), + Ingredient.of(Items.DARK_PRISMARINE), + Ingredient.of(Items.YELLOW_WOOL), + Ingredient.of(Items.SEA_LANTERN), + Ingredient.of(Items.WATER_BUCKET), + Ingredient.of(Items.WATER_BUCKET), + Ingredient.of(Items.WATER_BUCKET), + Ingredient.of(Tags.Items.GEMS_EMERALD)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.WILD_HORDE_DROWNED.get()) - .summonNumber(5) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.dolphin") - .entityToSacrifice(OccultismTags.Entities.DOLPHIN) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_drowned")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.TNT), - makeLoreSpawnEgg(Items.MUSIC_DISC_CAT, "item.occultism.ritual_dummy.wild_creeper"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_CREEPER.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.TNT), - Ingredient.of(Items.OAK_LEAVES), - Ingredient.of(Items.MOSS_BLOCK), - Ingredient.of(Items.TNT), - Ingredient.of(Items.BIRCH_LEAVES), - Ingredient.of(Items.MOSS_BLOCK), - Ingredient.of(Items.TNT), - Ingredient.of(Items.SPRUCE_LEAVES), - Ingredient.of(Items.MOSS_BLOCK), - Ingredient.of(Items.TNT), - Ingredient.of(Items.JUNGLE_LEAVES), - Ingredient.of(Items.MOSS_BLOCK)) + .entityToSummon(OccultismEntities.POSSESSED_ELDER_GUARDIAN_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.fish") + .entityToSacrifice(OccultismTags.Entities.FISH) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_elder_guardian")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + makeLoreSpawnEgg(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE, "item.occultism.ritual_dummy.possess_hoglin"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_hoglin")), + 90, + RITUAL_SUMMON, + PENTACLE_POSSESS_AFRIT, + Ingredient.of(Items.NETHERITE_SCRAP), + Ingredient.of(Tags.Items.LEATHERS), + Ingredient.of(Tags.Items.NETHERRACKS), + Ingredient.of(Tags.Items.NETHERRACKS), + Ingredient.of(Items.PORKCHOP), + Ingredient.of(Items.PORKCHOP), + Ingredient.of(Items.PORKCHOP), + Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.WILD_HORDE_CREEPER.get()) - .summonNumber(5) + .entityToSummon(OccultismEntities.POSSESSED_HOGLIN_TYPE.get()) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.pigs") .entityToSacrifice(OccultismTags.Entities.PIGS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_creeper")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.BRUSH), - makeLoreSpawnEgg(Items.MUSIC_DISC_RELIC, "item.occultism.ritual_dummy.wild_silverfish"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_SILVERFISH.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.SAND), - Ingredient.of(Items.GRAVEL), - Ingredient.of(Items.BRICKS), - Ingredient.of(Items.MUD_BRICKS), - Ingredient.of(Items.STONE_BRICKS), - Ingredient.of(Items.WHITE_TERRACOTTA), - Ingredient.of(Items.DIRT)) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_hoglin")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + makeLoreSpawnEgg(Items.SHULKER_SHELL, "item.occultism.ritual_dummy.possess_shulker"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_shulker")), + 90, + RITUAL_SUMMON, + PENTACLE_POSSESS_AFRIT, + Ingredient.of(Items.DRAGON_BREATH), + Ingredient.of(Tags.Items.OBSIDIANS), + Ingredient.of(Tags.Items.END_STONES), + Ingredient.of(Items.PURPLE_GLAZED_TERRACOTTA)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.WILD_HORDE_SILVERFISH.get()) - .summonNumber(5) - .itemToUse(Ingredient.of(Items.EGG)) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_silverfish")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.HONEYCOMB), - makeLoreSpawnEgg(Items.TRIAL_KEY, "item.occultism.ritual_dummy.wild_weak_breeze"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_WEAK_BREEZE.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.OXIDIZED_COPPER), - Ingredient.of(Items.WEATHERED_CHISELED_COPPER), - Ingredient.of(Items.EXPOSED_COPPER_GRATE), - Ingredient.of(Items.CUT_COPPER), - Ingredient.of(Items.TUFF), - Ingredient.of(Items.TUFF), - Ingredient.of(Items.TUFF), - Ingredient.of(Items.TUFF)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_WEAK_BREEZE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.snow_golem") - .entityToSacrifice(OccultismTags.Entities.SNOW_GOLEM) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_weak_breeze")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.TRIAL_KEY), - makeLoreSpawnEgg(Items.OMINOUS_TRIAL_KEY, "item.occultism.ritual_dummy.wild_breeze"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_BREEZE.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.LIGHTNING_ROD), - Ingredient.of(Items.COPPER_DOOR), - Ingredient.of(Items.COPPER_TRAPDOOR), - Ingredient.of(Items.COPPER_BULB), - Ingredient.of(Items.POLISHED_TUFF), - Ingredient.of(Items.TUFF_BRICKS)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_BREEZE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.wolfs") - .entityToSacrifice(OccultismTags.Entities.WOLFS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_breeze")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.OMINOUS_TRIAL_KEY), - makeLoreSpawnEgg(Items.HEAVY_CORE, "item.occultism.ritual_dummy.wild_strong_breeze"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_STRONG_BREEZE.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.CHISELED_TUFF), - Ingredient.of(Items.CHISELED_TUFF), - Ingredient.of(Items.CHISELED_TUFF), - Ingredient.of(Items.CHISELED_TUFF), - Ingredient.of(Items.CHISELED_TUFF_BRICKS), - Ingredient.of(Items.CHISELED_TUFF_BRICKS), - Ingredient.of(Items.CHISELED_TUFF_BRICKS), - Ingredient.of(Items.CHISELED_TUFF_BRICKS), - Ingredient.of(Items.BREEZE_ROD), - Ingredient.of(Items.BREEZE_ROD), - Ingredient.of(Items.OMINOUS_BOTTLE)) + .entityToSummon(OccultismEntities.POSSESSED_SHULKER_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cubemob") + .entityToSacrifice(OccultismTags.Entities.CUBEMOB) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_shulker")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + makeLoreSpawnEgg(Items.ECHO_SHARD, "item.occultism.ritual_dummy.possess_warden"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_warden")), + 90, + RITUAL_SUMMON, + PENTACLE_POSSESS_AFRIT, + Ingredient.of(Items.SCULK_SHRIEKER), + Ingredient.of(Items.SCULK_SENSOR), + Ingredient.of(Items.SCULK), + Ingredient.of(Items.SCULK), + Ingredient.of(Items.SCULK_SENSOR), + Ingredient.of(Items.SCULK), + Ingredient.of(Items.SCULK), + Ingredient.of(Items.SCULK_SENSOR), + Ingredient.of(Items.SCULK), + Ingredient.of(Items.SCULK)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_STRONG_BREEZE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.iron_golem") - .entityToSacrifice(OccultismTags.Entities.IRON_GOLEM) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_strong_breeze")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.GOLDEN_APPLE), - makeLoreSpawnEgg(Items.TOTEM_OF_UNDYING, "item.occultism.ritual_dummy.wild_horde_illager"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_ILLAGER.get()), - 30, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.DARK_OAK_LOG), - Ingredient.of(Items.DARK_OAK_LOG), - Ingredient.of(Items.DARK_OAK_LOG), - Ingredient.of(OccultismTags.Items.EMERALD_DUST), - Ingredient.of(OccultismTags.Items.EMERALD_DUST), - Ingredient.of(OccultismTags.Items.EMERALD_DUST)) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.axolotls") + .entityToSacrifice(OccultismTags.Entities.AXOLOTL) + .entityToSummon(OccultismEntities.POSSESSED_WARDEN_TYPE.get()) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_warden")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + makeLoreSpawnEgg(OccultismItems.DEMONIC_MEAT.get(), "item.occultism.ritual_dummy.possess_zombie_piglin"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_zombie_piglin")), + 90, + RITUAL_SUMMON, + PENTACLE_POSSESS_UNBOUND_AFRIT, + Ingredient.of(Items.CHERRY_LEAVES), + Ingredient.of(Items.PINK_PETALS), + Ingredient.of(OccultismItems.TALLOW), + Ingredient.of(Items.QUARTZ)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_EVOKER.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") - .entityToSacrifice(OccultismTags.Entities.HUMANS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_horde_illager")); + .entityToSummon(OccultismEntities.POSSESSED_ZOMBIE_PIGLIN_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.pigs") + .entityToSacrifice(OccultismTags.Entities.PIGS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_zombie_piglin")); + //Djinni RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_OTHERWORLD_BIRD.get(), "item.occultism.ritual_dummy.possess_unbound_otherworld_bird"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_unbound_otherworld_bird")), - 30, + 60, RITUAL_SUMMON, PENTACLE_POSSESS_DJINNI, Ingredient.of(Tags.Items.FEATHERS), @@ -673,7 +587,74 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .entityToSacrificeDisplayName("ritual.occultism.sacrifice.parrots") .entityToSacrifice(OccultismTags.Entities.PARROTS) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_unbound_otherworld_bird")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI), + makeLoreSpawnEgg(Items.ENDER_PEARL, "item.occultism.ritual_dummy.possess_enderman"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_enderman")), + 60, + RITUAL_SUMMON, + PENTACLE_POSSESS_DJINNI, + Ingredient.of(Tags.Items.BONES), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(Tags.Items.END_STONES), + Ingredient.of(Items.ROTTEN_FLESH)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .entityToSummon(OccultismEntities.POSSESSED_ENDERMAN_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.pigs") + .entityToSacrifice(OccultismTags.Entities.PIGS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_enderman")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(Items.GHAST_TEAR, "item.occultism.ritual_dummy.possess_ghast"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_ghast")), + 60, + RITUAL_SUMMON, + PENTACLE_POSSESS_DJINNI, + Ingredient.of(Tags.Items.NETHERRACKS), + Ingredient.of(Tags.Items.NETHERRACKS), + Ingredient.of(Tags.Items.NETHERRACKS), + Ingredient.of(OccultismTags.Items.MAGMA), + Ingredient.of(OccultismTags.Items.MAGMA), + Ingredient.of(OccultismTags.Items.MAGMA), + Ingredient.of(Items.LAVA_BUCKET), + Ingredient.of(Items.LAVA_BUCKET), + Ingredient.of(Items.LAVA_BUCKET), + Ingredient.of(Tags.Items.GEMS_DIAMOND)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .entityToSummon(OccultismEntities.POSSESSED_GHAST_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cows") + .entityToSacrifice(OccultismTags.Entities.COWS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_ghast")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(Items.CHORUS_FRUIT, "item.occultism.ritual_dummy.possess_weak_shulker"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_weak_shulker")), + 60, + RITUAL_SUMMON, + PENTACLE_POSSESS_DJINNI, + Ingredient.of(Tags.Items.ENDER_PEARLS), + Ingredient.of(Items.PURPLE_CONCRETE), + Ingredient.of(Tags.Items.END_STONES), + Ingredient.of(Items.MAGENTA_CONCRETE)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .entityToSacrifice(OccultismTags.Entities.CUBEMOB) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cubemob") + .entityToSummon(OccultismEntities.POSSESSED_WEAK_SHULKER_TYPE.get()) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_weak_shulker")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(OccultismItems.CURSED_HONEY.get(), "item.occultism.ritual_dummy.possess_bee"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_bee")), + 60, + RITUAL_SUMMON, + PENTACLE_POSSESS_DJINNI, + Ingredient.of(Items.HONEYCOMB), + Ingredient.of(Items.HONEY_BLOCK), + Ingredient.of(Items.HONEY_BOTTLE), + Ingredient.of(Items.HONEYCOMB_BLOCK)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .entityToSummon(OccultismEntities.POSSESSED_BEE_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.flying_passive") + .entityToSacrifice(OccultismTags.Entities.FLYING_PASSIVE) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_bee")); + //Foliot RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), makeLoreSpawnEgg(Items.PARROT_SPAWN_EGG, "item.occultism.ritual_dummy.possess_unbound_parrot"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_unbound_parrot")), @@ -690,250 +671,54 @@ private static void summonRituals(RecipeOutput recipeOutput, HolderLookup.Provid .entityToSacrificeDisplayName("ritual.occultism.sacrifice.chicken") .entityToSacrifice(OccultismTags.Entities.CHICKEN) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_unbound_parrot")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_common"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_COMMON), - 15, + makeLoreSpawnEgg(Items.END_STONE, "item.occultism.ritual_dummy.possess_endermite"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_endermite")), + 30, RITUAL_SUMMON, PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.CROPS), - Ingredient.of(Tags.Items.CROPS), - Ingredient.of(Tags.Items.CROPS), - Ingredient.of(Tags.Items.CROPS)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_COMMON) - .itemToUse(Ingredient.of(Items.EGG)) + Ingredient.of(ItemTags.DIRT), + Ingredient.of(Tags.Items.STONES), + Ingredient.of(ItemTags.DIRT), + Ingredient.of(Tags.Items.STONES)) .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_common")); - + .entityToSummon(OccultismEntities.POSSESSED_ENDERMITE_TYPE.get()) + .itemToUse(Ingredient.of(Items.EGG)) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_endermite")); RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_water"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_WATER), - 15, + makeLoreSpawnEgg(Items.PHANTOM_MEMBRANE, "item.occultism.ritual_dummy.possess_phantom"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_phantom")), + 30, RITUAL_SUMMON, PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Items.SEAGRASS), - Ingredient.of(Items.SEAGRASS), - Ingredient.of(Items.KELP), - Ingredient.of(Items.KELP), - Ingredient.of(Items.MUD), - Ingredient.of(Items.MUD), - Ingredient.of(Items.CLAY), - Ingredient.of(Items.CLAY)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_WATER) - .itemToUse(Ingredient.of(Items.SNOWBALL)) + Ingredient.of(Tags.Items.LEATHERS), + Ingredient.of(Tags.Items.FEATHERS), + Ingredient.of(Tags.Items.LEATHERS), + Ingredient.of(Tags.Items.FEATHERS)) .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_water")); - + .entityToSummon(OccultismEntities.POSSESSED_PHANTOM_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.flying_passive") + .entityToSacrifice(OccultismTags.Entities.FLYING_PASSIVE) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_phantom")); RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_small"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_SMALL), - 15, + makeLoreSpawnEgg(Items.EXPERIENCE_BOTTLE, "item.occultism.ritual_dummy.possess_witch"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_witch")), + 30, RITUAL_SUMMON, PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Tags.Items.FEATHERS), - Ingredient.of(Tags.Items.FEATHERS), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(Tags.Items.NUGGETS_IRON), - Ingredient.of(Tags.Items.NUGGETS_IRON), - Ingredient.of(Items.SUGAR), - Ingredient.of(Items.SUGAR)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SMALL) - .itemToUse(Ingredient.of(Items.EGG)) + Ingredient.of(Items.GLASS_BOTTLE), + Ingredient.of(Tags.Items.DUSTS_REDSTONE), + Ingredient.of(Items.BROWN_MUSHROOM), + Ingredient.of(Items.RED_MUSHROOM)) .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_small")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_rideable"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_RIDEABLE), - 30, - RITUAL_SUMMON, - PENTACLE_POSSESS_DJINNI, - Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), - Ingredient.of(Items.APPLE), - Ingredient.of(Items.GOLDEN_APPLE), - Ingredient.of(Items.CARROT), - Ingredient.of(Items.GOLDEN_CARROT), - Ingredient.of(Tags.Items.CROPS_CACTUS), - Ingredient.of(Items.WARPED_FUNGUS)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_RIDEABLE) - .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_rideable")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_villager"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_VILLAGER), - 30, - RITUAL_SUMMON, - PENTACLE_POSSESS_DJINNI, - Ingredient.of(ItemTags.BEDS), - Ingredient.of(Items.CAMPFIRE), - Ingredient.of(Tags.Items.FOODS_PIE)) - .entityTagToSummon(OccultismTags.Entities.VILLAGERS) - .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_villager")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_special"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_SPECIAL), - 30, - RITUAL_SUMMON, - PENTACLE_POSSESS_DJINNI, - Ingredient.of(ItemTags.WOOL), - Ingredient.of(ItemTags.WOOL), - Ingredient.of(OccultismTags.Items.MUSHROOM_BLOCKS), - Ingredient.of(Items.MOSS_BLOCK), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), - Ingredient.of(Items.PACKED_ICE), - Ingredient.of(Items.TERRACOTTA), - Ingredient.of(Items.BAMBOO_BLOCK)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SPECIAL) - .itemToUse(Ingredient.of(Items.FIREWORK_ROCKET)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_special")); - } - - private static void possessRituals(RecipeOutput recipeOutput) { - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - makeLoreSpawnEgg(Items.HEART_OF_THE_SEA, "item.occultism.ritual_dummy.possess_elder_guardian"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_elder_guardian")), - 90, - RITUAL_SUMMON, - PENTACLE_POSSESS_AFRIT, - Ingredient.of(Items.OXIDIZED_COPPER), - Ingredient.of(Items.PRISMARINE), - Ingredient.of(Items.PRISMARINE_BRICKS), - Ingredient.of(Items.DARK_PRISMARINE), - Ingredient.of(Items.YELLOW_WOOL), - Ingredient.of(Items.SEA_LANTERN), - Ingredient.of(Items.WATER_BUCKET), - Ingredient.of(Items.WATER_BUCKET), - Ingredient.of(Items.WATER_BUCKET), - Ingredient.of(Tags.Items.GEMS_EMERALD)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_ELDER_GUARDIAN_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.fish") - .entityToSacrifice(OccultismTags.Entities.FISH) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_elder_guardian")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI), - makeLoreSpawnEgg(Items.ENDER_PEARL, "item.occultism.ritual_dummy.possess_enderman"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_enderman")), - 60, - RITUAL_SUMMON, - PENTACLE_POSSESS_DJINNI, - Ingredient.of(Tags.Items.BONES), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(Tags.Items.END_STONES), - Ingredient.of(Items.ROTTEN_FLESH)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .entityToSummon(OccultismEntities.POSSESSED_ENDERMAN_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.pigs") - .entityToSacrifice(OccultismTags.Entities.PIGS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_enderman")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(Items.END_STONE, "item.occultism.ritual_dummy.possess_endermite"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_endermite")), - 30, - RITUAL_SUMMON, - PENTACLE_POSSESS_FOLIOT, - Ingredient.of(ItemTags.DIRT), - Ingredient.of(Tags.Items.STONES), - Ingredient.of(ItemTags.DIRT), - Ingredient.of(Tags.Items.STONES)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .entityToSummon(OccultismEntities.POSSESSED_ENDERMITE_TYPE.get()) - .itemToUse(Ingredient.of(Items.EGG)) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_endermite")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(Items.GHAST_TEAR, "item.occultism.ritual_dummy.possess_ghast"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_ghast")), - 60, - RITUAL_SUMMON, - PENTACLE_POSSESS_DJINNI, - Ingredient.of(Tags.Items.NETHERRACKS), - Ingredient.of(Tags.Items.NETHERRACKS), - Ingredient.of(Tags.Items.NETHERRACKS), - Ingredient.of(OccultismTags.Items.MAGMA), - Ingredient.of(OccultismTags.Items.MAGMA), - Ingredient.of(OccultismTags.Items.MAGMA), - Ingredient.of(Items.LAVA_BUCKET), - Ingredient.of(Items.LAVA_BUCKET), - Ingredient.of(Items.LAVA_BUCKET), - Ingredient.of(Tags.Items.GEMS_DIAMOND)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .entityToSummon(OccultismEntities.POSSESSED_GHAST_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cows") - .entityToSacrifice(OccultismTags.Entities.COWS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_ghast")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - makeLoreSpawnEgg(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE, "item.occultism.ritual_dummy.possess_hoglin"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_hoglin")), - 60, - RITUAL_SUMMON, - PENTACLE_POSSESS_AFRIT, - Ingredient.of(Items.NETHERITE_SCRAP), - Ingredient.of(Tags.Items.LEATHERS), - Ingredient.of(Tags.Items.NETHERRACKS), - Ingredient.of(Tags.Items.NETHERRACKS), - Ingredient.of(Items.PORKCHOP), - Ingredient.of(Items.PORKCHOP), - Ingredient.of(Items.PORKCHOP), - Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_HOGLIN_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.pigs") - .entityToSacrifice(OccultismTags.Entities.PIGS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_hoglin")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(Items.PHANTOM_MEMBRANE, "item.occultism.ritual_dummy.possess_phantom"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_phantom")), - 30, - RITUAL_SUMMON, - PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Tags.Items.LEATHERS), - Ingredient.of(Tags.Items.FEATHERS), - Ingredient.of(Tags.Items.LEATHERS), - Ingredient.of(Tags.Items.FEATHERS)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .entityToSummon(OccultismEntities.POSSESSED_PHANTOM_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.flying_passive") - .entityToSacrifice(OccultismTags.Entities.FLYING_PASSIVE) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_phantom")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - makeLoreSpawnEgg(Items.SHULKER_SHELL, "item.occultism.ritual_dummy.possess_shulker"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_shulker")), - 60, - RITUAL_SUMMON, - PENTACLE_POSSESS_AFRIT, - Ingredient.of(Items.DRAGON_BREATH), - Ingredient.of(Tags.Items.OBSIDIANS), - Ingredient.of(Tags.Items.END_STONES), - Ingredient.of(Items.PURPLE_GLAZED_TERRACOTTA)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_SHULKER_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cubemob") - .entityToSacrifice(OccultismTags.Entities.CUBEMOB) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_shulker")); - - + .entityToSummon(OccultismEntities.POSSESSED_WITCH_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cats") + .entityToSacrifice(OccultismTags.Entities.CATS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_witch")); RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), makeLoreSpawnEgg(Items.SKELETON_SKULL, "item.occultism.ritual_dummy.possess_skeleton"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_skeleton")), - 15, + 15, //half because need a lot in pentacles RITUAL_SUMMON, PENTACLE_POSSESS_FOLIOT, Ingredient.of(Tags.Items.BONES), @@ -946,239 +731,76 @@ private static void possessRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.CHICKEN) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_skeleton")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - makeLoreSpawnEgg(Items.ECHO_SHARD, "item.occultism.ritual_dummy.possess_warden"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_warden")), - 90, + //Marid + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), + makeLoreSpawnEgg(OccultismItems.CRUELTY_ESSENCE.get(), "item.occultism.ritual_dummy.possess_goat"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_goat")), + 240, + RITUAL_SUMMON, + PENTACLE_POSSESS_MARID, + Ingredient.of(Items.POINTED_DRIPSTONE), + Ingredient.of(Items.POINTED_DRIPSTONE), + Ingredient.of(Items.RABBIT_FOOT), + Ingredient.of(Items.RABBIT_FOOT), + Ingredient.of(Items.RABBIT_FOOT), + Ingredient.of(Items.RABBIT_FOOT), + Ingredient.of(Items.ARMADILLO_SCUTE), + Ingredient.of(Items.ARMADILLO_SCUTE), + Ingredient.of(Items.ARMADILLO_SCUTE), + Ingredient.of(Items.ARMADILLO_SCUTE), + Ingredient.of(ItemTags.WOOL), + Ingredient.of(ItemTags.WOOL)) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .entityToSummon(OccultismEntities.GOAT_OF_MERCY_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.tadpoles") + .entityToSacrifice(OccultismTags.Entities.TADPOLES) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_goat")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_IESNIUM_GOLEM.get(), "item.occultism.ritual_dummy.possess_iesnium_golem"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM.get()), + 240, RITUAL_SUMMON, + PENTACLE_POSSESS_MARID, + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(OccultismItems.MARID_ESSENCE), + Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.asItem()), + Ingredient.of(Tags.Items.NETHER_STARS)) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .entityToSummon(OccultismEntities.IESNIUM_GOLEM_TYPE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.iron_golem") + .entityToSacrifice(OccultismTags.Entities.IRON_GOLEM) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_iesnium_golem")); + } + + private static void familiarRituals(RecipeOutput recipeOutput) { + //Duration 45 * tier + //Afrit + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_GUARDIAN_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_guardian"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_guardian")), + 135, + RITUAL_FAMILIAR, PENTACLE_POSSESS_AFRIT, - Ingredient.of(Items.SCULK_SHRIEKER), - Ingredient.of(Items.SCULK_SENSOR), - Ingredient.of(Items.SCULK), - Ingredient.of(Items.SCULK), - Ingredient.of(Items.SCULK_SENSOR), - Ingredient.of(Items.SCULK), - Ingredient.of(Items.SCULK), - Ingredient.of(Items.SCULK_SENSOR), - Ingredient.of(Items.SCULK), - Ingredient.of(Items.SCULK)) + Ingredient.of(Tags.Items.GEMS_DIAMOND), + Ingredient.of(Tags.Items.GEMS_DIAMOND), + Ingredient.of(Tags.Items.GEMS_DIAMOND), + Ingredient.of(Tags.Items.GEMS_DIAMOND), + Ingredient.of(Items.GOLDEN_APPLE), + Ingredient.of(Items.GOLDEN_APPLE)) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.axolotls") - .entityToSacrifice(OccultismTags.Entities.AXOLOTL) - .entityToSummon(OccultismEntities.POSSESSED_WARDEN_TYPE.get()) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_warden")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(Items.CHORUS_FRUIT, "item.occultism.ritual_dummy.possess_weak_shulker"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_weak_shulker")), - 60, - RITUAL_SUMMON, - PENTACLE_POSSESS_DJINNI, - Ingredient.of(Tags.Items.ENDER_PEARLS), - Ingredient.of(Items.PURPLE_CONCRETE), - Ingredient.of(Tags.Items.END_STONES), - Ingredient.of(Items.MAGENTA_CONCRETE)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .entityToSacrifice(OccultismTags.Entities.CUBEMOB) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cubemob") - .entityToSummon(OccultismEntities.POSSESSED_WEAK_SHULKER_TYPE.get()) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_weak_shulker")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(Items.EXPERIENCE_BOTTLE, "item.occultism.ritual_dummy.possess_witch"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_witch")), - 30, - RITUAL_SUMMON, - PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Items.GLASS_BOTTLE), - Ingredient.of(Tags.Items.DUSTS_REDSTONE), - Ingredient.of(Items.BROWN_MUSHROOM), - Ingredient.of(Items.RED_MUSHROOM)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .entityToSummon(OccultismEntities.POSSESSED_WITCH_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cats") - .entityToSacrifice(OccultismTags.Entities.CATS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_witch")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - makeLoreSpawnEgg(OccultismItems.DEMONIC_MEAT.get(), "item.occultism.ritual_dummy.possess_zombie_piglin"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_zombie_piglin")), - 90, - RITUAL_SUMMON, - PENTACLE_POSSESS_UNBOUND_AFRIT, - Ingredient.of(Items.CHERRY_LEAVES), - Ingredient.of(Items.PINK_PETALS), - Ingredient.of(OccultismItems.TALLOW), - Ingredient.of(Items.QUARTZ)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.POSSESSED_ZOMBIE_PIGLIN_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.pigs") - .entityToSacrifice(OccultismTags.Entities.PIGS) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_zombie_piglin")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(OccultismItems.CURSED_HONEY.get(), "item.occultism.ritual_dummy.possess_bee"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_bee")), - 60, - RITUAL_SUMMON, - PENTACLE_POSSESS_DJINNI, - Ingredient.of(Items.HONEYCOMB), - Ingredient.of(Items.HONEY_BLOCK), - Ingredient.of(Items.HONEY_BOTTLE), - Ingredient.of(Items.HONEYCOMB_BLOCK)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .entityToSummon(OccultismEntities.POSSESSED_BEE_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.flying_passive") - .entityToSacrifice(OccultismTags.Entities.FLYING_PASSIVE) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_bee")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), - makeLoreSpawnEgg(OccultismItems.CRUELTY_ESSENCE.get(), "item.occultism.ritual_dummy.possess_goat"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/possess_goat")), - 240, - RITUAL_SUMMON, - PENTACLE_POSSESS_MARID, - Ingredient.of(Items.POINTED_DRIPSTONE), - Ingredient.of(Items.POINTED_DRIPSTONE), - Ingredient.of(Items.RABBIT_FOOT), - Ingredient.of(Items.RABBIT_FOOT), - Ingredient.of(Items.RABBIT_FOOT), - Ingredient.of(Items.RABBIT_FOOT), - Ingredient.of(Items.ARMADILLO_SCUTE), - Ingredient.of(Items.ARMADILLO_SCUTE), - Ingredient.of(Items.ARMADILLO_SCUTE), - Ingredient.of(Items.ARMADILLO_SCUTE), - Ingredient.of(ItemTags.WOOL), - Ingredient.of(ItemTags.WOOL)) - .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) - .entityToSummon(OccultismEntities.GOAT_OF_MERCY_TYPE.get()) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.tadpoles") - .entityToSacrifice(OccultismTags.Entities.TADPOLES) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_goat")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_common"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_COMMON), - 60, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.SEEDS), - Ingredient.of(Tags.Items.CROPS), - Ingredient.of(Tags.Items.CROPS), - Ingredient.of(Tags.Items.CROPS), - Ingredient.of(Tags.Items.CROPS)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_COMMON) - .itemToUse(Ingredient.of(Items.EGG)) - .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) - .summonNumber(7) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_common")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_water"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_WATER), - 60, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.SEAGRASS), - Ingredient.of(Items.SEAGRASS), - Ingredient.of(Items.KELP), - Ingredient.of(Items.KELP), - Ingredient.of(Items.MUD), - Ingredient.of(Items.MUD), - Ingredient.of(Items.CLAY), - Ingredient.of(Items.CLAY)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_WATER) - .itemToUse(Ingredient.of(Items.SNOWBALL)) - .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) - .summonNumber(7) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_water")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_small"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_SMALL), - 60, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Tags.Items.FEATHERS), - Ingredient.of(Tags.Items.FEATHERS), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(Tags.Items.NUGGETS_IRON), - Ingredient.of(Tags.Items.NUGGETS_IRON), - Ingredient.of(Items.SUGAR), - Ingredient.of(Items.SUGAR)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SMALL) - .itemToUse(Ingredient.of(Items.EGG)) - .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) - .summonNumber(7) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_small")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_rideable"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_RIDEABLE), - 60, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), - Ingredient.of(Items.APPLE), - Ingredient.of(Items.GOLDEN_APPLE), - Ingredient.of(Items.CARROT), - Ingredient.of(Items.GOLDEN_CARROT), - Ingredient.of(Tags.Items.CROPS_CACTUS), - Ingredient.of(Items.WARPED_FUNGUS)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_RIDEABLE) - .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) - .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) - .summonNumber(3) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_rideable")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_villager"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_VILLAGER), - 60, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(ItemTags.BEDS), - Ingredient.of(Items.CAMPFIRE), - Ingredient.of(Tags.Items.FOODS_PIE)) - .entityTagToSummon(OccultismTags.Entities.VILLAGERS) - .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) - .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) - .summonNumber(3) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_villager")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), - makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_special"), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_SPECIAL), - 60, - RITUAL_SUMMON_WILD, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(ItemTags.WOOL), - Ingredient.of(ItemTags.WOOL), - Ingredient.of(OccultismTags.Items.MUSHROOM_BLOCKS), - Ingredient.of(Items.MOSS_BLOCK), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), - Ingredient.of(Items.PACKED_ICE), - Ingredient.of(Items.TERRACOTTA), - Ingredient.of(Items.BAMBOO_BLOCK)) - .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SPECIAL) - .itemToUse(Ingredient.of(Items.FIREWORK_ROCKET)) - .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) - .summonNumber(3) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_special")); - } - - private static void familiarRituals(RecipeOutput recipeOutput) { + .entityToSummon(OccultismEntities.GUARDIAN_FAMILIAR_TYPE.get()) + .entityToSacrifice(OccultismTags.Entities.HUMANS) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_guardian")); + //Djinni RitualRecipeBuilder.ritualRecipeBuilder( Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_BAT_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_bat"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_bat")), - 60, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Items.GOLDEN_CARROT), @@ -1192,26 +814,10 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.BATS) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.bats") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_bat")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_BEAVER_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_beaver"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_beaver")), - 30, - RITUAL_FAMILIAR, - PENTACLE_POSSESS_FOLIOT, - Ingredient.of(ItemTags.LOGS), - Ingredient.of(ItemTags.LOGS), - Ingredient.of(ItemTags.LOGS), - Ingredient.of(ItemTags.LOGS)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .entityToSummon(OccultismEntities.BEAVER_FAMILIAR_TYPE.get()) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_beaver")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_BEHOLDER_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_beholder"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_beholder")), - 30, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Items.SPIDER_EYE), @@ -1221,38 +827,16 @@ private static void familiarRituals(RecipeOutput recipeOutput) { Ingredient.of(Tags.Items.DUSTS_GLOWSTONE), Ingredient.of(Tags.Items.DUSTS_GLOWSTONE), Ingredient.of(Tags.Items.DUSTS_GLOWSTONE), - Ingredient.of(Tags.Items.DUSTS_GLOWSTONE) - ) + Ingredient.of(Tags.Items.DUSTS_GLOWSTONE)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .entityToSummon(OccultismEntities.BEHOLDER_FAMILIAR_TYPE.get()) .entityToSacrifice(OccultismTags.Entities.SPIDERS) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.spiders") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_beholder")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_BLACKSMITH_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_blacksmith"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_blacksmith")), - 30, - RITUAL_FAMILIAR, - PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Items.IRON_SHOVEL), - Ingredient.of(Items.IRON_PICKAXE), - Ingredient.of(Items.IRON_AXE), - Ingredient.of(Items.ANVIL), - Ingredient.of(Tags.Items.STONES), - Ingredient.of(Tags.Items.STONES), - Ingredient.of(Tags.Items.STONES), - Ingredient.of(Tags.Items.STONES)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .entityToSummon(OccultismEntities.BLACKSMITH_FAMILIAR_TYPE.get()) - .entityToSacrifice(OccultismTags.Entities.ZOMBIES) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.zombies") - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_blacksmith")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_CTHULHU_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_cthulhu"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_cthulhu")), - 60, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(ItemTags.FISHES), @@ -1268,13 +852,11 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrificeDisplayName("ritual.occultism.sacrifice.squid") .entityToSummon(OccultismEntities.CTHULHU_FAMILIAR_TYPE.get()) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_cthulhu")); - - RitualRecipeBuilder.ritualRecipeBuilder( Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_CHIMERA_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_chimera"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_chimera")), - 60, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Tags.Items.LEATHERS), @@ -1285,36 +867,16 @@ private static void familiarRituals(RecipeOutput recipeOutput) { Ingredient.of(Items.MUTTON), Ingredient.of(Items.PORKCHOP), Ingredient.of(Items.BEEF), - Ingredient.of(Items.CHICKEN) - ) + Ingredient.of(Items.CHICKEN)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .entityToSummon(OccultismEntities.CHIMERA_FAMILIAR_TYPE.get()) .entityToSacrifice(OccultismTags.Entities.SHEEP) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.sheep") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_chimera")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DEER_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_deer"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_deer")), - 15, - RITUAL_FAMILIAR, - PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Tags.Items.RODS_WOODEN), - Ingredient.of(Tags.Items.RODS_WOODEN), - Ingredient.of(Tags.Items.RODS_WOODEN), - Ingredient.of(Tags.Items.RODS_WOODEN), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(Tags.Items.STRINGS)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .entityToSummon(OccultismEntities.DEER_FAMILIAR_TYPE.get()) - .entityToSacrifice(OccultismTags.Entities.COWS) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cows") - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_deer")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DEVIL_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_devil"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_devil")), - 60, + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DEVIL_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_devil"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_devil")), + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Items.LAVA_BUCKET), @@ -1330,12 +892,10 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.HORSES) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.horses") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_devil")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DRAGON_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_dragon"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_dragon")), - 60, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Items.LAVA_BUCKET), @@ -1351,11 +911,10 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.HORSES) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.horses") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_dragon")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_FAIRY_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_fairy"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_fairy")), - 30, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Items.GOLDEN_APPLE), @@ -1370,44 +929,10 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.HORSES) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.horses") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_fairy")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_GREEDY_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_greedy"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_greedy")), - 30, - RITUAL_FAMILIAR, - PENTACLE_POSSESS_FOLIOT, - Ingredient.of(Tags.Items.CHESTS), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), - Ingredient.of(Items.DISPENSER), - Ingredient.of(Items.HOPPER)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .entityToSummon(OccultismEntities.GREEDY_FAMILIAR_TYPE.get()) - .entityToSacrifice(OccultismTags.Entities.ZOMBIES) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.zombies") - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_greedy")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_GUARDIAN_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_guardian"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_guardian")), - 60, - RITUAL_FAMILIAR, - PENTACLE_POSSESS_AFRIT, - Ingredient.of(Tags.Items.GEMS_DIAMOND), - Ingredient.of(Tags.Items.GEMS_DIAMOND), - Ingredient.of(Tags.Items.GEMS_DIAMOND), - Ingredient.of(Tags.Items.GEMS_DIAMOND), - Ingredient.of(Items.GOLDEN_APPLE), - Ingredient.of(Items.GOLDEN_APPLE)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSummon(OccultismEntities.GUARDIAN_FAMILIAR_TYPE.get()) - .entityToSacrifice(OccultismTags.Entities.HUMANS) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_guardian")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_HEADLESS_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_headless"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_headless")), - 60, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Tags.Items.CROPS_WHEAT), @@ -1421,11 +946,10 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.SNOW_GOLEM) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.snow_golem") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_headless")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_MUMMY_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_mummy"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_mummy")), - 30, + 90, RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Tags.Items.SLIME_BALLS), @@ -1441,12 +965,11 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.LLAMAS) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.llamas") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_mummy")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_OTHERWORLD_BIRD.get(), "item.occultism.ritual_dummy.familiar_otherworld_bird"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_otherworld_bird")), - 30, - OccultismRituals.SUMMON_TAMED.getId(), + 90, + RITUAL_FAMILIAR, PENTACLE_POSSESS_DJINNI, Ingredient.of(Tags.Items.FEATHERS), Ingredient.of(Tags.Items.FEATHERS), @@ -1459,10 +982,75 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrificeDisplayName("ritual.occultism.sacrifice.parrots") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_otherworld_bird")); + //Foliot + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_BEAVER_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_beaver"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_beaver")), + 45, + RITUAL_FAMILIAR, + PENTACLE_POSSESS_FOLIOT, + Ingredient.of(ItemTags.LOGS), + Ingredient.of(ItemTags.LOGS), + Ingredient.of(ItemTags.LOGS), + Ingredient.of(ItemTags.LOGS)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .entityToSummon(OccultismEntities.BEAVER_FAMILIAR_TYPE.get()) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_beaver")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_BLACKSMITH_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_blacksmith"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_blacksmith")), + 45, + RITUAL_FAMILIAR, + PENTACLE_POSSESS_FOLIOT, + Ingredient.of(Items.IRON_SHOVEL), + Ingredient.of(Items.IRON_PICKAXE), + Ingredient.of(Items.IRON_AXE), + Ingredient.of(Items.ANVIL), + Ingredient.of(Tags.Items.STONES), + Ingredient.of(Tags.Items.STONES), + Ingredient.of(Tags.Items.STONES), + Ingredient.of(Tags.Items.STONES)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .entityToSummon(OccultismEntities.BLACKSMITH_FAMILIAR_TYPE.get()) + .entityToSacrifice(OccultismTags.Entities.ZOMBIES) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.zombies") + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_blacksmith")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_DEER_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_deer"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_deer")), + 45, + RITUAL_FAMILIAR, + PENTACLE_POSSESS_FOLIOT, + Ingredient.of(Tags.Items.RODS_WOODEN), + Ingredient.of(Tags.Items.RODS_WOODEN), + Ingredient.of(Tags.Items.RODS_WOODEN), + Ingredient.of(Tags.Items.RODS_WOODEN), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(Tags.Items.STRINGS)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .entityToSummon(OccultismEntities.DEER_FAMILIAR_TYPE.get()) + .entityToSacrifice(OccultismTags.Entities.COWS) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.cows") + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_deer")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_GREEDY_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_greedy"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_greedy")), + 45, + RITUAL_FAMILIAR, + PENTACLE_POSSESS_FOLIOT, + Ingredient.of(Tags.Items.CHESTS), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), + Ingredient.of(Items.DISPENSER), + Ingredient.of(Items.HOPPER)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .entityToSummon(OccultismEntities.GREEDY_FAMILIAR_TYPE.get()) + .entityToSacrifice(OccultismTags.Entities.ZOMBIES) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.zombies") + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_greedy")); RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), makeLoreSpawnEgg(OccultismItems.SPAWN_EGG_PARROT_FAMILIAR.get(), "item.occultism.ritual_dummy.familiar_parrot"), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/familiar_parrot")), - 30, + 45, OccultismRituals.SUMMON_WITH_CHANCE_OF_CHICKEN_TAMED.getId(), PENTACLE_POSSESS_FOLIOT, Ingredient.of(Tags.Items.FEATHERS), @@ -1476,29 +1064,75 @@ private static void familiarRituals(RecipeOutput recipeOutput) { .entityToSacrifice(OccultismTags.Entities.CHICKEN) .entityToSacrificeDisplayName("ritual.occultism.sacrifice.chicken") .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/familiar_parrot")); - - } private static void craftingRituals(RecipeOutput recipeOutput) { + //Duration 30 * tier^2 + 30 + //Afrit + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + new ItemStack(OccultismItems.RITUAL_SATCHEL_T2.get()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T2.get()), + 300, + RITUAL_CRAFT_WITH_SPIRIT_NAME, + PENTACLE_CRAFT_AFRIT, + Ingredient.of(Items.HOPPER), + Ingredient.of(Items.DISPENSER), + Ingredient.of(ItemTags.WOOL), + Ingredient.of(Tags.Items.LEATHERS), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(OccultismTags.Items.SILVER_INGOT), + Ingredient.of(OccultismItems.AFRIT_ESSENCE.get()), + Ingredient.of(Tags.Items.ENDER_PEARLS), + Ingredient.of(Tags.Items.ENDER_PEARLS), + Ingredient.of(Tags.Items.ENDER_PEARLS), + Ingredient.of(Tags.Items.ENDER_PEARLS)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_ritual_satchel_t2")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + new ItemStack(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.asItem()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL.get()), + 300, + RITUAL_CRAFT, + PENTACLE_CRAFT_AFRIT, + Ingredient.of(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.asItem()), + Ingredient.of(OccultismItems.RESEARCH_FRAGMENT_DUST), + Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.asItem()), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(OccultismItems.AFRIT_ESSENCE.get())) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_iesnium_sacrificial_bowl")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + new ItemStack(OccultismItems.WITHERITE_DUST.get(), 3), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_witherite_dust")), + 150, + RITUAL_CRAFT, + PENTACLE_CRAFT_AFRIT, + Ingredient.of(OccultismTags.Items.NETHERITE_DUST), + Ingredient.of(OccultismTags.Items.BLACKSTONE_DUST), + Ingredient.of(OccultismTags.Items.BLACKSTONE_DUST), + Ingredient.of(Items.WITHER_ROSE), + Ingredient.of(Items.WITHER_ROSE), + Ingredient.of(Items.WITHER_ROSE)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_witherite_dust")); + + //Djinni RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), new ItemStack(OccultismItems.DIMENSIONAL_MATRIX.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_dimensional_matrix")), - 240, + 150, RITUAL_CRAFT_WITH_SPIRIT_NAME, PENTACLE_CRAFT_DJINNI, Ingredient.of(Items.QUARTZ_BLOCK), Ingredient.of(Items.QUARTZ_BLOCK), Ingredient.of(Items.QUARTZ_BLOCK), - Ingredient.of(Tags.Items.ENDER_PEARLS) - ) + Ingredient.of(Tags.Items.ENDER_PEARLS)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_dimensional_matrix")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), new ItemStack(OccultismBlocks.DIMENSIONAL_MINESHAFT.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_dimensional_mineshaft")), - 240, + 150, RITUAL_CRAFT, PENTACLE_CRAFT_DJINNI, Ingredient.of(OccultismBlocks.OTHERSTONE.get()), @@ -1510,11 +1144,10 @@ private static void craftingRituals(RecipeOutput recipeOutput) { Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get())) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_dimensional_mineshaft")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), new ItemStack(OccultismItems.FAMILIAR_RING.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_familiar_ring")), - 90, + 150, RITUAL_CRAFT, PENTACLE_CRAFT_DJINNI, Ingredient.of(OccultismItems.SOUL_GEM_ITEM.get()), @@ -1524,55 +1157,23 @@ private static void craftingRituals(RecipeOutput recipeOutput) { Ingredient.of(OccultismTags.Items.SILVER_INGOT)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_familiar_ring")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - new ItemStack(OccultismItems.INFUSED_LENSES.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_infused_lenses")), - 60, - RITUAL_CRAFT, - PENTACLE_CRAFT_FOLIOT, - Ingredient.of(OccultismItems.LENSES.get()), - Ingredient.of(OccultismTags.Items.SILVER_INGOT), - Ingredient.of(OccultismTags.Items.SILVER_INGOT), - Ingredient.of(Tags.Items.INGOTS_GOLD) - ).unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_infused_lenses")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), new ItemStack(OccultismItems.INFUSED_PICKAXE.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_infused_pickaxe")), - 60, + 150, RITUAL_CRAFT_WITH_SPIRIT_NAME, PENTACLE_CRAFT_DJINNI, Ingredient.of(Tags.Items.RODS_WOODEN), Ingredient.of(Tags.Items.RODS_WOODEN), Ingredient.of(OccultismItems.SPIRIT_ATTUNED_PICKAXE_HEAD.get()), Ingredient.of(OccultismTags.Items.SILVER_INGOT), - Ingredient.of(OccultismTags.Items.SILVER_INGOT) - ) + Ingredient.of(OccultismTags.Items.SILVER_INGOT)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_infused_pickaxe")); - - minerRecipes(recipeOutput); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - new ItemStack(OccultismItems.SATCHEL.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_satchel")), - 240, - RITUAL_CRAFT_WITH_SPIRIT_NAME, - PENTACLE_CRAFT_FOLIOT, - Ingredient.of(Tags.Items.CHESTS_WOODEN), - Ingredient.of(Tags.Items.LEATHERS), - Ingredient.of(Tags.Items.LEATHERS), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(OccultismTags.Items.SILVER_INGOT)) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_satchel")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), new ItemStack(OccultismItems.RITUAL_SATCHEL_T1.get()), makeRitualDummy(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T1.get()), - 240, + 150, RITUAL_CRAFT_WITH_SPIRIT_NAME, PENTACLE_CRAFT_DJINNI, Ingredient.of(Items.HOPPER), @@ -1585,33 +1186,10 @@ private static void craftingRituals(RecipeOutput recipeOutput) { Ingredient.of(OccultismTags.Items.SILVER_INGOT)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_ritual_satchel_t1")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - new ItemStack(OccultismItems.RITUAL_SATCHEL_T2.get()), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T2.get()), - 240, - RITUAL_CRAFT_WITH_SPIRIT_NAME, - PENTACLE_CRAFT_AFRIT, - Ingredient.of(Items.HOPPER), - Ingredient.of(Items.DISPENSER), - Ingredient.of(ItemTags.WOOL), - Ingredient.of(Tags.Items.LEATHERS), - Ingredient.of(Tags.Items.STRINGS), - Ingredient.of(OccultismTags.Items.SILVER_INGOT), - Ingredient.of(OccultismItems.AFRIT_ESSENCE.get()), - Ingredient.of(Tags.Items.ENDER_PEARLS), - Ingredient.of(Tags.Items.ENDER_PEARLS), - Ingredient.of(Tags.Items.ENDER_PEARLS), - Ingredient.of(Tags.Items.ENDER_PEARLS) - ) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_ritual_satchel_t2")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), new ItemStack(OccultismItems.SOUL_GEM_ITEM.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_soul_gem")), - 60, + 150, RITUAL_CRAFT, PENTACLE_CRAFT_DJINNI, Ingredient.of(Tags.Items.GEMS_DIAMOND), @@ -1624,67 +1202,61 @@ private static void craftingRituals(RecipeOutput recipeOutput) { Ingredient.of(Blocks.SOUL_SAND) ).unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_soul_gem")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), - new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER1.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier1")), - 120, - RITUAL_CRAFT, - PENTACLE_CRAFT_FOLIOT, - Ingredient.of(OccultismBlocks.OTHERSTONE_PEDESTAL.get()), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_COPPER), - Ingredient.of(OccultismTags.Items.BLAZE_DUST), - Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM.get())) - .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier1")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER2.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier2")), - 240, + new ItemStack(OccultismItems.STORAGE_REMOTE.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_storage_remote")), + 150, RITUAL_CRAFT, PENTACLE_CRAFT_DJINNI, - Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER1.get()), - Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_SILVER), - Ingredient.of(Items.GHAST_TEAR), - Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM.get()), - Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM.get())) + Ingredient.of(OccultismItems.STORAGE_REMOTE_INERT.get()), + Ingredient.of(Tags.Items.ENDER_PEARLS), + Ingredient.of(Tags.Items.ENDER_PEARLS), + Ingredient.of(Tags.Items.GEMS_QUARTZ)) .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier2")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER3.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier3")), - 240, + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_storage_remote")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + new ItemStack(OccultismItems.GRAY_PASTE.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_gray_paste")), + 150, RITUAL_CRAFT, - PENTACLE_CRAFT_AFRIT, - Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER2.get()), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_GOLD), - Ingredient.of(Items.NETHER_STAR), - Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), - Ingredient.of(OccultismItems.AFRIT_ESSENCE.get())) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier3")); + PENTACLE_CRAFT_DJINNI, + Ingredient.of(Tags.Items.GUNPOWDERS), + Ingredient.of(Items.CLAY_BALL), + Ingredient.of(Items.PHANTOM_MEMBRANE), + Ingredient.of(Tags.Items.DYES_GRAY)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_gray_paste")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), - new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER4.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier4")), - 240, + //Foliot + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + new ItemStack(OccultismItems.INFUSED_LENSES.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_infused_lenses")), + 60, RITUAL_CRAFT, - PENTACLE_CRAFT_MARID, - Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER3.get()), - Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), - Ingredient.of(Items.DRAGON_HEAD), - Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), - Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), - Ingredient.of(OccultismItems.MARID_ESSENCE.get())) - .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier4")); - + PENTACLE_CRAFT_FOLIOT, + Ingredient.of(OccultismItems.LENSES.get()), + Ingredient.of(OccultismTags.Items.SILVER_INGOT), + Ingredient.of(OccultismTags.Items.SILVER_INGOT), + Ingredient.of(Tags.Items.INGOTS_GOLD) + ).unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_infused_lenses")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + new ItemStack(OccultismItems.SATCHEL.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_satchel")), + 60, + RITUAL_CRAFT_WITH_SPIRIT_NAME, + PENTACLE_CRAFT_FOLIOT, + Ingredient.of(Tags.Items.CHESTS_WOODEN), + Ingredient.of(Tags.Items.LEATHERS), + Ingredient.of(Tags.Items.LEATHERS), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(OccultismTags.Items.SILVER_INGOT)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_satchel")); RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), new ItemStack(OccultismBlocks.STABLE_WORMHOLE.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stable_wormhole")), - 120, + 60, RITUAL_CRAFT, PENTACLE_CRAFT_FOLIOT, Ingredient.of(OccultismItems.WORMHOLE_FRAME.get()), @@ -1693,7 +1265,6 @@ private static void craftingRituals(RecipeOutput recipeOutput) { Ingredient.of(Tags.Items.GEMS_QUARTZ)) .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stable_wormhole")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), new ItemStack(OccultismBlocks.STORAGE_CONTROLLER_BASE.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_storage_controller_base")), @@ -1701,46 +1272,11 @@ private static void craftingRituals(RecipeOutput recipeOutput) { RITUAL_CRAFT, PENTACLE_CRAFT_FOLIOT, Ingredient.of(OccultismBlocks.OTHERSTONE_PEDESTAL.get()), - Ingredient.of(Tags.Items.INGOTS_GOLD), - Ingredient.of(Tags.Items.INGOTS_GOLD), + Ingredient.of(Tags.Items.INGOTS_COPPER), + Ingredient.of(Tags.Items.INGOTS_COPPER), Ingredient.of(Tags.Items.INGOTS_GOLD)) .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_storage_controller_base")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - new ItemStack(OccultismItems.STORAGE_REMOTE.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_storage_remote")), - 120, - RITUAL_CRAFT, - PENTACLE_CRAFT_DJINNI, - Ingredient.of(OccultismItems.STORAGE_REMOTE_INERT.get()), - Ingredient.of(Tags.Items.ENDER_PEARLS), - Ingredient.of(Tags.Items.ENDER_PEARLS), - Ingredient.of(Tags.Items.GEMS_QUARTZ)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_storage_remote")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.DIAMOND_BLOCK), - new ItemStack(Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_WILD_TRIM.get()), - 240, - RITUAL_CRAFT, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.MOSSY_COBBLESTONE), - Ingredient.of(Items.JUNGLE_SAPLING), - Ingredient.of(Items.BAMBOO), - Ingredient.of(Items.GLISTERING_MELON_SLICE), - Ingredient.of(Items.MOSSY_COBBLESTONE), - Ingredient.of(Items.JUNGLE_SAPLING), - Ingredient.of(Items.BAMBOO), - Ingredient.of(Items.GLISTERING_MELON_SLICE), - Ingredient.of(Items.MOSSY_COBBLESTONE), - Ingredient.of(Items.JUNGLE_SAPLING), - Ingredient.of(Items.BAMBOO), - Ingredient.of(Items.GLISTERING_MELON_SLICE)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSacrifice(OccultismTags.Entities.OCELOT) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.ocelot") - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_wild_trim")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), new ItemStack(OccultismItems.RESEARCH_FRAGMENT_DUST.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_research_fragment_dust")), @@ -1755,7 +1291,7 @@ private static void craftingRituals(RecipeOutput recipeOutput) { RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), new ItemStack(OccultismItems.NATURE_PASTE.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_nature_paste")), - 30, + 60, RITUAL_CRAFT, PENTACLE_CRAFT_FOLIOT, Ingredient.of(ItemTags.LEAVES), @@ -1769,36 +1305,12 @@ private static void craftingRituals(RecipeOutput recipeOutput) { Ingredient.of(Tags.Items.SEEDS)) .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_nature_paste")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - new ItemStack(OccultismItems.GRAY_PASTE.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_gray_paste")), - 90, - RITUAL_CRAFT, - PENTACLE_CRAFT_DJINNI, - Ingredient.of(Tags.Items.GUNPOWDERS), - Ingredient.of(Items.CLAY_BALL), - Ingredient.of(Items.PHANTOM_MEMBRANE), - Ingredient.of(Tags.Items.DYES_GRAY)) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_gray_paste")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - new ItemStack(OccultismItems.WITHERITE_DUST.get(), 3), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_witherite_dust")), - 150, - RITUAL_CRAFT, - PENTACLE_CRAFT_AFRIT, - Ingredient.of(OccultismTags.Items.NETHERITE_DUST), - Ingredient.of(OccultismTags.Items.BLACKSTONE_DUST), - Ingredient.of(OccultismTags.Items.BLACKSTONE_DUST), - Ingredient.of(Items.WITHER_ROSE), - Ingredient.of(Items.WITHER_ROSE), - Ingredient.of(Items.WITHER_ROSE)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_witherite_dust")); + + //Marid RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), new ItemStack(OccultismItems.DRAGONYST_DUST.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_dragonyst_dust")), - 300, + 510, RITUAL_CRAFT, PENTACLE_CRAFT_MARID, Ingredient.of(OccultismTags.Items.AMETHYST_DUST), @@ -1813,86 +1325,81 @@ private static void craftingRituals(RecipeOutput recipeOutput) { Ingredient.of(Items.DRAGON_BREATH)) .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_dragonyst_dust")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.AMETHYST_BLOCK), - new ItemStack(Items.BUDDING_AMETHYST), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_BUDDING_AMETHYST.get()), - 180, - RITUAL_CRAFT, - PENTACLE_CONTACT_WILD_SPIRIT, - Ingredient.of(Items.SMALL_AMETHYST_BUD), - Ingredient.of(Items.MEDIUM_AMETHYST_BUD), - Ingredient.of(Items.LARGE_AMETHYST_BUD), - Ingredient.of(Items.AMETHYST_CLUSTER), - Ingredient.of(Items.AMETHYST_SHARD), - Ingredient.of(OccultismTags.Items.AMETHYST_DUST), - Ingredient.of(Items.SMALL_AMETHYST_BUD), - Ingredient.of(Items.MEDIUM_AMETHYST_BUD), - Ingredient.of(Items.LARGE_AMETHYST_BUD), - Ingredient.of(Items.AMETHYST_CLUSTER), - Ingredient.of(Items.AMETHYST_SHARD), - Ingredient.of(OccultismTags.Items.AMETHYST_DUST)) - .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.allay") - .entityToSacrifice(OccultismTags.Entities.ALLAY) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_budding_amethyst")); - - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.DEEPSLATE), - new ItemStack(Items.REINFORCED_DEEPSLATE), - makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE.get()), - 360, + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), + new ItemStack(OccultismBlocks.IESNIUM_ANVIL.get()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL.get()), + 510, RITUAL_CRAFT, - PENTACLE_CONTACT_ELDRITCH_SPIRIT, - Ingredient.of(Tags.Items.NETHER_STARS), - Ingredient.of(Items.SHULKER_SHELL), - Ingredient.of(Items.ARMADILLO_SCUTE), - Ingredient.of(Items.TURTLE_SCUTE), - Ingredient.of(Items.ECHO_SHARD), + PENTACLE_CRAFT_MARID, Ingredient.of(Items.ANVIL), - Ingredient.of(Tags.Items.STORAGE_BLOCKS_NETHERITE), - Ingredient.of(Tags.Items.OBSIDIANS), - Ingredient.of(Tags.Items.OBSIDIANS_CRYING), - Ingredient.of(Items.END_STONE_BRICKS), - Ingredient.of(Items.SCULK_CATALYST), - Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM)) + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(OccultismItems.MARID_ESSENCE.get())) .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) - .entityToSacrificeDisplayName("ritual.occultism.sacrifice.warden") - .entityToSacrifice(OccultismTags.Entities.WARDEN) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_reinforced_deepslate")); - + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_iesnium_anvil")); } - private static void minerRecipes(RecipeOutput recipeOutput) { + private static void stabilizerRecipes(RecipeOutput recipeOutput) { + //Duration 30 * tier^2 + 30 + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER1.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier1")), + 60, + RITUAL_CRAFT, + PENTACLE_CRAFT_FOLIOT, + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER0.get()), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_COPPER), + Ingredient.of(OccultismTags.Items.BLAZE_DUST), + Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM.get())) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier1")); + + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER2.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier2")), + 150, + RITUAL_CRAFT, + PENTACLE_CRAFT_DJINNI, + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER1.get()), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_SILVER), + Ingredient.of(Items.GHAST_TEAR), + Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM.get()), + Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM.get())) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier2")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), - new ItemStack(OccultismItems.MINER_AFRIT_DEEPS.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_miner_afrit_deeps")), - 120, - RITUAL_CRAFT_MINER_SPIRIT, + new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER3.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier3")), + 300, + RITUAL_CRAFT, PENTACLE_CRAFT_AFRIT, - Ingredient.of(OccultismItems.MINER_DJINNI_ORES.get()), - Ingredient.of(OccultismItems.IESNIUM_PICKAXE.get()), + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER2.get()), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_GOLD), + Ingredient.of(Items.NETHER_STAR), Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), - Ingredient.of(OccultismItems.AFRIT_ESSENCE.get()), - Ingredient.of(Items.ECHO_SHARD), - Ingredient.of(Blocks.CRYING_OBSIDIAN)) + Ingredient.of(OccultismItems.AFRIT_ESSENCE.get())) .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_miner_afrit_deeps")); + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier3")); - RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), - new ItemStack(OccultismItems.MINER_DJINNI_ORES.get()), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_miner_djinni_ores")), - 60, - RITUAL_CRAFT_MINER_SPIRIT, - PENTACLE_CRAFT_DJINNI, - Ingredient.of(OccultismItems.MINER_FOLIOT_UNSPECIALIZED.get()), - Ingredient.of(OccultismItems.IESNIUM_PICKAXE.get()), + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), + new ItemStack(OccultismBlocks.STORAGE_STABILIZER_TIER4.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_stabilizer_tier4")), + 510, + RITUAL_CRAFT, + PENTACLE_CRAFT_MARID, + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER3.get()), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(Items.DRAGON_HEAD), Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), - Ingredient.of(Tags.Items.INGOTS_GOLD), - Ingredient.of(Tags.Items.GEMS_LAPIS), - Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get())) - .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) - .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_miner_djinni_ores")); - + Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), + Ingredient.of(OccultismItems.MARID_ESSENCE.get())) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_stabilizer_tier4")); + } + private static void minerRecipes(RecipeOutput recipeOutput) { + //Duration 30 * tier^2 + 30 RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), new ItemStack(OccultismItems.MINER_FOLIOT_UNSPECIALIZED.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_miner_foliot_unspecialized")), @@ -1906,10 +1413,40 @@ private static void minerRecipes(RecipeOutput recipeOutput) { .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_miner_foliot_unspecialized")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + new ItemStack(OccultismItems.MINER_DJINNI_ORES.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_miner_djinni_ores")), + 150, + RITUAL_CRAFT_MINER_SPIRIT, + PENTACLE_CRAFT_DJINNI, + Ingredient.of(OccultismItems.MINER_FOLIOT_UNSPECIALIZED.get()), + Ingredient.of(OccultismItems.IESNIUM_PICKAXE.get()), + Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), + Ingredient.of(Tags.Items.INGOTS_GOLD), + Ingredient.of(Tags.Items.GEMS_LAPIS), + Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get())) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_miner_djinni_ores")); + + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + new ItemStack(OccultismItems.MINER_AFRIT_DEEPS.get()), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_miner_afrit_deeps")), + 300, + RITUAL_CRAFT_MINER_SPIRIT, + PENTACLE_CRAFT_AFRIT, + Ingredient.of(OccultismItems.MINER_DJINNI_ORES.get()), + Ingredient.of(OccultismItems.IESNIUM_PICKAXE.get()), + Ingredient.of(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()), + Ingredient.of(OccultismItems.AFRIT_ESSENCE.get()), + Ingredient.of(Items.ECHO_SHARD), + Ingredient.of(Blocks.CRYING_OBSIDIAN)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/craft_miner_afrit_deeps")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get()), new ItemStack(OccultismItems.MINER_MARID_MASTER.get()), makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/craft_miner_marid_master")), - 120, + 510, RITUAL_CRAFT_MINER_SPIRIT, PENTACLE_CRAFT_MARID, Ingredient.of(OccultismItems.MINER_AFRIT_DEEPS.get()), @@ -1926,7 +1463,7 @@ private static void minerRecipes(RecipeOutput recipeOutput) { RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.MINING_DIMENSION_CORE_PIECE.get()), new ItemStack(OccultismItems.MINER_ANCIENT_ELDRITCH.get()), makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_MINER_ANCIENT_ELDRITCH.get()), - 360, + 780, RITUAL_CRAFT_MINER_SPIRIT, PENTACLE_CONTACT_ELDRITCH_SPIRIT, Ingredient.of(OccultismItems.MINER_MARID_MASTER.get()), @@ -1938,6 +1475,8 @@ private static void minerRecipes(RecipeOutput recipeOutput) { Ingredient.of(OccultismItems.MINER_MARID_MASTER.get()), Ingredient.of(OccultismItems.MINER_MARID_MASTER.get())) .unlockedBy("has_mining_dimension_core", has(OccultismItems.MINING_DIMENSION_CORE_PIECE.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") + .entityToSacrifice(OccultismTags.Entities.HUMANS) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_miner_ancient_eldritch")); } private static void resurrectRituals(RecipeOutput recipeOutput) { @@ -1945,7 +1484,7 @@ private static void resurrectRituals(RecipeOutput recipeOutput) { makeLoreSpawnEgg(OccultismItems.RESURRECT_ICON.get(), "item.occultism.ritual_dummy.resurrect_familiar"), makeRitualDummy(OccultismItems.RITUAL_DUMMY_RESURRECT_FAMILIAR.get()), 15, - RITUAL_RESURRECT_FAMILIAR, + OccultismRituals.RESURRECT_FAMILIAR.getId(), PENTACLE_RESURRECT_SPIRIT, Ingredient.of(OccultismItems.OTHERWORLD_ESSENCE.get()), Ingredient.of(OccultismItems.OTHERWORLD_ESSENCE.get()), @@ -1972,14 +1511,14 @@ private static void resurrectRituals(RecipeOutput recipeOutput) { } private static void repairRituals(RecipeOutput recipeOutput) { RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismTags.Items.TOOLS_CHALK), - makeLoreSpawnEgg(OccultismItems.REPAIR_ICON.get(), "item.occultism.ritual_dummy.repair_chalks"), - makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID,"ritual_dummy/repair_chalks")), - 5, - RITUAL_REPAIR, - PENTACLE_CRAFT_DJINNI, - Ingredient.of(OccultismTags.Items.COPPER_DUST), - Ingredient.of(OccultismTags.Items.OTHERWORLD_WOOD_DUST), - Ingredient.of(OccultismTags.Items.OTHERSTONE_DUST)) + makeLoreSpawnEgg(OccultismItems.REPAIR_ICON.get(), "item.occultism.ritual_dummy.repair_chalks"), + makeRitualDummy(ResourceLocation.fromNamespaceAndPath(Occultism.MODID,"ritual_dummy/repair_chalks")), + 5, + RITUAL_REPAIR, + PENTACLE_CRAFT_DJINNI, + Ingredient.of(OccultismTags.Items.COPPER_DUST), + Ingredient.of(OccultismTags.Items.OTHERWORLD_WOOD_DUST), + Ingredient.of(OccultismTags.Items.OTHERSTONE_DUST)) .unlockedBy("has_white_chalk", has(OccultismItems.CHALK_WHITE)) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID,"ritual/repair_chalks")); RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Tags.Items.TOOLS), @@ -2017,4 +1556,589 @@ private static void repairRituals(RecipeOutput recipeOutput) { .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT)) .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID,"ritual/repair_miners")); } + private static void contactRituals(RecipeOutput recipeOutput){ + //Wild duration 90 + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.SKELETON_SKULL), + makeLoreSpawnEgg(Items.WITHER_SKELETON_SKULL, "item.occultism.ritual_dummy.wild_hunt"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_HUNT.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Tags.Items.STORAGE_BLOCKS_COPPER), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_SILVER), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_GOLD), + Ingredient.of(Tags.Items.GEMS_DIAMOND), + Ingredient.of(Tags.Items.NETHERRACKS), + Ingredient.of(Items.SOUL_SAND)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.WILD_HUNT_WITHER_SKELETON.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") + .entityToSacrifice(OccultismTags.Entities.HUMANS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_hunt")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.RAW_GOLD), + makeLoreSpawnEgg(Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE, "item.occultism.ritual_dummy.wild_husk"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_HUSK.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.SAND), + Ingredient.of(Items.SANDSTONE), + Ingredient.of(Items.CHISELED_SANDSTONE), + Ingredient.of(Items.CUT_SANDSTONE), + Ingredient.of(Items.SMOOTH_SANDSTONE), + Ingredient.of(Items.DEAD_BUSH), + Ingredient.of(Items.SAND), + Ingredient.of(Items.SANDSTONE), + Ingredient.of(Items.CHISELED_SANDSTONE), + Ingredient.of(Items.CUT_SANDSTONE), + Ingredient.of(Items.SMOOTH_SANDSTONE), + Ingredient.of(Items.DEAD_BUSH)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.WILD_HORDE_HUSK.get()) + .summonNumber(5) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.camel") + .entityToSacrifice(OccultismTags.Entities.CAMEL) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_husk")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.HEART_OF_THE_SEA), + makeLoreSpawnEgg(Items.SNIFFER_EGG, "item.occultism.ritual_dummy.wild_drowned"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_DROWNED.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.DEAD_BRAIN_CORAL_BLOCK), + Ingredient.of(Items.DEAD_BUBBLE_CORAL_BLOCK), + Ingredient.of(Items.DEAD_FIRE_CORAL_BLOCK), + Ingredient.of(Items.DEAD_HORN_CORAL_BLOCK), + Ingredient.of(Items.DEAD_TUBE_CORAL_BLOCK), + Ingredient.of(Items.DRIED_KELP_BLOCK)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.WILD_HORDE_DROWNED.get()) + .summonNumber(5) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.dolphin") + .entityToSacrifice(OccultismTags.Entities.DOLPHIN) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_drowned")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.TNT), + makeLoreSpawnEgg(Items.MUSIC_DISC_CAT, "item.occultism.ritual_dummy.wild_creeper"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_CREEPER.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.TNT), + Ingredient.of(Items.OAK_LEAVES), + Ingredient.of(Items.MOSS_BLOCK), + Ingredient.of(Items.TNT), + Ingredient.of(Items.BIRCH_LEAVES), + Ingredient.of(Items.MOSS_BLOCK), + Ingredient.of(Items.TNT), + Ingredient.of(Items.SPRUCE_LEAVES), + Ingredient.of(Items.MOSS_BLOCK), + Ingredient.of(Items.TNT), + Ingredient.of(Items.JUNGLE_LEAVES), + Ingredient.of(Items.MOSS_BLOCK)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.WILD_HORDE_CREEPER.get()) + .summonNumber(5) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.pigs") + .entityToSacrifice(OccultismTags.Entities.PIGS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_creeper")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.BRUSH), + makeLoreSpawnEgg(Items.MUSIC_DISC_RELIC, "item.occultism.ritual_dummy.wild_silverfish"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_SILVERFISH.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.SAND), + Ingredient.of(Items.GRAVEL), + Ingredient.of(Items.BRICKS), + Ingredient.of(Items.MUD_BRICKS), + Ingredient.of(Items.STONE_BRICKS), + Ingredient.of(Items.WHITE_TERRACOTTA), + Ingredient.of(Items.DIRT)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.WILD_HORDE_SILVERFISH.get()) + .summonNumber(5) + .itemToUse(Ingredient.of(Items.EGG)) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_silverfish")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.HONEYCOMB), + makeLoreSpawnEgg(Items.TRIAL_KEY, "item.occultism.ritual_dummy.wild_weak_breeze"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_WEAK_BREEZE.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.OXIDIZED_COPPER), + Ingredient.of(Items.WEATHERED_CHISELED_COPPER), + Ingredient.of(Items.EXPOSED_COPPER_GRATE), + Ingredient.of(Items.CUT_COPPER), + Ingredient.of(Items.TUFF), + Ingredient.of(Items.TUFF), + Ingredient.of(Items.TUFF), + Ingredient.of(Items.TUFF)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.POSSESSED_WEAK_BREEZE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.snow_golem") + .entityToSacrifice(OccultismTags.Entities.SNOW_GOLEM) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_weak_breeze")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.TRIAL_KEY), + makeLoreSpawnEgg(Items.OMINOUS_TRIAL_KEY, "item.occultism.ritual_dummy.wild_breeze"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_BREEZE.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.LIGHTNING_ROD), + Ingredient.of(Items.COPPER_DOOR), + Ingredient.of(Items.COPPER_TRAPDOOR), + Ingredient.of(Items.COPPER_BULB), + Ingredient.of(Items.POLISHED_TUFF), + Ingredient.of(Items.TUFF_BRICKS)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.POSSESSED_BREEZE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.wolfs") + .entityToSacrifice(OccultismTags.Entities.WOLFS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_breeze")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.OMINOUS_TRIAL_KEY), + makeLoreSpawnEgg(Items.HEAVY_CORE, "item.occultism.ritual_dummy.wild_strong_breeze"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_STRONG_BREEZE.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.CHISELED_TUFF), + Ingredient.of(Items.CHISELED_TUFF), + Ingredient.of(Items.CHISELED_TUFF), + Ingredient.of(Items.CHISELED_TUFF), + Ingredient.of(Items.CHISELED_TUFF_BRICKS), + Ingredient.of(Items.CHISELED_TUFF_BRICKS), + Ingredient.of(Items.CHISELED_TUFF_BRICKS), + Ingredient.of(Items.CHISELED_TUFF_BRICKS), + Ingredient.of(Items.BREEZE_ROD), + Ingredient.of(Items.BREEZE_ROD), + Ingredient.of(Items.OMINOUS_BOTTLE)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.POSSESSED_STRONG_BREEZE.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.iron_golem") + .entityToSacrifice(OccultismTags.Entities.IRON_GOLEM) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_strong_breeze")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.GOLDEN_APPLE), + makeLoreSpawnEgg(Items.TOTEM_OF_UNDYING, "item.occultism.ritual_dummy.wild_horde_illager"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_ILLAGER.get()), + 90, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.DARK_OAK_LOG), + Ingredient.of(Items.DARK_OAK_LOG), + Ingredient.of(Items.DARK_OAK_LOG), + Ingredient.of(OccultismTags.Items.EMERALD_DUST), + Ingredient.of(OccultismTags.Items.EMERALD_DUST), + Ingredient.of(OccultismTags.Items.EMERALD_DUST)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSummon(OccultismEntities.POSSESSED_EVOKER.get()) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") + .entityToSacrifice(OccultismTags.Entities.HUMANS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_horde_illager")); + //Forge + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.DIAMOND_BLOCK), + new ItemStack(Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_WILD_TRIM.get()), + 180, + RITUAL_CRAFT, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.MOSSY_COBBLESTONE), + Ingredient.of(Items.JUNGLE_SAPLING), + Ingredient.of(Items.BAMBOO), + Ingredient.of(Items.GLISTERING_MELON_SLICE), + Ingredient.of(Items.MOSSY_COBBLESTONE), + Ingredient.of(Items.JUNGLE_SAPLING), + Ingredient.of(Items.BAMBOO), + Ingredient.of(Items.GLISTERING_MELON_SLICE), + Ingredient.of(Items.MOSSY_COBBLESTONE), + Ingredient.of(Items.JUNGLE_SAPLING), + Ingredient.of(Items.BAMBOO), + Ingredient.of(Items.GLISTERING_MELON_SLICE)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSacrifice(OccultismTags.Entities.OCELOT) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.ocelot") + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_wild_trim")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.AMETHYST_BLOCK), + new ItemStack(Items.BUDDING_AMETHYST), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_BUDDING_AMETHYST.get()), + 180, + RITUAL_CRAFT, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.SMALL_AMETHYST_BUD), + Ingredient.of(Items.MEDIUM_AMETHYST_BUD), + Ingredient.of(Items.LARGE_AMETHYST_BUD), + Ingredient.of(Items.AMETHYST_CLUSTER), + Ingredient.of(Items.AMETHYST_SHARD), + Ingredient.of(OccultismTags.Items.AMETHYST_DUST), + Ingredient.of(Items.SMALL_AMETHYST_BUD), + Ingredient.of(Items.MEDIUM_AMETHYST_BUD), + Ingredient.of(Items.LARGE_AMETHYST_BUD), + Ingredient.of(Items.AMETHYST_CLUSTER), + Ingredient.of(Items.AMETHYST_SHARD), + Ingredient.of(OccultismTags.Items.AMETHYST_DUST)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.allay") + .entityToSacrifice(OccultismTags.Entities.ALLAY) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_budding_amethyst")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.DEEPSLATE), + new ItemStack(Items.REINFORCED_DEEPSLATE), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE.get()), + 180, + RITUAL_CRAFT, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.IRON_BARS), + Ingredient.of(Items.IRON_BARS), + Ingredient.of(Items.IRON_BARS), + Ingredient.of(Items.IRON_BARS), + Ingredient.of(Tags.Items.OBSIDIANS), + Ingredient.of(Tags.Items.OBSIDIANS), + Ingredient.of(Tags.Items.OBSIDIANS), + Ingredient.of(Tags.Items.OBSIDIANS), + Ingredient.of(OccultismTags.Items.IESNIUM_INGOT)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.warden") + .entityToSacrifice(OccultismTags.Entities.WARDEN) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_reinforced_deepslate")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Items.BEEHIVE), + new ItemStack(Items.BEE_NEST), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_BEE_NEST.get()), + 180, + RITUAL_CRAFT, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.HONEYCOMB_BLOCK), + Ingredient.of(Items.HONEYCOMB_BLOCK), + Ingredient.of(Items.HONEYCOMB_BLOCK), + Ingredient.of(Items.HONEYCOMB_BLOCK)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.bees") + .entityToSacrifice(OccultismTags.Entities.BEES) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_bee_nest")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(Tags.Items.STORAGE_BLOCKS_GOLD), + new ItemStack(Items.BELL), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_BELL.get()), + 180, + RITUAL_CRAFT, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Tags.Items.NUGGETS_GOLD), + Ingredient.of(Items.CHAIN), + Ingredient.of(Tags.Items.STONES), + Ingredient.of(Tags.Items.STONES), + Ingredient.of(ItemTags.LOGS)) + .unlockedBy("has_bound_afrit", has(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.goats") + .entityToSacrifice(OccultismTags.Entities.GOATS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_bell")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.asItem()), + new ItemStack(OccultismBlocks.ELDRITCH_CHALICE.asItem()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE.get()), + 780, + RITUAL_CRAFT, + PENTACLE_CONTACT_ELDRITCH_SPIRIT, + Ingredient.of(Items.HEAVY_CORE), + Ingredient.of(Items.BELL), + Ingredient.of(Items.SOUL_LANTERN), + Ingredient.of(Items.CHORUS_FLOWER), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_NETHERITE), + Ingredient.of(Items.SPONGE), + Ingredient.of(Items.REINFORCED_DEEPSLATE), + Ingredient.of(Items.RESPAWN_ANCHOR), + Ingredient.of(OccultismTags.Items.STORAGE_BLOCK_IESNIUM), + Ingredient.of(Items.END_STONE_BRICKS), + Ingredient.of(Items.SCULK_CATALYST), + Ingredient.of(Items.BUDDING_AMETHYST)) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.ravager") + .entityToSacrifice(OccultismTags.Entities.RAVAGER) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_eldritch_chalice")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.DIMENSIONAL_MATRIX), + new ItemStack(OccultismBlocks.STORAGE_CONTROLLER_STABILIZED.asItem()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_STABILIZED_STORAGE.get()), + 780, + RITUAL_CRAFT, + PENTACLE_CONTACT_ELDRITCH_SPIRIT, + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER4.asItem()), + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER4.asItem()), + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER4.asItem()), + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER4.asItem()), + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER4.asItem()), + Ingredient.of(OccultismBlocks.STORAGE_STABILIZER_TIER4.asItem()), + Ingredient.of(OccultismBlocks.STORAGE_CONTROLLER_BASE), + Ingredient.of(OccultismTags.Items.ECHO_DUST), + Ingredient.of(OccultismTags.Items.ECHO_DUST), + Ingredient.of(OccultismTags.Items.ECHO_DUST)) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") + .entityToSacrifice(OccultismTags.Entities.HUMANS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_stabilized_storage")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BRUSH), + new ItemStack(OccultismItems.CHALK_RAINBOW.get()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_RAINBOW.get()), + 780, + RITUAL_CRAFT, + PENTACLE_CONTACT_ELDRITCH_SPIRIT, + Ingredient.of(OccultismItems.CHALK_RED), + Ingredient.of(OccultismItems.CHALK_BROWN), + Ingredient.of(OccultismItems.CHALK_ORANGE), + Ingredient.of(OccultismItems.CHALK_YELLOW), + Ingredient.of(OccultismItems.CHALK_LIME), + Ingredient.of(OccultismItems.CHALK_GREEN), + Ingredient.of(OccultismItems.CHALK_CYAN), + Ingredient.of(OccultismItems.CHALK_BLUE), + Ingredient.of(OccultismItems.CHALK_LIGHT_BLUE), + Ingredient.of(OccultismItems.CHALK_PINK), + Ingredient.of(OccultismItems.CHALK_MAGENTA), + Ingredient.of(OccultismItems.CHALK_PURPLE)) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.parrots") + .entityToSacrifice(OccultismTags.Entities.PARROTS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_chalk_rainbow")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.CHALK_RAINBOW), + new ItemStack(OccultismItems.CHALK_VOID.get()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_CHALK_VOID.get()), + 780, + RITUAL_CRAFT, + PENTACLE_CONTACT_ELDRITCH_SPIRIT, + Ingredient.of(OccultismItems.CHALK_WHITE), + Ingredient.of(OccultismItems.CHALK_LIGHT_GRAY), + Ingredient.of(OccultismItems.CHALK_GRAY), + Ingredient.of(OccultismItems.CHALK_BLACK)) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") + .entityToSacrifice(OccultismTags.Entities.HUMANS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_chalk_void")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SOUL_GEM_ITEM), + new ItemStack(OccultismItems.TRINITY_GEM_ITEM.get()), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_FORGE_TRINITY_GEM.get()), + 780, + RITUAL_CRAFT, + PENTACLE_CONTACT_ELDRITCH_SPIRIT, + Ingredient.of(OccultismItems.AFRIT_ESSENCE), + Ingredient.of(OccultismItems.MARID_ESSENCE), + Ingredient.of(OccultismItems.CRUELTY_ESSENCE), + Ingredient.of(OccultismTags.Items.ECHO_DUST), + Ingredient.of(OccultismTags.Items.DRAGONYST_DUST), + Ingredient.of(OccultismTags.Items.WITHERITE_DUST), + Ingredient.of(OccultismTags.Items.IESNIUM_DUST), + Ingredient.of(OccultismTags.Items.IESNIUM_DUST), + Ingredient.of(OccultismTags.Items.IESNIUM_DUST)) + .unlockedBy("has_bound_marid", has(OccultismItems.BOOK_OF_BINDING_BOUND_MARID.get())) + .entityToSacrificeDisplayName("ritual.occultism.sacrifice.humans") + .entityToSacrifice(OccultismTags.Entities.HUMANS) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/misc_trinity_gem")); + } + private static void randomRituals(RecipeOutput recipeOutput) { + //Individual + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_common"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_COMMON), + 15, + RITUAL_SUMMON, + PENTACLE_POSSESS_FOLIOT, + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.CROPS), + Ingredient.of(Tags.Items.CROPS), + Ingredient.of(Tags.Items.CROPS), + Ingredient.of(Tags.Items.CROPS)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_COMMON) + .itemToUse(Ingredient.of(Items.EGG)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_common")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_water"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_WATER), + 15, + RITUAL_SUMMON, + PENTACLE_POSSESS_FOLIOT, + Ingredient.of(Items.SEAGRASS), + Ingredient.of(Items.SEAGRASS), + Ingredient.of(Items.KELP), + Ingredient.of(Items.KELP), + Ingredient.of(Items.MUD), + Ingredient.of(Items.MUD), + Ingredient.of(Items.CLAY), + Ingredient.of(Items.CLAY)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_WATER) + .itemToUse(Ingredient.of(Items.SNOWBALL)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_water")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_small"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_SMALL), + 15, + RITUAL_SUMMON, + PENTACLE_POSSESS_FOLIOT, + Ingredient.of(Tags.Items.FEATHERS), + Ingredient.of(Tags.Items.FEATHERS), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(Tags.Items.NUGGETS_IRON), + Ingredient.of(Tags.Items.NUGGETS_IRON), + Ingredient.of(Items.SUGAR), + Ingredient.of(Items.SUGAR)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SMALL) + .itemToUse(Ingredient.of(Items.EGG)) + .unlockedBy("has_bound_foliot", has(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_small")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_rideable"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_RIDEABLE), + 30, + RITUAL_SUMMON, + PENTACLE_POSSESS_DJINNI, + Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), + Ingredient.of(Items.APPLE), + Ingredient.of(Items.GOLDEN_APPLE), + Ingredient.of(Items.CARROT), + Ingredient.of(Items.GOLDEN_CARROT), + Ingredient.of(Tags.Items.CROPS_CACTUS), + Ingredient.of(Items.WARPED_FUNGUS)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_RIDEABLE) + .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_rideable")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_villager"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_VILLAGER), + 30, + RITUAL_SUMMON, + PENTACLE_POSSESS_DJINNI, + Ingredient.of(ItemTags.BEDS), + Ingredient.of(Items.CAMPFIRE), + Ingredient.of(Tags.Items.FOODS_PIE)) + .entityTagToSummon(OccultismTags.Entities.VILLAGERS) + .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_villager")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.possess_random_animal_special"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_SPECIAL), + 30, + RITUAL_SUMMON, + PENTACLE_POSSESS_DJINNI, + Ingredient.of(ItemTags.WOOL), + Ingredient.of(ItemTags.WOOL), + Ingredient.of(OccultismTags.Items.MUSHROOM_BLOCKS), + Ingredient.of(Items.MOSS_BLOCK), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), + Ingredient.of(Items.PACKED_ICE), + Ingredient.of(Items.TERRACOTTA), + Ingredient.of(Items.BAMBOO_BLOCK)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SPECIAL) + .itemToUse(Ingredient.of(Items.WIND_CHARGE)) + .unlockedBy("has_bound_djinni", has(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get())) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/possess_random_animal_special")); + //Group + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_common"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_COMMON), + 45, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.SEEDS), + Ingredient.of(Tags.Items.CROPS), + Ingredient.of(Tags.Items.CROPS), + Ingredient.of(Tags.Items.CROPS), + Ingredient.of(Tags.Items.CROPS)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_COMMON) + .itemToUse(Ingredient.of(Items.EGG)) + .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) + .summonNumber(7) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_common")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_water"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_WATER), + 45, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Items.SEAGRASS), + Ingredient.of(Items.SEAGRASS), + Ingredient.of(Items.KELP), + Ingredient.of(Items.KELP), + Ingredient.of(Items.MUD), + Ingredient.of(Items.MUD), + Ingredient.of(Items.CLAY), + Ingredient.of(Items.CLAY)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_WATER) + .itemToUse(Ingredient.of(Items.SNOWBALL)) + .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) + .summonNumber(7) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_water")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_small"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_SMALL), + 45, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Tags.Items.FEATHERS), + Ingredient.of(Tags.Items.FEATHERS), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(Tags.Items.STRINGS), + Ingredient.of(Tags.Items.NUGGETS_IRON), + Ingredient.of(Tags.Items.NUGGETS_IRON), + Ingredient.of(Items.SUGAR), + Ingredient.of(Items.SUGAR)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SMALL) + .itemToUse(Ingredient.of(Items.EGG)) + .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) + .summonNumber(7) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_small")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_rideable"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_RIDEABLE), + 45, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_WHEAT), + Ingredient.of(Items.APPLE), + Ingredient.of(Items.GOLDEN_APPLE), + Ingredient.of(Items.CARROT), + Ingredient.of(Items.GOLDEN_CARROT), + Ingredient.of(Tags.Items.CROPS_CACTUS), + Ingredient.of(Items.WARPED_FUNGUS)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_RIDEABLE) + .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) + .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) + .summonNumber(3) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_rideable")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_villager"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_VILLAGER), + 45, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(ItemTags.BEDS), + Ingredient.of(Items.CAMPFIRE), + Ingredient.of(Tags.Items.FOODS_PIE)) + .entityTagToSummon(OccultismTags.Entities.VILLAGERS) + .itemToUse(Ingredient.of(Items.EXPERIENCE_BOTTLE)) + .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) + .summonNumber(3) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_villager")); + RitualRecipeBuilder.ritualRecipeBuilder(Ingredient.of(OccultismItems.SPIRIT_ATTUNED_GEM), + makeLoreSpawnEgg(OccultismItems.MYSTERIOUS_EGG_ICON.get(), "item.occultism.ritual_dummy.wild_random_animal_special"), + makeRitualDummy(OccultismItems.RITUAL_DUMMY_WILD_RANDOM_ANIMAL_SPECIAL), + 45, + RITUAL_SUMMON_WILD, + PENTACLE_CONTACT_WILD_SPIRIT, + Ingredient.of(ItemTags.WOOL), + Ingredient.of(ItemTags.WOOL), + Ingredient.of(OccultismTags.Items.MUSHROOM_BLOCKS), + Ingredient.of(Items.MOSS_BLOCK), + Ingredient.of(Tags.Items.STORAGE_BLOCKS_IRON), + Ingredient.of(Items.PACKED_ICE), + Ingredient.of(Items.TERRACOTTA), + Ingredient.of(Items.BAMBOO_BLOCK)) + .entityTagToSummon(OccultismTags.Entities.RANDOM_ANIMALS_SPECIAL) + .itemToUse(Ingredient.of(Items.WIND_CHARGE)) + .unlockedBy("has_spirit_attuned_gem", has(OccultismItems.SPIRIT_ATTUNED_GEM)) + .summonNumber(3) + .save(recipeOutput, ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual/wild_random_animal_special")); + } } diff --git a/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismBlockTagProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismBlockTagProvider.java index f9947d8cf..04768d9cf 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismBlockTagProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismBlockTagProvider.java @@ -32,6 +32,7 @@ public void addMinecraftTags(HolderLookup.Provider provider) { .add(OccultismBlocks.STRIPPED_OTHERWORLD_LOG.get()) .add(OccultismBlocks.STRIPPED_OTHERWORLD_WOOD.get()) .add(OccultismBlocks.SPIRIT_CAMPFIRE.get()) + .add(OccultismBlocks.TALLOW_BLOCK.get()) .replace(false); this.tag(BlockTags.MINEABLE_WITH_HOE).add(OccultismBlocks.OTHERWORLD_LEAVES.get(), OccultismBlocks.OTHERWORLD_LEAVES_NATURAL.get()).replace(false); this.tag(BlockTags.MINEABLE_WITH_PICKAXE) @@ -41,10 +42,17 @@ public void addMinecraftTags(HolderLookup.Provider provider) { .add(OccultismBlocks.OTHERSTONE_SLAB.get()) .add(OccultismBlocks.OTHERSTONE_PRESSURE_PLATE.get()) .add(OccultismBlocks.OTHERSTONE_PEDESTAL.get()) + .add(OccultismBlocks.OTHERSTONE_PEDESTAL_SILVER.get()) .add(OccultismBlocks.STORAGE_CONTROLLER_BASE.get()) .add(OccultismBlocks.SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.COPPER_SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.SILVER_SACRIFICIAL_BOWL.get()) .add(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.ELDRITCH_CHALICE.get()) .add(OccultismBlocks.STORAGE_CONTROLLER.get()) + .add(OccultismBlocks.STORAGE_CONTROLLER_STABILIZED.get()) + .add(OccultismBlocks.STORAGE_STABILIZER_TIER0.get()) .add(OccultismBlocks.STORAGE_STABILIZER_TIER1.get()) .add(OccultismBlocks.STORAGE_STABILIZER_TIER2.get()) .add(OccultismBlocks.STORAGE_STABILIZER_TIER3.get()) @@ -63,6 +71,7 @@ public void addMinecraftTags(HolderLookup.Provider provider) { .add(OccultismBlocks.OTHERCOBBLESTONE.get()) .add(OccultismBlocks.OTHERCOBBLESTONE_STAIRS.get()) .add(OccultismBlocks.OTHERCOBBLESTONE_SLAB.get()) + .add(OccultismBlocks.OTHERGLASS_NATURAL.get()) .add(OccultismBlocks.POLISHED_OTHERSTONE.get()) .add(OccultismBlocks.POLISHED_OTHERSTONE_STAIRS.get()) .add(OccultismBlocks.POLISHED_OTHERSTONE_SLAB.get()) @@ -70,8 +79,10 @@ public void addMinecraftTags(HolderLookup.Provider provider) { .add(OccultismBlocks.OTHERSTONE_BRICKS_STAIRS.get()) .add(OccultismBlocks.OTHERSTONE_BRICKS_SLAB.get()) .add(OccultismBlocks.CHISELED_OTHERSTONE_BRICKS.get()) - .add(OccultismBlocks.CRACKED_OTHERSTONE_BRICKS.get()); + .add(OccultismBlocks.CRACKED_OTHERSTONE_BRICKS.get()) + .add(OccultismBlocks.IESNIUM_ANVIL.get()).replace(false); this.tag(BlockTags.CAMPFIRES).add(OccultismBlocks.SPIRIT_CAMPFIRE.get()).replace(false); + this.tag(BlockTags.ANVIL).add(OccultismBlocks.IESNIUM_ANVIL.get()).replace(false); this.tag(BlockTags.STAIRS) .add(OccultismBlocks.OTHERSTONE_STAIRS.get()) .add(OccultismBlocks.OTHERCOBBLESTONE_STAIRS.get()) @@ -110,6 +121,10 @@ public void addMinecraftTags(HolderLookup.Provider provider) { this.tag(BlockTags.PIGLIN_REPELLENTS).add(OccultismBlocks.SPIRIT_CAMPFIRE.get()).replace(false); this.tag(BlockTags.SAPLINGS).addTags(OccultismTags.Blocks.OTHERWORLD_SAPLINGS).replace(false); this.tag(BlockTags.SAPLINGS).addTags(OccultismTags.Blocks.OTHERWORLD_SAPLINGS_NATURAL).replace(false); + this.tag(BlockTags.NEEDS_IRON_TOOL).add(OccultismBlocks.SILVER_ORE.get()).add(OccultismBlocks.SILVER_ORE_DEEPSLATE.get()).replace(false); + this.tag(BlockTags.SMALL_FLOWERS).add(OccultismBlocks.OTHERFLOWER.get()).add(OccultismBlocks.OTHERFLOWER_NATURAL.get()).replace(false); + this.tag(BlockTags.FLOWER_POTS).add(OccultismBlocks.POTTED_OTHERFLOWER.get()).replace(false); + this.tag(BlockTags.INFINIBURN_OVERWORLD).add(OccultismBlocks.TALLOW_BLOCK.get()); } @Override @@ -123,6 +138,8 @@ private void addOccultismTags(HolderLookup.Provider provider) { this.tag(OccultismTags.Blocks.PENTACLE_MATERIALS) .addTag(Tags.Blocks.SKULLS) .add(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.ELDRITCH_CHALICE.get()) .add(OccultismBlocks.SPIRIT_ATTUNED_CRYSTAL.get()) .addTag(BlockTags.CANDLES) .addTag(Tags.Blocks.GLASS_PANES) @@ -176,24 +193,85 @@ private void addOccultismTags(HolderLookup.Provider provider) { .add(OccultismBlocks.CHALK_GLYPH_LIGHT_BLUE.get()) .add(OccultismBlocks.CHALK_GLYPH_BLUE.get()) .add(OccultismBlocks.CHALK_GLYPH_MAGENTA.get()) - .add(OccultismBlocks.CHALK_GLYPH_PINK.get()).replace(false); + .add(OccultismBlocks.CHALK_GLYPH_PINK.get()) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()).replace(false); + this.tag(OccultismTags.Blocks.CENTER_SACRIFICIAL_BOWL) + .add(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.get()) + .add(OccultismBlocks.ELDRITCH_CHALICE.get()).replace(false); this.tag(OccultismTags.Blocks.FOUNDATION_GLYPHS_ANY) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) .add(OccultismBlocks.CHALK_GLYPH_WHITE.get()) .add(OccultismBlocks.CHALK_GLYPH_LIGHT_GRAY.get()) .add(OccultismBlocks.CHALK_GLYPH_GRAY.get()) .add(OccultismBlocks.CHALK_GLYPH_BLACK.get()).replace(false); this.tag(OccultismTags.Blocks.FOUNDATION_GLYPHS_NO_WHITE) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) .add(OccultismBlocks.CHALK_GLYPH_LIGHT_GRAY.get()) .add(OccultismBlocks.CHALK_GLYPH_GRAY.get()) .add(OccultismBlocks.CHALK_GLYPH_BLACK.get()).replace(false); this.tag(OccultismTags.Blocks.FOUNDATION_GLYPHS_DARK) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) .add(OccultismBlocks.CHALK_GLYPH_GRAY.get()) .add(OccultismBlocks.CHALK_GLYPH_BLACK.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_BLACK) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_BLACK.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_RED) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_RED.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_BROWN) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_BROWN.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_ORANGE) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_ORANGE.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_YELLOW) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_YELLOW.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_LIME) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_LIME.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_GREEN) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_GREEN.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_CYAN) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_CYAN.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_BLUE) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_BLUE.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_LIGHT_BLUE) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_LIGHT_BLUE.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_PINK) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_PINK.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_MAGENTA) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_MAGENTA.get()).replace(false); + this.tag(OccultismTags.Blocks.GLYPHS_PURPLE) + .add(OccultismBlocks.CHALK_GLYPH_RAINBOW.get()) + .add(OccultismBlocks.CHALK_GLYPH_VOID.get()) + .add(OccultismBlocks.CHALK_GLYPH_PURPLE.get()).replace(false); this.tag(OccultismTags.Blocks.CAVE_WALL_BLOCKS).add(Blocks.STONE, Blocks.GRANITE, Blocks.DIORITE, Blocks.ANDESITE).replace(false); this.tag(OccultismTags.Blocks.NETHERRACK).add(Blocks.NETHERRACK).replace(false); this.tag(OccultismTags.Blocks.STORAGE_STABILIZER) + .add(OccultismBlocks.STORAGE_STABILIZER_TIER0.get()) .add(OccultismBlocks.STORAGE_STABILIZER_TIER1.get()) .add(OccultismBlocks.STORAGE_STABILIZER_TIER2.get()) .add(OccultismBlocks.STORAGE_STABILIZER_TIER3.get()) diff --git a/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismEntityTypeTagProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismEntityTypeTagProvider.java index 8f7d2df35..dcffe76e3 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismEntityTypeTagProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismEntityTypeTagProvider.java @@ -207,7 +207,8 @@ private void addCommonTags() { this.tag(OccultismTags.Entities.SNOW_GOLEM).add(EntityType.SNOW_GOLEM).replace(false); this.tag(OccultismTags.Entities.IRON_GOLEM).add(EntityType.IRON_GOLEM).replace(false); this.tag(OccultismTags.Entities.AXOLOTL).add(EntityType.AXOLOTL).replace(false); - this.tag(OccultismTags.Entities.BATS).add(EntityType.BAT).replace(false); + this.tag(OccultismTags.Entities.BATS).add(EntityType.BAT).add(OccultismEntities.BAT_FAMILIAR_TYPE.get()).replace(false); + this.tag(OccultismTags.Entities.BEES).add(EntityType.BEE).add(OccultismEntities.POSSESSED_BEE_TYPE.get()).replace(false); this.tag(OccultismTags.Entities.CHICKEN).add(EntityType.CHICKEN).replace(false); this.tag(OccultismTags.Entities.COWS).add(EntityType.COW).replace(false); this.tag(OccultismTags.Entities.DONKEYS).add(EntityType.DONKEY).replace(false); @@ -234,5 +235,6 @@ private void addCommonTags() { this.tag(OccultismTags.Entities.TADPOLES).add(EntityType.TADPOLE).replace(false); this.tag(OccultismTags.Entities.ALLAY).add(EntityType.ALLAY).replace(false); this.tag(OccultismTags.Entities.WARDEN).add(EntityType.WARDEN).add(OccultismEntities.POSSESSED_WARDEN_TYPE.get()).replace(false); + this.tag(OccultismTags.Entities.RAVAGER).add(EntityType.RAVAGER).replace(false); } } diff --git a/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismItemTagProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismItemTagProvider.java index 3a4645f84..6ce9f95b5 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismItemTagProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/tags/OccultismItemTagProvider.java @@ -154,6 +154,8 @@ private void addOccultismTags(HolderLookup.Provider provider) { .add(OccultismItems.CHALK_BLUE.get()) .add(OccultismItems.CHALK_MAGENTA.get()) .add(OccultismItems.CHALK_PINK.get()) + .add(OccultismItems.CHALK_RAINBOW.get()) + .add(OccultismItems.CHALK_VOID.get()) .replace(false); this.copy(OccultismTags.Blocks.OTHERWORLD_SAPLINGS, OccultismTags.Items.OTHERWORLD_SAPLINGS); @@ -248,6 +250,7 @@ private void addMinecraftTags(HolderLookup.Provider provider) { .add(OccultismItems.BOOK_OF_CALLING_FOLIOT_LUMBERJACK.get()) .add(OccultismItems.BOOK_OF_CALLING_FOLIOT_TRANSPORT_ITEMS.get()); + this.tag(ItemTags.SMALL_FLOWERS).add(OccultismBlocks.OTHERFLOWER.asItem()).add(OccultismBlocks.OTHERFLOWER_NATURAL.asItem()).replace(false); } private void addCommonTags(HolderLookup.Provider provider) { diff --git a/src/main/java/com/klikli_dev/occultism/datagen/worldgen/ConfiguredFeatures.java b/src/main/java/com/klikli_dev/occultism/datagen/worldgen/ConfiguredFeatures.java index 12e5110f9..01e79ac3e 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/worldgen/ConfiguredFeatures.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/worldgen/ConfiguredFeatures.java @@ -67,7 +67,8 @@ public static void bootstrap(BootstrapContext> context) 9, 48, 14653667, - 0.6f, + 0.3f, + 0.2f, 0.1f, 0.3f, 0.1f, diff --git a/src/main/java/com/klikli_dev/occultism/datagen/worldgen/PlacedFeatures.java b/src/main/java/com/klikli_dev/occultism/datagen/worldgen/PlacedFeatures.java index 3e111b503..9fd8b5c4a 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/worldgen/PlacedFeatures.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/worldgen/PlacedFeatures.java @@ -35,7 +35,7 @@ public static void bootstrap(BootstrapContext context) { commonOrePlacement(10, HeightRangePlacement.triangle(VerticalAnchor.absolute(-64), VerticalAnchor.absolute(50)))); PlacementUtils.register(context, ORE_IESNIUM, configuredFeatures.getOrThrow(ConfiguredFeatures.ORE_IESNIUM), - commonOrePlacement(3, HeightRangePlacement.triangle(VerticalAnchor.absolute(-64), VerticalAnchor.absolute(50)))); + commonOrePlacement(3, HeightRangePlacement.triangle(VerticalAnchor.absolute(0), VerticalAnchor.absolute(128)))); PlacementUtils.register(context, TREE_OTHERWORLD, configuredFeatures.getOrThrow(ConfiguredFeatures.TREE_OTHERWORLD), PlacementUtils.filteredByBlockSurvival(OccultismBlocks.OTHERWORLD_SAPLING.get())); diff --git a/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java b/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java index 493b936ea..556e05a2b 100644 --- a/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java +++ b/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java @@ -148,6 +148,7 @@ public static void onRegisterEntityRenderers(EntityRenderersEvent.RegisterRender event.registerEntityRenderer(OccultismEntities.BEAVER_FAMILIAR.get(), BeaverFamiliarRenderer::new); event.registerEntityRenderer(OccultismEntities.GOAT_FAMILIAR.get(), GoatFamiliarRenderer::new); event.registerEntityRenderer(OccultismEntities.SHUB_NIGGURATH_SPAWN.get(), ShubNiggurathSpawnRenderer::new); + event.registerEntityRenderer(OccultismEntities.IESNIUM_GOLEM.get(), IesniumGolemRenderer::new); event.registerEntityRenderer(OccultismEntities.POSSESSED_ENDERMITE.get(), EndermiteRenderer::new); event.registerEntityRenderer(OccultismEntities.POSSESSED_SKELETON.get(), SkeletonRenderer::new); event.registerEntityRenderer(OccultismEntities.POSSESSED_ENDERMAN.get(), EndermanRenderer::new); @@ -275,6 +276,8 @@ public static void registerItemModelProperties(FMLClientSetupEvent event) { ItemProperties.register(OccultismItems.SOUL_GEM_ITEM.get(), ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "has_entity"), new SoulGemItemPropertyGetter()); + ItemProperties.register(OccultismItems.TRINITY_GEM_ITEM.get(), + ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "has_entity"), new SoulGemItemPropertyGetter()); ItemProperties.register(OccultismItems.DIVINATION_ROD.get(), ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "distance"), new DivinationRodItemPropertyGetter()); //ItemProperties.register(OccultismBlocks.OTHERWORLD_SAPLING_NATURAL.asItem(), diff --git a/src/main/java/com/klikli_dev/occultism/handlers/ColorEventHandler.java b/src/main/java/com/klikli_dev/occultism/handlers/ColorEventHandler.java index 2c6ee7a1d..b14b7d671 100644 --- a/src/main/java/com/klikli_dev/occultism/handlers/ColorEventHandler.java +++ b/src/main/java/com/klikli_dev/occultism/handlers/ColorEventHandler.java @@ -91,6 +91,13 @@ public static void onRegisterBlockColorHandlers(RegisterColorHandlersEvent.Block .register((state, light, pos, tintIndex) -> OccultismBlocks.CHALK_GLYPH_PINK.get().getColor(), OccultismBlocks.CHALK_GLYPH_PINK.get()); + event.getBlockColors() + .register((state, light, pos, tintIndex) -> OccultismBlocks.CHALK_GLYPH_RAINBOW.get().getColor(state), + OccultismBlocks.CHALK_GLYPH_RAINBOW.get()); + event.getBlockColors() + .register((state, light, pos, tintIndex) -> OccultismBlocks.CHALK_GLYPH_VOID.get().getColor(state), + OccultismBlocks.CHALK_GLYPH_VOID.get()); + //Otherworld leaves have a colored texture, so return white tint; //but while covered the oak leaves need their vanilla tint event.getBlockColors() diff --git a/src/main/java/com/klikli_dev/occultism/handlers/FamiliarEventHandler.java b/src/main/java/com/klikli_dev/occultism/handlers/FamiliarEventHandler.java index 4c82c29ed..aa9130489 100644 --- a/src/main/java/com/klikli_dev/occultism/handlers/FamiliarEventHandler.java +++ b/src/main/java/com/klikli_dev/occultism/handlers/FamiliarEventHandler.java @@ -25,11 +25,16 @@ import com.klikli_dev.occultism.Occultism; import com.klikli_dev.occultism.common.advancement.FamiliarTrigger; import com.klikli_dev.occultism.common.entity.familiar.*; +import com.klikli_dev.occultism.common.item.tool.FamiliarRingItem; import com.klikli_dev.occultism.registry.OccultismAdvancements; import com.klikli_dev.occultism.registry.OccultismEffects; import com.klikli_dev.occultism.registry.OccultismEntities; +import com.klikli_dev.occultism.registry.OccultismItems; import com.klikli_dev.occultism.util.FamiliarUtil; +import com.klikli_dev.occultism.util.ItemNBTUtil; import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; import net.minecraft.tags.BlockTags; import net.minecraft.tags.DamageTypeTags; import net.minecraft.world.damagesource.DamageSource; @@ -38,16 +43,20 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.phys.AABB; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.event.entity.living.LivingDamageEvent; import net.neoforged.neoforge.event.entity.living.LivingDeathEvent; import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent; import net.neoforged.neoforge.event.entity.living.MobEffectEvent; import net.neoforged.neoforge.event.entity.player.PlayerEvent; import net.neoforged.neoforge.event.level.BlockGrowFeatureEvent; +import net.neoforged.neoforge.items.ItemHandlerHelper; +import top.theillusivec4.curios.api.CuriosApi; +import top.theillusivec4.curios.api.SlotResult; +import top.theillusivec4.curios.api.type.capability.ICuriosItemHandler; import java.util.List; @@ -195,6 +204,32 @@ private static void guardianUltimateSacrifice(LivingDeathEvent event) { if (!guardian.sacrifice()) return; + ICuriosItemHandler handler = CuriosApi.getCuriosInventory(event.getEntity()).orElse(null); + if (handler == null) + return; + + List equipped = handler.findCurios(itemStack -> itemStack.getItem() instanceof FamiliarRingItem); + if (equipped != null) { + equipped.forEach(ring -> { + if (FamiliarRingItem.getFamiliar(ring.stack(), event.getEntity().level()) instanceof GuardianFamiliarEntity) { + var familiarTag = new CompoundTag(); + FamiliarRingItem.getFamiliar(ring.stack(), event.getEntity().level()).getFamiliarEntity().saveAsPassenger(familiarTag); + EntityType.loadEntityRecursive(familiarTag, event.getEntity().level(), e -> { + e.setPos(player.getX(), player.getY(), player.getZ()); + ((IFamiliar) e).setFamiliarOwner(player); + var name = ItemNBTUtil.getBoundSpiritName(ring.stack()); + e.setCustomName(Component.literal(name)); + event.getEntity().level().addFreshEntity(e); + ((GuardianFamiliarEntity) e).sacrifice(); + ring.stack().shrink(1); + ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(OccultismItems.FAMILIAR_RING.get())); + return e; + }); + } + } + ); + } + event.setCanceled(true); player.setHealth(1); player.removeAllEffects(); diff --git a/src/main/java/com/klikli_dev/occultism/handlers/PlayerEventHandler.java b/src/main/java/com/klikli_dev/occultism/handlers/PlayerEventHandler.java index 1554d2987..e2d0e3071 100644 --- a/src/main/java/com/klikli_dev/occultism/handlers/PlayerEventHandler.java +++ b/src/main/java/com/klikli_dev/occultism/handlers/PlayerEventHandler.java @@ -124,6 +124,16 @@ public static void onPlayerRightClickEntity(PlayerInteractEvent.EntityInteract e event.setCanceled(true); } } + if (event.getItemStack().getItem() == OccultismItems.TRINITY_GEM_ITEM.get() && + event.getTarget() instanceof LivingEntity) { + //called from here to bypass sitting entity's sit command. + if (OccultismItems.TRINITY_GEM_ITEM.get() + .interactLivingEntity(event.getItemStack(), event.getEntity(), + (LivingEntity) event.getTarget(), + event.getHand()) == InteractionResult.SUCCESS) { + event.setCanceled(true); + } + } } //endregion Static Methods } diff --git a/src/main/java/com/klikli_dev/occultism/integration/emi/impl/OccultismEmiPlugin.java b/src/main/java/com/klikli_dev/occultism/integration/emi/impl/OccultismEmiPlugin.java index d6e42d5c7..b25a75147 100644 --- a/src/main/java/com/klikli_dev/occultism/integration/emi/impl/OccultismEmiPlugin.java +++ b/src/main/java/com/klikli_dev/occultism/integration/emi/impl/OccultismEmiPlugin.java @@ -42,6 +42,8 @@ public class OccultismEmiPlugin implements EmiPlugin { public static final EmiStack SPIRIT_FIRE = EmiStack.of(OccultismItems.SPIRIT_FIRE.get()); public static final EmiStack DIMENSIONAL_MINESHAFT = EmiStack.of(OccultismBlocks.DIMENSIONAL_MINESHAFT.get()); public static final EmiStack GOLDEN_SACRIFICIAL_BOWL = EmiStack.of(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get()); + public static final EmiStack IESNIUM_SACRIFICIAL_BOWL = EmiStack.of(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.get()); + public static final EmiStack ELDRITCH_CHALICE = EmiStack.of(OccultismBlocks.ELDRITCH_CHALICE.get()); public static final ResourceLocation EMI_WIDGETS = ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "textures/gui/emi/widgets.png"); public static final EmiRecipeCategory SPIRIT_FIRE_CATEGORY = new EmiRecipeCategory(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "spirit_fire"),SPIRIT_FIRE, new EmiTexture(EMI_WIDGETS, 0, 0, 16, 16)); public static final EmiRecipeCategory CRUSHING_CATEGORY = new EmiRecipeCategory(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "crushing"), new SpiritRenderable(OccultismEntities.FOLIOT.get()), new EmiTexture(EMI_WIDGETS, 32, 0, 16, 16)); @@ -72,6 +74,8 @@ public void register(EmiRegistry emiRegistry) { emiRegistry.addCategory(RITUAL_CATEGORY); emiRegistry.addWorkstation(RITUAL_CATEGORY, GOLDEN_SACRIFICIAL_BOWL); + emiRegistry.addWorkstation(RITUAL_CATEGORY, IESNIUM_SACRIFICIAL_BOWL); + emiRegistry.addWorkstation(RITUAL_CATEGORY, ELDRITCH_CHALICE); RecipeManager manager=emiRegistry.getRecipeManager(); for(RecipeHolder recipe: manager.getAllRecipesFor(OccultismRecipes.SPIRIT_FIRE_TYPE.get())) { emiRegistry.addRecipe(new SpiritFireRecipeCategory(recipe)); diff --git a/src/main/java/com/klikli_dev/occultism/integration/jei/impl/JeiPlugin.java b/src/main/java/com/klikli_dev/occultism/integration/jei/impl/JeiPlugin.java index 21a6fa9d9..94e7febef 100644 --- a/src/main/java/com/klikli_dev/occultism/integration/jei/impl/JeiPlugin.java +++ b/src/main/java/com/klikli_dev/occultism/integration/jei/impl/JeiPlugin.java @@ -122,7 +122,10 @@ public void registerRecipeCatalysts(IRecipeCatalystRegistration registration) { JeiRecipeTypes.MINER); registration.addRecipeCatalyst(new ItemStack(OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get()), JeiRecipeTypes.RITUAL); - + registration.addRecipeCatalyst(new ItemStack(OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.get()), + JeiRecipeTypes.RITUAL); + registration.addRecipeCatalyst(new ItemStack(OccultismBlocks.ELDRITCH_CHALICE.get()), + JeiRecipeTypes.RITUAL); registration.addRecipeCatalyst(new ItemStack(BuiltInRegistries.ITEM.get(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/summon_marid_crusher"))), JeiRecipeTypes.CRUSHING); registration.addRecipeCatalyst(new ItemStack(BuiltInRegistries.ITEM.get(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "ritual_dummy/summon_afrit_crusher"))), diff --git a/src/main/java/com/klikli_dev/occultism/registry/OccultismBlockEntities.java b/src/main/java/com/klikli_dev/occultism/registry/OccultismBlockEntities.java index 8566f4dcc..459198047 100644 --- a/src/main/java/com/klikli_dev/occultism/registry/OccultismBlockEntities.java +++ b/src/main/java/com/klikli_dev/occultism/registry/OccultismBlockEntities.java @@ -36,7 +36,7 @@ public class OccultismBlockEntities { public static final Supplier> STORAGE_CONTROLLER = BLOCK_ENTITIES.register( "storage_controller", () -> BlockEntityType.Builder.of(StorageControllerBlockEntity::new, - OccultismBlocks.STORAGE_CONTROLLER.get()).build(null)); + OccultismBlocks.STORAGE_CONTROLLER.get(), OccultismBlocks.STORAGE_CONTROLLER_STABILIZED.get()).build(null)); public static final Supplier> STABLE_WORMHOLE = BLOCK_ENTITIES.register( "stable_wormhole", () -> BlockEntityType.Builder.of(StableWormholeBlockEntity::new, @@ -44,12 +44,12 @@ public class OccultismBlockEntities { public static final Supplier> SACRIFICIAL_BOWL = BLOCK_ENTITIES.register( "sacrificial_bowl", () -> BlockEntityType.Builder.of(SacrificialBowlBlockEntity::new, - OccultismBlocks.SACRIFICIAL_BOWL.get()).build(null)); + OccultismBlocks.SACRIFICIAL_BOWL.get(), OccultismBlocks.COPPER_SACRIFICIAL_BOWL.get(), OccultismBlocks.SILVER_SACRIFICIAL_BOWL.get()).build(null)); public static final Supplier> GOLDEN_SACRIFICIAL_BOWL = BLOCK_ENTITIES.register( "golden_sacrificial_bowl", () -> BlockEntityType.Builder.of(GoldenSacrificialBowlBlockEntity::new, - OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get()).build(null)); + OccultismBlocks.GOLDEN_SACRIFICIAL_BOWL.get(), OccultismBlocks.IESNIUM_SACRIFICIAL_BOWL.get(), OccultismBlocks.ELDRITCH_CHALICE.get()).build(null)); public static final Supplier> DIMENSIONAL_MINESHAFT = BLOCK_ENTITIES.register( diff --git a/src/main/java/com/klikli_dev/occultism/registry/OccultismBlocks.java b/src/main/java/com/klikli_dev/occultism/registry/OccultismBlocks.java index 22e2d5c8a..c2f4e19bc 100644 --- a/src/main/java/com/klikli_dev/occultism/registry/OccultismBlocks.java +++ b/src/main/java/com/klikli_dev/occultism/registry/OccultismBlocks.java @@ -41,12 +41,12 @@ import net.minecraft.util.RandomSource; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; -import net.minecraft.world.item.Rarity; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockSetType; import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; import net.minecraft.world.level.block.state.properties.WoodType; import net.minecraft.world.level.material.MapColor; import net.minecraft.world.level.material.PushReaction; @@ -96,52 +96,59 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou .noLootTable() .strength(5f, 30); public static final DeferredBlock CHALK_GLYPH_WHITE = register("chalk_glyph_white", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.whiteChalkGlyphColor, () -> OccultismItems.CHALK_WHITE.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.whiteChalkGlyphColor, OccultismItems.CHALK_WHITE), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_YELLOW = register("chalk_glyph_gold", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.yellowChalkGlyphColor, () -> OccultismItems.CHALK_YELLOW.get()), false, - LootTableType.EMPTY); + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.yellowChalkGlyphColor, OccultismItems.CHALK_YELLOW), + false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_PURPLE = register("chalk_glyph_purple", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.purpleChalkGlyphColor, () -> OccultismItems.CHALK_PURPLE.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.purpleChalkGlyphColor, OccultismItems.CHALK_PURPLE), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_RED = register("chalk_glyph_red", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.redChalkGlyphColor, () -> OccultismItems.CHALK_RED.get()), false, - LootTableType.EMPTY); + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.redChalkGlyphColor, OccultismItems.CHALK_RED), + false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_LIGHT_GRAY = register("chalk_glyph_light_gray", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.lightGrayChalkGlyphColor, () -> OccultismItems.CHALK_LIGHT_GRAY.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.lightGrayChalkGlyphColor, OccultismItems.CHALK_LIGHT_GRAY), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_GRAY = register("chalk_glyph_gray", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.grayChalkGlyphColor, () -> OccultismItems.CHALK_GRAY.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.grayChalkGlyphColor, OccultismItems.CHALK_GRAY), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_BLACK = register("chalk_glyph_black", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.blackChalkGlyphColor, () -> OccultismItems.CHALK_BLACK.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.blackChalkGlyphColor, OccultismItems.CHALK_BLACK), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_BROWN = register("chalk_glyph_brown", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.brownChalkGlyphColor, () -> OccultismItems.CHALK_BROWN.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.brownChalkGlyphColor, OccultismItems.CHALK_BROWN), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_ORANGE = register("chalk_glyph_orange", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.orangeChalkGlyphColor, () -> OccultismItems.CHALK_ORANGE.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.orangeChalkGlyphColor, OccultismItems.CHALK_ORANGE), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_LIME = register("chalk_glyph_lime", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.limeChalkGlyphColor, () -> OccultismItems.CHALK_LIME.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.limeChalkGlyphColor, OccultismItems.CHALK_LIME), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_GREEN = register("chalk_glyph_green", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.greenChalkGlyphColor, () -> OccultismItems.CHALK_GREEN.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.greenChalkGlyphColor, OccultismItems.CHALK_GREEN), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_CYAN = register("chalk_glyph_cyan", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.cyanChalkGlyphColor, () -> OccultismItems.CHALK_CYAN.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.cyanChalkGlyphColor, OccultismItems.CHALK_CYAN), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_LIGHT_BLUE = register("chalk_glyph_light_blue", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.lightBlueChalkGlyphColor, () -> OccultismItems.CHALK_LIGHT_BLUE.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.lightBlueChalkGlyphColor, OccultismItems.CHALK_LIGHT_BLUE), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_BLUE = register("chalk_glyph_blue", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.blueChalkGlyphColor, () -> OccultismItems.CHALK_BLUE.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.blueChalkGlyphColor, OccultismItems.CHALK_BLUE), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_MAGENTA = register("chalk_glyph_magenta", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.magentaChalkGlyphColor, () -> OccultismItems.CHALK_MAGENTA.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.magentaChalkGlyphColor, OccultismItems.CHALK_MAGENTA), false, LootTableType.EMPTY); public static final DeferredBlock CHALK_GLYPH_PINK = register("chalk_glyph_pink", - () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.pinkChalkGlyphColor, () -> OccultismItems.CHALK_PINK.get()), + () -> new ChalkGlyphBlock(GLYPH_PROPERTIES, Occultism.CLIENT_CONFIG.visuals.pinkChalkGlyphColor, OccultismItems.CHALK_PINK), + false, LootTableType.EMPTY); + + public static final DeferredBlock CHALK_GLYPH_RAINBOW = register("chalk_glyph_rainbow", + () -> new RainbowGlyphBlock(GLYPH_PROPERTIES, true, OccultismItems.CHALK_RAINBOW), + false, LootTableType.EMPTY); + public static final DeferredBlock CHALK_GLYPH_VOID = register("chalk_glyph_void", + () -> new RainbowGlyphBlock(GLYPH_PROPERTIES, false, OccultismItems.CHALK_VOID), false, LootTableType.EMPTY); //Resources @@ -151,7 +158,7 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou () -> new StairBlock(OccultismBlocks.OTHERSTONE.get().defaultBlockState(), BlockBehaviour.Properties.of().strength(1.5f).requiresCorrectToolForDrops())); public static final DeferredBlock OTHERSTONE_SLAB = register("otherstone_slab", - () -> new SlabBlock(Block.Properties.ofLegacyCopy(OTHERSTONE.get())), true, LootTableType.CUSTOM); + () -> new SlabBlock(Block.Properties.ofFullCopy(OTHERSTONE.get())), true, LootTableType.CUSTOM); public static final DeferredBlock OTHERSTONE_PRESSURE_PLATE = register("otherstone_pressure_plate", () -> new PressurePlateBlock(BlockSetType.STONE, BlockBehaviour.Properties.ofFullCopy(Blocks.STONE_PRESSURE_PLATE))); public static final DeferredBlock OTHERSTONE_BUTTON = register("otherstone_button", @@ -164,7 +171,7 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou () -> new StairBlock(OccultismBlocks.OTHERSTONE.get().defaultBlockState(), BlockBehaviour.Properties.of().strength(1.5f).requiresCorrectToolForDrops())); public static final DeferredBlock OTHERCOBBLESTONE_SLAB = register("othercobblestone_slab", - () -> new SlabBlock(Block.Properties.ofLegacyCopy(OTHERSTONE.get())), true, LootTableType.CUSTOM); + () -> new SlabBlock(Block.Properties.ofFullCopy(OTHERSTONE.get())), true, LootTableType.CUSTOM); public static final DeferredBlock OTHERCOBBLESTONE_WALL = register("othercobblestone_wall", () -> new WallBlock(BlockBehaviour.Properties.of().strength(1.5f).requiresCorrectToolForDrops())); public static final DeferredBlock POLISHED_OTHERSTONE = register("polished_otherstone", () -> new Block( @@ -173,7 +180,7 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou () -> new StairBlock(OccultismBlocks.POLISHED_OTHERSTONE.get().defaultBlockState(), BlockBehaviour.Properties.of().strength(1.5f).requiresCorrectToolForDrops())); public static final DeferredBlock POLISHED_OTHERSTONE_SLAB = register("polished_otherstone_slab", - () -> new SlabBlock(Block.Properties.ofLegacyCopy(POLISHED_OTHERSTONE.get())), true, LootTableType.CUSTOM); + () -> new SlabBlock(Block.Properties.ofFullCopy(POLISHED_OTHERSTONE.get())), true, LootTableType.CUSTOM); public static final DeferredBlock POLISHED_OTHERSTONE_WALL = register("polished_otherstone_wall", () -> new WallBlock(BlockBehaviour.Properties.of().strength(1.5f).requiresCorrectToolForDrops())); public static final DeferredBlock OTHERSTONE_BRICKS = register("otherstone_bricks", () -> new Block( @@ -182,22 +189,49 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou () -> new StairBlock(OccultismBlocks.OTHERSTONE_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.of().strength(1.5f).requiresCorrectToolForDrops())); public static final DeferredBlock OTHERSTONE_BRICKS_SLAB = register("otherstone_bricks_slab", - () -> new SlabBlock(Block.Properties.ofLegacyCopy(OTHERSTONE_BRICKS.get())), true, LootTableType.CUSTOM); + () -> new SlabBlock(Block.Properties.ofFullCopy(OTHERSTONE_BRICKS.get())), true, LootTableType.CUSTOM); public static final DeferredBlock OTHERSTONE_BRICKS_WALL = register("otherstone_bricks_wall", () -> new WallBlock(BlockBehaviour.Properties.of().strength(1.5f).requiresCorrectToolForDrops())); public static final DeferredBlock CHISELED_OTHERSTONE_BRICKS = register("chiseled_otherstone_bricks", () -> new Block( Block.Properties.of().mapColor(MapColor.STONE).sound(SoundType.STONE).strength(1.5f, 30))); public static final DeferredBlock CRACKED_OTHERSTONE_BRICKS = register("cracked_otherstone_bricks", () -> new Block( Block.Properties.of().mapColor(MapColor.STONE).sound(SoundType.STONE).strength(1.5f, 30))); - public static final DeferredBlock OTHERSTONE_PEDESTAL = register("otherstone_pedestal", - () -> new Block(Block.Properties.ofLegacyCopy(OTHERSTONE.get()))); - public static final DeferredBlock STORAGE_CONTROLLER_BASE = register("storage_controller_base", - () -> new NonPathfindableBlock(Block.Properties.ofLegacyCopy(OTHERSTONE.get()).noOcclusion())); + //Components public static final DeferredBlock OTHERSTONE_NATURAL = register("otherstone_natural", () -> new OtherstoneNaturalBlock( Block.Properties.of().mapColor(MapColor.STONE).sound(SoundType.STONE).strength(1.5f, 30)), true, LootTableType.OTHERWORLD_BLOCK); + public static final DeferredBlock OTHERGLASS_NATURAL = + register("otherglass_natural", () -> new OtherglassNaturalBlock( + Block.Properties.of() + .instrument(NoteBlockInstrument.HAT) + .sound(SoundType.GLASS) + .noOcclusion() + .noTerrainParticles() + .strength(5f, 50)), + true, LootTableType.CUSTOM); + //For otherglass natural + public static final DeferredBlock OTHERGLASS = register("otherglass", () -> new Block( + Block.Properties.of().mapColor(MapColor.SAND).noOcclusion().noTerrainParticles().sound(SoundType.GLASS).strength(2.5f, 50)),false); + + //Flower + public static final DeferredBlock OTHERFLOWER = + register("otherflower", () -> new FlowerBlock( + OccultismEffects.THIRD_EYE, 11, + Block.Properties.of() + .mapColor(MapColor.PLANT) + .sound(SoundType.GRASS) + .strength(0.0f).noOcclusion().noCollission())); + public static final DeferredBlock OTHERFLOWER_NATURAL = + register("otherflower_natural", () -> new OtherflowerNaturalBlock( + Block.Properties.of() + .mapColor(MapColor.PLANT) + .sound(SoundType.GRASS) + .strength(0.0f).noCollission().noOcclusion()), true, LootTableType.OTHERWORLD_BLOCK); + public static final DeferredBlock POTTED_OTHERFLOWER = + register("potted_otherflower", () -> new FlowerPotBlock( + OccultismBlocks.OTHERFLOWER.get(), Block.Properties.ofFullCopy(Blocks.POTTED_POPPY)), false); //Wood public static final DeferredBlock OTHERWORLD_SAPLING = register("otherworld_sapling", () -> new OtherworldSaplingBlock( @@ -224,18 +258,18 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou .strength(0.2f).randomTicks().noOcclusion()), true, LootTableType.CUSTOM); public static final DeferredBlock OTHERWORLD_LOG_NATURAL = register("otherworld_log_natural", () -> new OtherworldLogNaturalBlock(Block.Properties.of() - .mapColor((state) -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y ? MapColor.WOOD : MapColor.COLOR_PURPLE).strength(2.0f), () -> OccultismBlocks.STRIPPED_OTHERWORLD_LOG_NATURAL.get()), true, LootTableType.OTHERWORLD_BLOCK); + .mapColor((state) -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y ? MapColor.WOOD : MapColor.COLOR_PURPLE).strength(2.0f), OccultismBlocks.STRIPPED_OTHERWORLD_LOG_NATURAL), true, LootTableType.OTHERWORLD_BLOCK); public static final DeferredBlock STRIPPED_OTHERWORLD_LOG_NATURAL = register("stripped_otherworld_log_natural", () -> new OtherworldStrippedLogNaturalBlock(Block.Properties.of() .mapColor((state) -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y ? MapColor.WOOD : MapColor.COLOR_PURPLE).strength(2.0f)), true, LootTableType.OTHERWORLD_BLOCK); public static final DeferredBlock OTHERWORLD_LOG = register("otherworld_log", () -> new OtherworldStrippableBlock(Block.Properties.of() .mapColor((state) -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y ? MapColor.WOOD : MapColor.COLOR_PURPLE) - .strength(2.0F).sound(SoundType.WOOD).strength(2.0f), () -> OccultismBlocks.STRIPPED_OTHERWORLD_LOG.get())); + .strength(2.0F).sound(SoundType.WOOD).strength(2.0f), OccultismBlocks.STRIPPED_OTHERWORLD_LOG)); public static final DeferredBlock OTHERWORLD_WOOD = register("otherworld_wood", () -> new OtherworldStrippableBlock(Block.Properties.of() .mapColor((state) -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y ? MapColor.WOOD : MapColor.COLOR_PURPLE) - .strength(2.0F).sound(SoundType.WOOD).strength(2.0f), () -> OccultismBlocks.STRIPPED_OTHERWORLD_WOOD.get())); + .strength(2.0F).sound(SoundType.WOOD).strength(2.0f), OccultismBlocks.STRIPPED_OTHERWORLD_WOOD)); public static final DeferredBlock STRIPPED_OTHERWORLD_LOG = register("stripped_otherworld_log", () -> new RotatedPillarBlock(Block.Properties.of() .mapColor((state) -> state.getValue(RotatedPillarBlock.AXIS) == Direction.Axis.Y ? MapColor.WOOD : MapColor.COLOR_PURPLE) @@ -275,18 +309,23 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou () -> new OtherWallHangingSignBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_WALL_HANGING_SIGN), OtherWoodType.OTHERPLANKS),false, LootTableType.CUSTOM); //Ores - public static final DeferredBlock SILVER_ORE = register("silver_ore", () -> new Block(Block.Properties.ofLegacyCopy(Blocks.IRON_ORE)), true, LootTableType.CUSTOM); - public static final DeferredBlock SILVER_ORE_DEEPSLATE = register("silver_ore_deepslate", () -> new Block(Block.Properties.ofLegacyCopy(Blocks.IRON_ORE)), true, LootTableType.CUSTOM); - public static final DeferredBlock IESNIUM_ORE = register("iesnium_ore", () -> new Block(Block.Properties.ofLegacyCopy(Blocks.IRON_ORE)), true, LootTableType.CUSTOM); + public static final DeferredBlock SILVER_ORE = register("silver_ore", + () -> new Block(Block.Properties.ofFullCopy(Blocks.IRON_ORE)), true, LootTableType.CUSTOM); + public static final DeferredBlock SILVER_ORE_DEEPSLATE = register("silver_ore_deepslate", + () -> new Block(Block.Properties.ofFullCopy(Blocks.IRON_ORE)), true, LootTableType.CUSTOM); + public static final DeferredBlock IESNIUM_ORE = register("iesnium_ore", + () -> new Block(Block.Properties.ofFullCopy(Blocks.IRON_ORE)), true, LootTableType.CUSTOM); public static final DeferredBlock IESNIUM_ORE_NATURAL = - register("iesnium_ore_natural", () -> new IesniumOreNaturalBlock(Block.Properties.ofLegacyCopy(Blocks.IRON_ORE)), + register("iesnium_ore_natural", () -> new IesniumOreNaturalBlock(Block.Properties.ofFullCopy(Blocks.IRON_ORE)), true, LootTableType.OTHERWORLD_BLOCK); - public static final DeferredBlock SILVER_BLOCK = register("silver_block", () -> new Block(Block.Properties.ofLegacyCopy(Blocks.IRON_BLOCK))); - public static final DeferredBlock RAW_SILVER_BLOCK = register("raw_silver_block", () -> new Block(Block.Properties.ofLegacyCopy(Blocks.RAW_IRON_BLOCK))); - public static final DeferredBlock IESNIUM_BLOCK = register("iesnium_block", () -> new Block(Block.Properties.ofLegacyCopy(Blocks.IRON_BLOCK))); - public static final DeferredBlock RAW_IESNIUM_BLOCK = register("raw_iesnium_block", () -> new Block(Block.Properties.ofLegacyCopy(Blocks.RAW_IRON_BLOCK))); + public static final DeferredBlock SILVER_BLOCK = register("silver_block", () -> new Block(Block.Properties.ofFullCopy(Blocks.IRON_BLOCK))); + public static final DeferredBlock RAW_SILVER_BLOCK = register("raw_silver_block", () -> new Block(Block.Properties.ofFullCopy(Blocks.RAW_IRON_BLOCK))); + public static final DeferredBlock IESNIUM_BLOCK = register("iesnium_block", () -> new Block(Block.Properties.ofFullCopy(Blocks.IRON_BLOCK))); + public static final DeferredBlock RAW_IESNIUM_BLOCK = register("raw_iesnium_block", () -> new Block(Block.Properties.ofFullCopy(Blocks.RAW_IRON_BLOCK))); //Decorative and Ritual Blocks + public static final DeferredBlock TALLOW_BLOCK = register("tallow_block", () -> new Block( + Block.Properties.of().mapColor(MapColor.TERRACOTTA_WHITE).sound(SoundType.HONEY_BLOCK).speedFactor(0.8F).jumpFactor(0.8F).strength(0.2f, 3))); public static final DeferredBlock LARGE_CANDLE = register("large_candle", () -> new LargeCandleBlock(Block.Properties.of() .mapColor(MapColor.SAND).sound(SoundType.CANDLE).noCollission().strength(0.1f, 0) @@ -370,20 +409,63 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou .mapColor(MapColor.STONE) .sound(SoundType.STONE).strength(1.5f, 30) .noOcclusion())); + public static final DeferredBlock COPPER_SACRIFICIAL_BOWL = + register("copper_sacrificial_bowl", () -> new SacrificialBowlBlock( + Block.Properties.of() + .mapColor(MapColor.STONE) + .sound(SoundType.STONE).strength(1.5f, 30) + .noOcclusion())); + public static final DeferredBlock SILVER_SACRIFICIAL_BOWL = + register("silver_sacrificial_bowl", () -> new SacrificialBowlBlock( + Block.Properties.of() + .mapColor(MapColor.STONE) + .sound(SoundType.STONE).strength(1.5f, 30) + .noOcclusion())); public static final DeferredBlock GOLDEN_SACRIFICIAL_BOWL = register("golden_sacrificial_bowl", () -> new GoldenSacrificialBowlBlock( Block.Properties.of() .mapColor(MapColor.STONE) .sound(SoundType.STONE).strength(1.5f, 30) .noOcclusion())); + public static final DeferredBlock IESNIUM_SACRIFICIAL_BOWL = + register("iesnium_sacrificial_bowl", () -> new GoldenSacrificialBowlBlock( + Block.Properties.of() + .mapColor(MapColor.STONE) + .sound(SoundType.STONE).strength(1.5f, 30) + .noOcclusion())); + public static final DeferredBlock ELDRITCH_CHALICE = + register("eldritch_chalice", () -> new GoldenSacrificialBowlBlock( + Block.Properties.of() + .mapColor(MapColor.STONE) + .sound(SoundType.STONE).strength(5.1f, 77) + .noOcclusion())); + + public static final DeferredBlock OTHERSTONE_PEDESTAL = register("otherstone_pedestal", + () -> new NonPathfindableBlock(Block.Properties.ofFullCopy(OTHERSTONE.get()).noOcclusion())); + public static final DeferredBlock STORAGE_CONTROLLER_BASE = register("storage_controller_base", + () -> new NonPathfindableBlock(Block.Properties.ofFullCopy(OTHERSTONE.get()).noOcclusion())); + public static final DeferredBlock OTHERSTONE_PEDESTAL_SILVER = register("otherstone_pedestal_silver", + () -> new NonPathfindableBlock(Block.Properties.ofFullCopy(OTHERSTONE.get()).noOcclusion())); public static final DeferredBlock STORAGE_CONTROLLER = register("storage_controller", () -> new StorageControllerBlock( Block.Properties.of() .mapColor(MapColor.STONE) .sound(SoundType.STONE) - .strength(5f, 100).noOcclusion()), false, LootTableType.CUSTOM); - + .strength(5f, 100).noOcclusion()), true, LootTableType.CUSTOM); + public static final DeferredBlock STORAGE_CONTROLLER_STABILIZED = register("storage_controller_stabilized", + () -> new StorageControllerBlock( + Block.Properties.of() + .mapColor(MapColor.STONE) + .sound(SoundType.STONE) + .strength(5f, 100).noOcclusion()), true, LootTableType.CUSTOM); + + public static final DeferredBlock STORAGE_STABILIZER_TIER0 = register( + "storage_stabilizer_tier0", () -> new StorageStabilizerBlock( + Block.Properties.of() + .mapColor(MapColor.STONE) + .sound(SoundType.STONE).strength(1.5f, 30) + .noOcclusion())); public static final DeferredBlock STORAGE_STABILIZER_TIER1 = register( "storage_stabilizer_tier1", () -> new StorageStabilizerBlock( Block.Properties.of() @@ -423,6 +505,11 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou .noOcclusion() )); + public static final DeferredBlock IESNIUM_ANVIL = + register("iesnium_anvil", () -> new IesniumAnvilBlock( + BlockBehaviour.Properties.of().sound(SoundType.ANVIL).strength(5,1200) + )); + //Crops public static final DeferredBlock DATURA = register("datura", () -> new ReplantableCropsBlock( @@ -430,8 +517,8 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou .mapColor(MapColor.PLANT) .sound(SoundType.CROP).noCollission().randomTicks() //registry object is wrapped in lambda to account for load order and circular dependencies - .strength(0, 0), () -> OccultismItems.DATURA_SEEDS.get(), - () -> OccultismItems.DATURA.get()), false, LootTableType.REPLANTABLE_CROP); + .strength(0, 0), OccultismItems.DATURA_SEEDS, + OccultismItems.DATURA), false, LootTableType.REPLANTABLE_CROP); //Dummy public static final DeferredBlock SKELETON_SKULL_DUMMY = register("skeleton_skull_dummy", () -> new Block( @@ -446,7 +533,7 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou .requiresCorrectToolForDrops().strength(3.5F).sound(SoundType.LANTERN) .lightLevel((state) -> 10).noOcclusion())); - //See Occultism#commonSetup for extending the campfire blockentity type to accept our spirit campfire + //See Occultism#commonSetup for extending the campfire block entity type to accept our spirit campfire public static final DeferredBlock SPIRIT_CAMPFIRE = register("spirit_campfire", () -> new CampfireBlock(false, 0, BlockBehaviour.Properties.of() .mapColor(MapColor.PODZOL) @@ -455,13 +542,13 @@ public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, RandomSou public static final DeferredBlock SPIRIT_TORCH = register("spirit_torch", () -> new SpiritTorchBlock( - () -> OccultismParticles.SPIRIT_FIRE_FLAME.get(),//particles are not registered at block construct time, hence the supplier + OccultismParticles.SPIRIT_FIRE_FLAME,//particles are not registered at block construct time, hence the supplier BlockBehaviour.Properties.of() .noCollission().instabreak().lightLevel((state) -> 10).sound(SoundType.WOOD)), false); public static final DeferredBlock SPIRIT_WALL_TORCH = register("spirit_wall_torch", () -> new SpiritWallTorchBlock( - () -> OccultismParticles.SPIRIT_FIRE_FLAME.get(), //particles are not registered at block construct time, hence the supplier + OccultismParticles.SPIRIT_FIRE_FLAME, //particles are not registered at block construct time, hence the supplier BlockBehaviour.Properties.of() .noCollission().instabreak().lightLevel((state) -> 10).sound(SoundType.WOOD).lootFrom(SPIRIT_TORCH)), false); diff --git a/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java b/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java index 9dbc350e6..34e72a0f9 100644 --- a/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java +++ b/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java @@ -125,7 +125,7 @@ public class OccultismEntities { .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "possessed_elder_guardian").toString())); public static final Lazy> POSSESSED_WARDEN_TYPE = Lazy.of(() -> EntityType.Builder.of(PossessedWardenEntity::new, MobCategory.MONSTER) - .sized(1.8F, 5.8F) + .sized(0.9F, 2.9F) .fireImmune() .clientTrackingRange(48) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "possessed_warden").toString())); @@ -174,39 +174,39 @@ public class OccultismEntities { .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "otherworld_bird").toString())); public static final Lazy> WILD_HORDE_HUSK_TYPE = Lazy.of(() -> EntityType.Builder.of(WildHordeHuskEntity::new, MobCategory.MONSTER) - .sized(0.6F, 2.9F) + .sized(0.6F, 1.95F) .clientTrackingRange(8) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "wild_horde_husk").toString())); public static final Lazy> WILD_HORDE_DROWNED_TYPE = Lazy.of(() -> EntityType.Builder.of(WildHordeDrownedEntity::new, MobCategory.MONSTER) - .sized(0.6F, 2.9F) + .sized(0.6F, 1.95F) .clientTrackingRange(8) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "wild_horde_drowned").toString())); public static final Lazy> WILD_HORDE_CREEPER_TYPE = Lazy.of(() -> EntityType.Builder.of(WildHordeCreeperEntity::new, MobCategory.MONSTER) - .sized(0.8F, 1.4F) + .sized(0.6F, 1.7F) .clientTrackingRange(8) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "wild_horde_creeper").toString())); public static final Lazy> WILD_HORDE_SILVERFISH_TYPE = Lazy.of(() -> EntityType.Builder.of(WildHordeSilverfishEntity::new, MobCategory.MONSTER) - .sized(0.2F, 0.15F) + .sized(0.4F, 0.3F) .clientTrackingRange(16) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "wild_horde_silverfish").toString())); public static final Lazy> POSSESSED_WEAK_BREEZE_TYPE = Lazy.of(() -> EntityType.Builder.of(PossessedWeakBreezeEntity::new, MobCategory.MONSTER) - .sized(0.4F, 1.18F) + .sized(0.6F, 1.77F) .clientTrackingRange(32) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "possessed_weak_breeze").toString())); public static final Lazy> POSSESSED_BREEZE_TYPE = Lazy.of(() -> EntityType.Builder.of(PossessedBreezeEntity::new, MobCategory.MONSTER) .fireImmune() - .sized(0.9F, 2.65F) + .sized(0.6F, 1.77F) .clientTrackingRange(32) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "possessed_breeze").toString())); public static final Lazy> POSSESSED_STRONG_BREEZE_TYPE = Lazy.of(() -> EntityType.Builder.of(PossessedStrongBreezeEntity::new, MobCategory.MONSTER) .fireImmune() - .sized(1.2F, 3.54F) + .sized(0.6F, 1.77F) .clientTrackingRange(32) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "possessed_strong_breeze").toString())); public static final Lazy> WILD_ZOMBIE_TYPE = @@ -362,6 +362,12 @@ public class OccultismEntities { .clientTrackingRange(8) .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "shub_niggurath_spawn").toString())); + public static final Lazy> IESNIUM_GOLEM_TYPE = + Lazy.of(() -> EntityType.Builder.of(IesniumGolemEntity::new, MobCategory.MISC) + .sized(1.4F, 2.7F) + .clientTrackingRange(24) + .build(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "iesnium_golem").toString())); + public static final Supplier> FOLIOT = ENTITIES.register("foliot", FOLIOT_TYPE::get); public static final Supplier> DJINNI = ENTITIES.register("djinni", DJINNI_TYPE::get); public static final Supplier> AFRIT = ENTITIES.register("afrit", AFRIT_TYPE::get); @@ -474,6 +480,8 @@ public class OccultismEntities { ENTITIES.register("thrown_sword", THROWN_SWORD_TYPE::get); public static final Supplier> SHUB_NIGGURATH_SPAWN = ENTITIES.register("shub_niggurath_spawn", SHUB_NIGGURATH_SPAWN_TYPE::get); + public static final Supplier> IESNIUM_GOLEM = + ENTITIES.register("iesnium_golem", IESNIUM_GOLEM_TYPE::get); public static final Supplier> DEMONIC_WIFE = ENTITIES.register(DemonicWife.ID.getPath(), DemonicWife.ENTITY_TYPE::get); public static final Supplier> DEMONIC_HUSBAND = ENTITIES.register(DemonicHusband.ID.getPath(), DemonicHusband.ENTITY_TYPE::get); diff --git a/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java b/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java index babac8cdc..23859fefe 100644 --- a/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java +++ b/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java @@ -86,26 +86,28 @@ public class OccultismItems { () -> new StorageRemoteItem(defaultProperties().stacksTo(1))); public static final DeferredItem SOUL_GEM_ITEM = ITEMS.register("soul_gem", () -> new SoulGemItem(defaultProperties().stacksTo(1))); + public static final DeferredItem TRINITY_GEM_ITEM = ITEMS.register("trinity_gem", + () -> new SoulGemItem(defaultProperties().stacksTo(1))); public static final DeferredItem FAMILIAR_RING = ITEMS.register("familiar_ring", () -> new FamiliarRingItem(defaultProperties().stacksTo(1).component(OccultismDataComponents.SPIRIT_NAME, "(Not yet known)"))); //Books of Binding public static final DeferredItem BOOK_OF_BINDING_EMPTY = ITEMS.register( - "book_of_binding_empty", () -> new BookOfBindingItem(defaultProperties().stacksTo(1))); + "book_of_binding_empty", () -> new BookOfBindingItem(defaultProperties().stacksTo(16))); public static final DeferredItem BOOK_OF_BINDING_FOLIOT = ITEMS.register( - "book_of_binding_foliot", () -> new BookOfBindingItem(defaultProperties().stacksTo(1))); + "book_of_binding_foliot", () -> new BookOfBindingItem(defaultProperties().stacksTo(16))); public static final DeferredItem BOOK_OF_BINDING_BOUND_FOLIOT = ITEMS.register( "book_of_binding_bound_foliot", () -> new BookOfBindingBoundItem(defaultProperties().stacksTo(1).component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN))); public static final DeferredItem BOOK_OF_BINDING_DJINNI = ITEMS.register( - "book_of_binding_djinni", () -> new BookOfBindingItem(defaultProperties().stacksTo(1))); + "book_of_binding_djinni", () -> new BookOfBindingItem(defaultProperties().stacksTo(16))); public static final DeferredItem BOOK_OF_BINDING_BOUND_DJINNI = ITEMS.register( "book_of_binding_bound_djinni", () -> new BookOfBindingBoundItem(defaultProperties().stacksTo(1).component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN))); public static final DeferredItem BOOK_OF_BINDING_AFRIT = ITEMS.register( - "book_of_binding_afrit", () -> new BookOfBindingItem(defaultProperties().stacksTo(1))); + "book_of_binding_afrit", () -> new BookOfBindingItem(defaultProperties().stacksTo(16))); public static final DeferredItem BOOK_OF_BINDING_BOUND_AFRIT = ITEMS.register( "book_of_binding_bound_afrit", () -> new BookOfBindingBoundItem(defaultProperties().stacksTo(1).component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN))); public static final DeferredItem BOOK_OF_BINDING_MARID = ITEMS.register( - "book_of_binding_marid", () -> new BookOfBindingItem(defaultProperties().stacksTo(1))); + "book_of_binding_marid", () -> new BookOfBindingItem(defaultProperties().stacksTo(16))); public static final DeferredItem BOOK_OF_BINDING_BOUND_MARID = ITEMS.register( "book_of_binding_bound_marid", () -> new BookOfBindingBoundItem(defaultProperties().stacksTo(1).component(OccultismDataComponents.SPIRIT_NAME, TextUtil.SPIRIT_NAME_NOT_YET_KNOWN))); //Books of Calling @@ -179,6 +181,14 @@ public class OccultismItems { public static final DeferredItem CHALK_PINK = ITEMS.register("chalk_pink", () -> new ChalkItem(defaultProperties().setNoRepair().durability(256), OccultismBlocks.CHALK_GLYPH_PINK)); + + public static final DeferredItem CHALK_RAINBOW = ITEMS.register("chalk_rainbow", + () -> new RainbowChalkItem(defaultProperties().setNoRepair().durability(4096), + OccultismBlocks.CHALK_GLYPH_RAINBOW)); + public static final DeferredItem CHALK_VOID = ITEMS.register("chalk_void", + () -> new RainbowChalkItem(defaultProperties().setNoRepair().durability(4096), + OccultismBlocks.CHALK_GLYPH_VOID)); + public static final DeferredItem CHALK_WHITE_IMPURE = ITEMS.register("chalk_white_impure", () -> new Item(defaultProperties())); public static final DeferredItem CHALK_LIGHT_GRAY_IMPURE = ITEMS.register("chalk_light_gray_impure", @@ -380,9 +390,7 @@ public class OccultismItems { public static final DeferredItem SPIRIT_FIRE = ITEMS.register("spirit_fire", () -> new BlockItem(OccultismBlocks.SPIRIT_FIRE.get(), defaultProperties())); public static final DeferredItem STABLE_WORMHOLE = ITEMS.register("stable_wormhole", - () -> new StableWormholeBlockItem(OccultismBlocks.STABLE_WORMHOLE.get(), defaultProperties())); - public static final DeferredItem STORAGE_CONTROLLER = ITEMS.register("storage_controller", - () -> new StorageControllerBlockItem(OccultismBlocks.STORAGE_CONTROLLER.get(), defaultProperties())); + () -> new StableWormholeBlockItem(OccultismBlocks.STABLE_WORMHOLE.get(), defaultProperties())); //not work if auto-gen //Deco Block Items public static final DeferredItem SPIRIT_TORCH = ITEMS.register("spirit_torch", @@ -494,6 +502,8 @@ public class OccultismItems { () -> new DeferredSpawnEggItem(OccultismEntities.DEMONIC_WIFE, 0xf2f0d7, 0xa01d1d, defaultProperties())); public static final DeferredItem SPAWN_EGG_DEMONIC_HUSBAND = ITEMS.register("spawn_egg/demonic_husband", () -> new DeferredSpawnEggItem(OccultismEntities.DEMONIC_HUSBAND, 0xf2f0d7, 0xa01d1d, defaultProperties())); + public static final DeferredItem SPAWN_EGG_IESNIUM_GOLEM = ITEMS.register("spawn_egg/iesnium_golem", + () -> new DeferredSpawnEggItem(OccultismEntities.IESNIUM_GOLEM_TYPE, 0x94d4db, 0x345f7c, defaultProperties())); //Ritual Dummy Items //SUMMON @@ -569,6 +579,7 @@ public class OccultismItems { public static final DeferredItem RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_RIDEABLE = ITEMS.register("ritual_dummy/possess_random_animal_rideable", () -> new DummyTooltipItem(defaultProperties())); public static final DeferredItem RITUAL_DUMMY_POSSESS_RANDOM_ANIMAL_SPECIAL = ITEMS.register("ritual_dummy/possess_random_animal_special", () -> new DummyTooltipItem(defaultProperties())); public static final DeferredItem RITUAL_DUMMY_POSSESS_VILLAGER = ITEMS.register("ritual_dummy/possess_villager", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_POSSESS_IESNIUM_GOLEM = ITEMS.register("ritual_dummy/possess_iesnium_golem", () -> new DummyTooltipItem(defaultProperties())); // CRAFT static { @@ -602,6 +613,8 @@ public class OccultismItems { } public static final DeferredItem RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T1 = ITEMS.register("ritual_dummy/craft_ritual_satchel_t1", () -> new DummyTooltipItem(defaultProperties())); public static final DeferredItem RITUAL_DUMMY_CRAFT_RITUAL_SATCHEL_T2 = ITEMS.register("ritual_dummy/craft_ritual_satchel_t2", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_CRAFT_IESNIUM_SACRIFICIAL_BOWL = ITEMS.register("ritual_dummy/craft_iesnium_sacrificial_bowl", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_CRAFT_IESNIUM_ANVIL = ITEMS.register("ritual_dummy/craft_iesnium_anvil", () -> new DummyTooltipItem(defaultProperties())); //MISC //Resurrect @@ -627,7 +640,14 @@ public class OccultismItems { public static final DeferredItem RITUAL_DUMMY_FORGE_WILD_TRIM = ITEMS.register("ritual_dummy/misc_wild_trim", () -> new DummyTooltipItem(defaultProperties())); public static final DeferredItem RITUAL_DUMMY_FORGE_BUDDING_AMETHYST = ITEMS.register("ritual_dummy/misc_budding_amethyst", () -> new DummyTooltipItem(defaultProperties())); public static final DeferredItem RITUAL_DUMMY_FORGE_REINFORCED_DEEPSLATE = ITEMS.register("ritual_dummy/misc_reinforced_deepslate", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_FORGE_BEE_NEST = ITEMS.register("ritual_dummy/misc_bee_nest", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_FORGE_BELL = ITEMS.register("ritual_dummy/misc_bell", () -> new DummyTooltipItem(defaultProperties())); public static final DeferredItem RITUAL_DUMMY_FORGE_MINER_ANCIENT_ELDRITCH = ITEMS.register("ritual_dummy/misc_miner_ancient_eldritch", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_FORGE_ELDRITCH_CHALICE = ITEMS.register("ritual_dummy/misc_eldritch_chalice", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_FORGE_STABILIZED_STORAGE = ITEMS.register("ritual_dummy/misc_stabilized_storage", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_FORGE_CHALK_RAINBOW = ITEMS.register("ritual_dummy/misc_chalk_rainbow", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_FORGE_CHALK_VOID = ITEMS.register("ritual_dummy/misc_chalk_void", () -> new DummyTooltipItem(defaultProperties())); + public static final DeferredItem RITUAL_DUMMY_FORGE_TRINITY_GEM = ITEMS.register("ritual_dummy/misc_trinity_gem", () -> new DummyTooltipItem(defaultProperties())); // CUSTOM public static final DeferredItem RITUAL_DUMMY_CUSTOM_SUMMON = ITEMS.register("ritual_dummy/custom_ritual_summon", () -> new DummyTooltipItem(defaultProperties())); diff --git a/src/main/java/com/klikli_dev/occultism/registry/OccultismTags.java b/src/main/java/com/klikli_dev/occultism/registry/OccultismTags.java index c91b8a57d..3cb4dde88 100644 --- a/src/main/java/com/klikli_dev/occultism/registry/OccultismTags.java +++ b/src/main/java/com/klikli_dev/occultism/registry/OccultismTags.java @@ -43,9 +43,32 @@ public static class Blocks { public static final TagKey NETHERRACK = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "netherrack")); public static final TagKey CANDLES = makeBlockTag(ResourceLocation.fromNamespaceAndPath("minecraft", "candles")); + public static final TagKey CENTER_SACRIFICIAL_BOWL = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "center_sacrificial_bowl")); public static final TagKey FOUNDATION_GLYPHS_ANY = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "foundation_glyphs_any")); public static final TagKey FOUNDATION_GLYPHS_NO_WHITE = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "foundation_glyphs_no_white")); public static final TagKey FOUNDATION_GLYPHS_DARK = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "foundation_glyphs_dark")); + public static final TagKey GLYPHS_BLACK = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_black")); + public static final TagKey GLYPHS_RED = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_red")); + + public static final TagKey GLYPHS_BROWN = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_brown")); + + public static final TagKey GLYPHS_ORANGE = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_orange")); + + public static final TagKey GLYPHS_YELLOW = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_yellow")); + + public static final TagKey GLYPHS_LIME = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_lime")); + + public static final TagKey GLYPHS_GREEN = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_green")); + + public static final TagKey GLYPHS_CYAN = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_cyan")); + + public static final TagKey GLYPHS_BLUE = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_blue")); + + public static final TagKey GLYPHS_LIGHT_BLUE = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_light_blue")); + + public static final TagKey GLYPHS_PINK = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_pink")); + public static final TagKey GLYPHS_MAGENTA = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_magenta")); + public static final TagKey GLYPHS_PURPLE = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "glyphs_purple")); public static final TagKey CHALK_GLYPHS = makeBlockTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "chalk_glyphs")); public static final TagKey IESNIUM_ORE = makeBlockTag(ResourceLocation.fromNamespaceAndPath("c", "ores/iesnium")); public static final TagKey SILVER_ORE = makeBlockTag(ResourceLocation.fromNamespaceAndPath("c", "ores/silver")); @@ -169,6 +192,7 @@ public static class Entities { public static final TagKey> VILLAGERS = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "villagers")); public static final TagKey> ZOMBIES = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "zombies")); public static final TagKey> BATS = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "bats")); + public static final TagKey> BEES = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "bees")); public static final TagKey> SNOW_GOLEM=makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "golems/snow")); public static final TagKey> IRON_GOLEM=makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "golems/iron")); public static final TagKey> DONKEYS = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "donkeys")); @@ -189,10 +213,12 @@ public static class Entities { public static final TagKey> OCELOT = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "ocelots")); public static final TagKey> CATS = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "cats")); public static final TagKey> WARDEN = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "wardens")); + public static final TagKey> RAVAGER = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "ravagers")); public static final TagKey> VEX = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "vex")); public static final TagKey> ALLAY = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath("c", "allay")); //Entity Tags public static final TagKey> SOUL_GEM_DENY_LIST = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "soul_gem_deny_list")); + public static final TagKey> TRINITY_GEM_DENY_LIST = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "trinity_gem_deny_list")); public static final TagKey> AFRIT_ALLIES = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "afrit_allies")); public static final TagKey> WILD_HUNT = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "wild_hunt")); public static final TagKey> WILD_TRIAL = makeEntityTypeTag(ResourceLocation.fromNamespaceAndPath(Occultism.MODID, "wild_trial")); diff --git a/src/main/resources/assets/occultism/blockstates/eldritch_chalice.json b/src/main/resources/assets/occultism/blockstates/eldritch_chalice.json new file mode 100644 index 000000000..a895cbf64 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/eldritch_chalice.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "occultism:block/eldritch_chalice" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/blockstates/iesnium_anvil.json b/src/main/resources/assets/occultism/blockstates/iesnium_anvil.json new file mode 100644 index 000000000..476abf4c0 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/iesnium_anvil.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=south": { "model": "occultism:block/iesnium_anvil" }, + "facing=west": { "model": "occultism:block/iesnium_anvil", "y": 90 }, + "facing=north": { "model": "occultism:block/iesnium_anvil", "y": 180 }, + "facing=east": { "model": "occultism:block/iesnium_anvil", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/blockstates/iesnium_sacrificial_bowl.json b/src/main/resources/assets/occultism/blockstates/iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..248ca3354 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/iesnium_sacrificial_bowl.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "occultism:block/iesnium_sacrificial_bowl" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/blockstates/otherflower.json b/src/main/resources/assets/occultism/blockstates/otherflower.json new file mode 100644 index 000000000..3cfe1d006 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/otherflower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "occultism:block/otherflower" + } + } +} diff --git a/src/main/resources/assets/occultism/blockstates/otherflower_natural.json b/src/main/resources/assets/occultism/blockstates/otherflower_natural.json new file mode 100644 index 000000000..cd421b7ff --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/otherflower_natural.json @@ -0,0 +1,20 @@ +{ + "multipart": [ + { + "when": { + "uncovered": "false" + }, + "apply": { + "model": "occultism:block/otherflower_natural" + } + }, + { + "when": { + "uncovered": "true" + }, + "apply": { + "model": "occultism:block/otherflower" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/blockstates/otherglass_natural.json b/src/main/resources/assets/occultism/blockstates/otherglass_natural.json new file mode 100644 index 000000000..6b64bdd44 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/otherglass_natural.json @@ -0,0 +1,20 @@ +{ + "multipart": [ + { + "when": { + "uncovered": "false" + }, + "apply": { + "model": "block/barrier" + } + }, + { + "when": { + "uncovered": "true" + }, + "apply": { + "model": "block/end_stone" + } + } + ] +} diff --git a/src/main/resources/assets/occultism/blockstates/otherstone_pedestal_silver.json b/src/main/resources/assets/occultism/blockstates/otherstone_pedestal_silver.json new file mode 100644 index 000000000..da9eed073 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/otherstone_pedestal_silver.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "occultism:block/otherstone_pedestal_silver" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/blockstates/potted_otherflower.json b/src/main/resources/assets/occultism/blockstates/potted_otherflower.json new file mode 100644 index 000000000..811df4301 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/potted_otherflower.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "occultism:block/potted_otherflower" + } + } +} diff --git a/src/main/resources/assets/occultism/blockstates/tallow_block.json b/src/main/resources/assets/occultism/blockstates/tallow_block.json new file mode 100644 index 000000000..36c633686 --- /dev/null +++ b/src/main/resources/assets/occultism/blockstates/tallow_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "occultism:block/tallow_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/geo/entity/djinni_worker.geo.json b/src/main/resources/assets/occultism/geo/entity/djinni_worker.geo.json index 5a0606bc2..447fddfd3 100644 --- a/src/main/resources/assets/occultism/geo/entity/djinni_worker.geo.json +++ b/src/main/resources/assets/occultism/geo/entity/djinni_worker.geo.json @@ -11,13 +11,6 @@ "visible_bounds_offset": [0, 1.25, 0] }, "bones": [ - { - "name": "bb_main", - "pivot": [0, 0, 0], - "cubes": [ - {"origin": [-3.3, 35, -3.7], "size": [6.6, 3.4, 7.7], "pivot": [0, 38, 0], "rotation": [-15, 0, 0], "uv": [26, 9]} - ] - }, { "name": "All", "pivot": [0, 0, 0] @@ -32,7 +25,8 @@ "parent": "Torso", "pivot": [0, 0, 0], "cubes": [ - {"origin": [-2.5, 32, -3], "size": [5, 4.4, 5], "uv": [32, 0]} + {"origin": [-2.5, 32, -3], "size": [5, 4.4, 5], "uv": [32, 0]}, + {"origin": [-3.3, 35, -3.7], "size": [6.6, 3.4, 7.7], "pivot": [0, 38, 0], "rotation": [-15, 0, 0], "uv": [26, 9]} ] }, { diff --git a/src/main/resources/assets/occultism/models/block/copper_sacrificial_bowl.json b/src/main/resources/assets/occultism/models/block/copper_sacrificial_bowl.json new file mode 100644 index 000000000..944e7a9cf --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/copper_sacrificial_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "occultism:block/sacrificial_bowl", + "textures": { + "1": "occultism:block/otherstone_copper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/eldritch_chalice.json b/src/main/resources/assets/occultism/models/block/eldritch_chalice.json new file mode 100644 index 000000000..337ecd8f5 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/eldritch_chalice.json @@ -0,0 +1,581 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "2": "occultism:block/dimensional_mineshaft_portal", + "3": "occultism:block/otherstone_eldritch", + "particle": "occultism:block/otherstone_eldritch" + }, + "elements": [ + { + "name": "leg", + "from": [7.5, 1, 7.5], + "to": [8.5, 6, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 1, 0.5]}, + "faces": { + "north": {"uv": [1, 10, 2, 15], "texture": "#3"}, + "east": {"uv": [0, 10, 1, 15], "texture": "#3"}, + "south": {"uv": [3, 10, 4, 15], "texture": "#3"}, + "west": {"uv": [2, 10, 3, 15], "texture": "#3"}, + "up": {"uv": [2, 10, 1, 9], "texture": "#3"}, + "down": {"uv": [3, 9, 2, 10], "texture": "#3"} + } + }, + { + "from": [7, 7, 4], + "to": [9, 10, 5], + "faces": { + "north": {"uv": [1, 7, 3, 10], "texture": "#3"}, + "east": {"uv": [0, 7, 1, 10], "texture": "#3"}, + "south": {"uv": [4, 7, 6, 10], "texture": "#3"}, + "west": {"uv": [3, 7, 4, 10], "texture": "#3"}, + "up": {"uv": [3, 7, 1, 6], "texture": "#3"}, + "down": {"uv": [5, 6, 3, 7], "texture": "#3"} + } + }, + { + "from": [11, 7, 7], + "to": [12, 10, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [3, 7, 2, 10], "texture": "#3"}, + "east": {"uv": [5, 7, 3, 10], "texture": "#3"}, + "south": {"uv": [6, 7, 5, 10], "texture": "#3"}, + "west": {"uv": [2, 7, 0, 10], "texture": "#3"}, + "up": {"uv": [2, 7, 3, 5], "texture": "#3"}, + "down": {"uv": [3, 5, 4, 7], "texture": "#3"} + } + }, + { + "from": [4, 7, 7], + "to": [5, 10, 9], + "faces": { + "north": {"uv": [2, 7, 3, 10], "texture": "#3"}, + "east": {"uv": [0, 7, 2, 10], "texture": "#3"}, + "south": {"uv": [5, 7, 6, 10], "texture": "#3"}, + "west": {"uv": [3, 7, 5, 10], "texture": "#3"}, + "up": {"uv": [3, 7, 2, 5], "texture": "#3"}, + "down": {"uv": [4, 5, 3, 7], "texture": "#3"} + } + }, + { + "from": [7, 7, 11], + "to": [9, 10, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [3, 7, 1, 10], "texture": "#3"}, + "east": {"uv": [4, 7, 3, 10], "texture": "#3"}, + "south": {"uv": [6, 7, 4, 10], "texture": "#3"}, + "west": {"uv": [1, 7, 0, 10], "texture": "#3"}, + "up": {"uv": [1, 7, 3, 6], "texture": "#3"}, + "down": {"uv": [3, 6, 5, 7], "texture": "#3"} + } + }, + { + "from": [5, 7, 9], + "to": [7, 10, 11], + "faces": { + "north": {"uv": [2, 7, 4, 10], "texture": "#3"}, + "east": {"uv": [0, 7, 2, 10], "texture": "#3"}, + "south": {"uv": [6, 7, 8, 10], "texture": "#3"}, + "west": {"uv": [4, 7, 6, 10], "texture": "#3"}, + "up": {"uv": [4, 7, 2, 5], "texture": "#3"}, + "down": {"uv": [6, 5, 4, 7], "texture": "#3"} + } + }, + { + "from": [9, 7, 9], + "to": [11, 10, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [4, 7, 2, 10], "texture": "#3"}, + "east": {"uv": [6, 7, 4, 10], "texture": "#3"}, + "south": {"uv": [8, 7, 6, 10], "texture": "#3"}, + "west": {"uv": [2, 7, 0, 10], "texture": "#3"}, + "up": {"uv": [2, 7, 4, 5], "texture": "#3"}, + "down": {"uv": [4, 5, 6, 7], "texture": "#3"} + } + }, + { + "from": [5, 7, 5], + "to": [7, 10, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [4, 7, 2, 10], "texture": "#3"}, + "east": {"uv": [6, 7, 4, 10], "texture": "#3"}, + "south": {"uv": [8, 7, 6, 10], "texture": "#3"}, + "west": {"uv": [2, 7, 0, 10], "texture": "#3"}, + "up": {"uv": [2, 7, 4, 5], "texture": "#3"}, + "down": {"uv": [4, 5, 6, 7], "texture": "#3"} + } + }, + { + "from": [9, 7, 5], + "to": [11, 10, 7], + "faces": { + "north": {"uv": [2, 7, 4, 10], "texture": "#3"}, + "east": {"uv": [0, 7, 2, 10], "texture": "#3"}, + "south": {"uv": [6, 7, 8, 10], "texture": "#3"}, + "west": {"uv": [4, 7, 6, 10], "texture": "#3"}, + "up": {"uv": [4, 7, 2, 5], "texture": "#3"}, + "down": {"uv": [6, 5, 4, 7], "texture": "#3"} + } + }, + { + "from": [7, 0, 5], + "to": [9, 1, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [10, 15, 8, 16], "texture": "#3"}, + "east": {"uv": [11, 15, 10, 16], "texture": "#3"}, + "south": {"uv": [13, 15, 11, 16], "texture": "#3"}, + "west": {"uv": [8, 15, 7, 16], "texture": "#3"}, + "up": {"uv": [8, 15, 10, 14], "texture": "#3"}, + "down": {"uv": [10, 14, 12, 15], "texture": "#3"} + } + }, + { + "from": [5, 0, 7], + "to": [6, 1, 9], + "faces": { + "north": {"uv": [10, 15, 11, 16], "texture": "#3"}, + "east": {"uv": [8, 15, 10, 16], "texture": "#3"}, + "south": {"uv": [13, 15, 14, 16], "texture": "#3"}, + "west": {"uv": [11, 15, 13, 16], "texture": "#3"}, + "up": {"uv": [11, 15, 10, 13], "texture": "#3"}, + "down": {"uv": [12, 13, 11, 15], "texture": "#3"} + } + }, + { + "from": [10, 0, 7], + "to": [11, 1, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [17, 0, 0]}, + "faces": { + "north": {"uv": [11, 15, 10, 16], "texture": "#3"}, + "east": {"uv": [13, 15, 11, 16], "texture": "#3"}, + "south": {"uv": [14, 15, 13, 16], "texture": "#3"}, + "west": {"uv": [10, 15, 8, 16], "texture": "#3"}, + "up": {"uv": [10, 15, 11, 13], "texture": "#3"}, + "down": {"uv": [11, 13, 12, 15], "texture": "#3"} + } + }, + { + "from": [7, 0, 10], + "to": [9, 1, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, + "faces": { + "north": {"uv": [8, 15, 10, 16], "texture": "#3"}, + "east": {"uv": [7, 15, 8, 16], "texture": "#3"}, + "south": {"uv": [11, 15, 13, 16], "texture": "#3"}, + "west": {"uv": [10, 15, 11, 16], "texture": "#3"}, + "up": {"uv": [10, 15, 8, 14], "texture": "#3"}, + "down": {"uv": [12, 14, 10, 15], "texture": "#3"} + } + }, + { + "from": [6, 0, 6], + "to": [10, 1, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [-3, 0, 0]}, + "faces": { + "north": {"uv": [4, 15, 8, 16], "texture": "#3"}, + "east": {"uv": [0, 15, 4, 16], "texture": "#3"}, + "south": {"uv": [12, 15, 16, 16], "texture": "#3"}, + "west": {"uv": [8, 15, 12, 16], "texture": "#3"}, + "up": {"uv": [8, 15, 4, 11], "texture": "#3"}, + "down": {"uv": [12, 11, 8, 15], "texture": "#3"} + } + }, + { + "from": [9, 10, 4], + "to": [11, 15, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [11, 2, 9, 7], "texture": "#3"}, + "east": {"uv": [12, 2, 11, 7], "texture": "#3"}, + "south": {"uv": [14, 2, 12, 7], "texture": "#3"}, + "west": {"uv": [9, 2, 8, 7], "texture": "#3"}, + "up": {"uv": [9, 2, 11, 1], "texture": "#3"}, + "down": {"uv": [11, 1, 13, 2], "texture": "#3"} + } + }, + { + "from": [6, 10, 12], + "to": [10, 15, 13], + "faces": { + "north": {"uv": [7, 2, 11, 7], "texture": "#3"}, + "east": {"uv": [6, 2, 7, 7], "texture": "#3"}, + "south": {"uv": [12, 2, 16, 7], "texture": "#3"}, + "west": {"uv": [11, 2, 12, 7], "texture": "#3"}, + "up": {"uv": [11, 2, 7, 1], "texture": "#3"}, + "down": {"uv": [15, 1, 11, 2], "texture": "#3"} + } + }, + { + "from": [9, 10, 11], + "to": [11, 15, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [11, 2, 9, 7], "texture": "#3"}, + "east": {"uv": [12, 2, 11, 7], "texture": "#3"}, + "south": {"uv": [14, 2, 12, 7], "texture": "#3"}, + "west": {"uv": [9, 2, 8, 7], "texture": "#3"}, + "up": {"uv": [9, 2, 11, 1], "texture": "#3"}, + "down": {"uv": [11, 1, 13, 2], "texture": "#3"} + } + }, + { + "from": [4, 10, 9], + "to": [5, 15, 11], + "faces": { + "north": {"uv": [5, 2, 6, 7], "texture": "#3"}, + "east": {"uv": [3, 2, 5, 7], "texture": "#3"}, + "south": {"uv": [8, 2, 9, 7], "texture": "#3"}, + "west": {"uv": [6, 2, 8, 7], "texture": "#3"}, + "up": {"uv": [6, 2, 5, 0], "texture": "#3"}, + "down": {"uv": [7, 0, 6, 2], "texture": "#3"} + } + }, + { + "from": [4, 10, 5], + "to": [5, 15, 7], + "faces": { + "north": {"uv": [5, 2, 6, 7], "texture": "#3"}, + "east": {"uv": [3, 2, 5, 7], "texture": "#3"}, + "south": {"uv": [8, 2, 9, 7], "texture": "#3"}, + "west": {"uv": [6, 2, 8, 7], "texture": "#3"}, + "up": {"uv": [6, 2, 5, 0], "texture": "#3"}, + "down": {"uv": [7, 0, 6, 2], "texture": "#3"} + } + }, + { + "from": [3, 10, 6], + "to": [4, 15, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [-3, 0, 0]}, + "faces": { + "north": {"uv": [5, 2, 6, 7], "texture": "#3"}, + "east": {"uv": [3, 2, 5, 7], "texture": "#3"}, + "south": {"uv": [8, 2, 9, 7], "texture": "#3"}, + "west": {"uv": [6, 2, 8, 7], "texture": "#3"}, + "up": {"uv": [6, 2, 5, 0], "texture": "#3"}, + "down": {"uv": [7, 0, 6, 2], "texture": "#3"} + } + }, + { + "from": [3, 10, 8], + "to": [4, 15, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [-3, 0, 2]}, + "faces": { + "north": {"uv": [5, 2, 6, 7], "texture": "#3"}, + "east": {"uv": [3, 2, 5, 7], "texture": "#3"}, + "south": {"uv": [8, 2, 9, 7], "texture": "#3"}, + "west": {"uv": [6, 2, 8, 7], "texture": "#3"}, + "up": {"uv": [6, 2, 5, 0], "texture": "#3"}, + "down": {"uv": [7, 0, 6, 2], "texture": "#3"} + } + }, + { + "from": [6, 10, 3], + "to": [10, 15, 4], + "faces": { + "north": {"uv": [7, 2, 11, 7], "texture": "#3"}, + "east": {"uv": [6, 2, 7, 7], "texture": "#3"}, + "south": {"uv": [12, 2, 16, 7], "texture": "#3"}, + "west": {"uv": [11, 2, 12, 7], "texture": "#3"}, + "up": {"uv": [11, 2, 7, 1], "texture": "#3"}, + "down": {"uv": [15, 1, 11, 2], "texture": "#3"} + } + }, + { + "from": [5, 10, 4], + "to": [7, 15, 5], + "faces": { + "north": {"uv": [9, 2, 11, 7], "texture": "#3"}, + "east": {"uv": [8, 2, 9, 7], "texture": "#3"}, + "south": {"uv": [12, 2, 14, 7], "texture": "#3"}, + "west": {"uv": [11, 2, 12, 7], "texture": "#3"}, + "up": {"uv": [11, 2, 9, 1], "texture": "#3"}, + "down": {"uv": [13, 1, 11, 2], "texture": "#3"} + } + }, + { + "from": [11, 10, 9], + "to": [12, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [6, 2, 5, 7], "texture": "#3"}, + "east": {"uv": [8, 2, 6, 7], "texture": "#3"}, + "south": {"uv": [9, 2, 8, 7], "texture": "#3"}, + "west": {"uv": [5, 2, 3, 7], "texture": "#3"}, + "up": {"uv": [5, 2, 6, 0], "texture": "#3"}, + "down": {"uv": [6, 0, 7, 2], "texture": "#3"} + } + }, + { + "from": [12, 10, 6], + "to": [13, 15, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [6, 2, 5, 7], "texture": "#3"}, + "east": {"uv": [8, 2, 6, 7], "texture": "#3"}, + "south": {"uv": [9, 2, 8, 7], "texture": "#3"}, + "west": {"uv": [5, 2, 3, 7], "texture": "#3"}, + "up": {"uv": [5, 2, 6, 0], "texture": "#3"}, + "down": {"uv": [6, 0, 7, 2], "texture": "#3"} + } + }, + { + "from": [12, 10, 8], + "to": [13, 15, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 2]}, + "faces": { + "north": {"uv": [6, 2, 5, 7], "texture": "#3"}, + "east": {"uv": [8, 2, 6, 7], "texture": "#3"}, + "south": {"uv": [9, 2, 8, 7], "texture": "#3"}, + "west": {"uv": [5, 2, 3, 7], "texture": "#3"}, + "up": {"uv": [5, 2, 6, 0], "texture": "#3"}, + "down": {"uv": [6, 0, 7, 2], "texture": "#3"} + } + }, + { + "from": [11, 10, 5], + "to": [12, 15, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [6, 2, 5, 7], "texture": "#3"}, + "east": {"uv": [8, 2, 6, 7], "texture": "#3"}, + "south": {"uv": [9, 2, 8, 7], "texture": "#3"}, + "west": {"uv": [5, 2, 3, 7], "texture": "#3"}, + "up": {"uv": [5, 2, 6, 0], "texture": "#3"}, + "down": {"uv": [6, 0, 7, 2], "texture": "#3"} + } + }, + { + "from": [5, 10, 11], + "to": [7, 15, 12], + "faces": { + "north": {"uv": [9, 2, 11, 7], "texture": "#3"}, + "east": {"uv": [8, 2, 9, 7], "texture": "#3"}, + "south": {"uv": [12, 2, 14, 7], "texture": "#3"}, + "west": {"uv": [11, 2, 12, 7], "texture": "#3"}, + "up": {"uv": [11, 2, 9, 1], "texture": "#3"}, + "down": {"uv": [13, 1, 11, 2], "texture": "#3"} + } + }, + { + "from": [7, 6, 5], + "to": [9, 7, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [3, 10, 1, 11], "texture": "#3"}, + "east": {"uv": [4, 10, 3, 11], "texture": "#3"}, + "south": {"uv": [6, 10, 4, 11], "texture": "#3"}, + "west": {"uv": [1, 10, 0, 11], "texture": "#3"}, + "up": {"uv": [1, 10, 3, 9], "texture": "#3"}, + "down": {"uv": [3, 9, 5, 10], "texture": "#3"} + } + }, + { + "from": [5, 6, 7], + "to": [6, 7, 9], + "faces": { + "north": {"uv": [12, 10, 13, 11], "texture": "#3"}, + "east": {"uv": [10, 10, 12, 11], "texture": "#3"}, + "south": {"uv": [15, 10, 16, 11], "texture": "#3"}, + "west": {"uv": [13, 10, 15, 11], "texture": "#3"}, + "up": {"uv": [13, 10, 12, 8], "texture": "#3"}, + "down": {"uv": [14, 8, 13, 10], "texture": "#3"} + } + }, + { + "from": [10, 6, 7], + "to": [11, 7, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [13, 10, 12, 11], "texture": "#3"}, + "east": {"uv": [15, 10, 13, 11], "texture": "#3"}, + "south": {"uv": [16, 10, 15, 11], "texture": "#3"}, + "west": {"uv": [12, 10, 10, 11], "texture": "#3"}, + "up": {"uv": [12, 10, 13, 8], "texture": "#3"}, + "down": {"uv": [13, 8, 14, 10], "texture": "#3"} + } + }, + { + "from": [7, 6, 10], + "to": [9, 7, 11], + "faces": { + "north": {"uv": [1, 10, 3, 11], "texture": "#3"}, + "east": {"uv": [0, 10, 1, 11], "texture": "#3"}, + "south": {"uv": [4, 10, 6, 11], "texture": "#3"}, + "west": {"uv": [3, 10, 4, 11], "texture": "#3"}, + "up": {"uv": [3, 10, 1, 9], "texture": "#3"}, + "down": {"uv": [5, 9, 3, 10], "texture": "#3"} + } + }, + { + "from": [6, 6, 6], + "to": [10, 7, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [8, 10, 4, 11], "texture": "#3"}, + "east": {"uv": [12, 10, 8, 11], "texture": "#3"}, + "south": {"uv": [16, 10, 12, 11], "texture": "#3"}, + "west": {"uv": [4, 10, 0, 11], "texture": "#3"}, + "up": {"uv": [4, 10, 8, 6], "texture": "#3"}, + "down": {"uv": [8, 6, 12, 10], "texture": "#3"} + } + }, + { + "from": [5, 13, 5], + "to": [7, 14, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [10, 11, 8, 12], "texture": "#2"}, + "east": {"uv": [12, 11, 10, 12], "texture": "#2"}, + "south": {"uv": [14, 11, 12, 12], "texture": "#2"}, + "west": {"uv": [8, 11, 6, 12], "texture": "#2"}, + "up": {"uv": [8, 11, 10, 9], "texture": "#2"}, + "down": {"uv": [10, 9, 12, 11], "texture": "#2"} + } + }, + { + "from": [4, 13, 7], + "to": [7, 14, 9], + "faces": { + "north": {"uv": [8, 9, 11, 10], "texture": "#2"}, + "east": {"uv": [6, 9, 8, 10], "texture": "#2"}, + "south": {"uv": [13, 9, 16, 10], "texture": "#2"}, + "west": {"uv": [11, 9, 13, 10], "texture": "#2"}, + "up": {"uv": [11, 9, 8, 7], "texture": "#2"}, + "down": {"uv": [14, 7, 11, 9], "texture": "#2"} + } + }, + { + "from": [5, 13, 9], + "to": [7, 14, 11], + "faces": { + "north": {"uv": [8, 7, 10, 8], "texture": "#2"}, + "east": {"uv": [6, 7, 8, 8], "texture": "#2"}, + "south": {"uv": [12, 7, 14, 8], "texture": "#2"}, + "west": {"uv": [10, 7, 12, 8], "texture": "#2"}, + "up": {"uv": [10, 7, 8, 5], "texture": "#2"}, + "down": {"uv": [12, 5, 10, 7], "texture": "#2"} + } + }, + { + "from": [7, 13, 9], + "to": [9, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [8, 7, 6, 8], "texture": "#2"}, + "east": {"uv": [11, 7, 8, 8], "texture": "#2"}, + "south": {"uv": [13, 7, 11, 8], "texture": "#2"}, + "west": {"uv": [6, 7, 3, 8], "texture": "#2"}, + "up": {"uv": [6, 7, 8, 4], "texture": "#2"}, + "down": {"uv": [8, 4, 10, 7], "texture": "#2"} + } + }, + { + "from": [7, 13, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [8, 9, 6, 10], "texture": "#2"}, + "east": {"uv": [10, 9, 8, 10], "texture": "#2"}, + "south": {"uv": [12, 9, 10, 10], "texture": "#2"}, + "west": {"uv": [6, 9, 4, 10], "texture": "#2"}, + "up": {"uv": [6, 9, 8, 7], "texture": "#2"}, + "down": {"uv": [8, 7, 10, 9], "texture": "#2"} + } + }, + { + "from": [7, 13, 4], + "to": [9, 14, 7], + "faces": { + "north": {"uv": [6, 12, 8, 13], "texture": "#2"}, + "east": {"uv": [3, 12, 6, 13], "texture": "#2"}, + "south": {"uv": [11, 12, 13, 13], "texture": "#2"}, + "west": {"uv": [8, 12, 11, 13], "texture": "#2"}, + "up": {"uv": [8, 12, 6, 9], "texture": "#2"}, + "down": {"uv": [10, 9, 8, 12], "texture": "#2"} + } + }, + { + "from": [9, 13, 9], + "to": [11, 14, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [6, 7, 4, 8], "texture": "#2"}, + "east": {"uv": [8, 7, 6, 8], "texture": "#2"}, + "south": {"uv": [10, 7, 8, 8], "texture": "#2"}, + "west": {"uv": [4, 7, 2, 8], "texture": "#2"}, + "up": {"uv": [4, 7, 6, 5], "texture": "#2"}, + "down": {"uv": [6, 5, 8, 7], "texture": "#2"} + } + }, + { + "from": [9, 13, 7], + "to": [12, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [6, 9, 3, 10], "texture": "#2"}, + "east": {"uv": [8, 9, 6, 10], "texture": "#2"}, + "south": {"uv": [11, 9, 8, 10], "texture": "#2"}, + "west": {"uv": [3, 9, 1, 10], "texture": "#2"}, + "up": {"uv": [3, 9, 6, 7], "texture": "#2"}, + "down": {"uv": [6, 7, 9, 9], "texture": "#2"} + } + }, + { + "from": [9, 13, 5], + "to": [11, 14, 7], + "faces": { + "north": {"uv": [4, 11, 6, 12], "texture": "#2"}, + "east": {"uv": [2, 11, 4, 12], "texture": "#2"}, + "south": {"uv": [8, 11, 10, 12], "texture": "#2"}, + "west": {"uv": [6, 11, 8, 12], "texture": "#2"}, + "up": {"uv": [6, 11, 4, 9], "texture": "#2"}, + "down": {"uv": [8, 9, 6, 11], "texture": "#2"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [0, 0, 0], + "color": 0, + "children": [ + 0, + { + "name": "midtop", + "origin": [16, 0, 0], + "color": 0, + "children": [1, 2, 3, 4, 5, 6, 7, 8] + }, + { + "name": "base", + "origin": [16, 0, 0], + "color": 0, + "children": [9, 10, 11, 12, 13] + }, + { + "name": "toptop", + "origin": [16, 0, 0], + "color": 0, + "children": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27] + }, + { + "name": "bottop", + "origin": [16, 0, 0], + "color": 0, + "children": [28, 29, 30, 31, 32] + } + ] + }, + { + "name": "fluid", + "origin": [0, 0, 0], + "color": 0, + "children": [33, 34, 35, 36, 37, 38, 39, 40, 41] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/iesnium_anvil.json b/src/main/resources/assets/occultism/models/block/iesnium_anvil.json new file mode 100644 index 000000000..04de8c106 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/iesnium_anvil.json @@ -0,0 +1,62 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "body": "occultism:block/iesnium_anvil_base", + "top": "occultism:block/iesnium_anvil_top", + "particle": "occultism:block/iesnium_block" + }, + "elements": [ + { + "name": "Anvil base", + "from": [2, 0, 2], + "to": [14, 4, 14], + "faces": { + "north": {"uv": [2, 12, 14, 16], "texture": "#body"}, + "east": {"uv": [7, 2, 3, 14], "rotation": 270, "texture": "#body"}, + "south": {"uv": [2, 12, 14, 16], "texture": "#body"}, + "west": {"uv": [3, 2, 7, 14], "rotation": 90, "texture": "#body"}, + "up": {"uv": [2, 2, 14, 14], "rotation": 180, "texture": "#body"}, + "down": {"uv": [2, 2, 14, 14], "rotation": 180, "texture": "#body", "cullface": "down"} + } + }, + { + "name": "Lower narrow portion", + "from": [4, 4, 3], + "to": [12, 5, 13], + "faces": { + "north": {"uv": [4, 13, 12, 14], "texture": "#body"}, + "east": {"uv": [5, 3, 4, 13], "rotation": 270, "texture": "#body"}, + "south": {"uv": [4, 13, 12, 14], "texture": "#body"}, + "west": {"uv": [11, 3, 12, 13], "rotation": 90, "texture": "#body"}, + "up": {"uv": [4, 3, 12, 13], "rotation": 180, "texture": "#body"}, + "down": {"uv": [4, 3, 12, 13], "rotation": 180, "texture": "#body"} + } + }, + { + "name": "Wider section beneath top portion", + "from": [6, 5, 4], + "to": [10, 10, 12], + "faces": { + "north": {"uv": [8, 9, 12, 14], "texture": "#body"}, + "east": {"uv": [12, 2, 7, 10], "rotation": 270, "texture": "#body"}, + "south": {"uv": [8, 9, 12, 14], "texture": "#body"}, + "west": {"uv": [7, 6, 12, 14], "rotation": 90, "texture": "#body"}, + "up": {"uv": [10, 12, 6, 4], "rotation": 180, "texture": "#body"}, + "down": {"uv": [10, 12, 6, 4], "rotation": 180, "texture": "#body"} + } + }, + { + "name": "Anvil top", + "from": [3, 10, 0], + "to": [13, 16, 16], + "faces": { + "north": {"uv": [3, 10, 13, 16], "texture": "#body"}, + "east": {"uv": [14, 0, 8, 16], "rotation": 270, "texture": "#body"}, + "south": {"uv": [3, 10, 13, 16], "texture": "#body"}, + "west": {"uv": [8, 0, 14, 16], "rotation": 90, "texture": "#body"}, + "up": {"uv": [3, 0, 13, 16], "rotation": 180, "texture": "#top"}, + "down": {"uv": [3, 0, 13, 16], "rotation": 180, "texture": "#body"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/iesnium_sacrificial_bowl.json b/src/main/resources/assets/occultism/models/block/iesnium_sacrificial_bowl.json new file mode 100644 index 000000000..0d79c89e3 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/iesnium_sacrificial_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "occultism:block/sacrificial_bowl", + "textures": { + "1": "occultism:block/otherstone_platinum" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/otherflower.json b/src/main/resources/assets/occultism/models/block/otherflower.json new file mode 100644 index 000000000..8c415524b --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/otherflower.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "render_type": "cutout_mipped", + "textures": { + "cross": "occultism:block/otherflower" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/otherflower_natural.json b/src/main/resources/assets/occultism/models/block/otherflower_natural.json new file mode 100644 index 000000000..e66455060 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/otherflower_natural.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cross", + "render_type": "cutout_mipped", + "textures": { + "cross": "block/poppy" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/otherglass.json b/src/main/resources/assets/occultism/models/block/otherglass.json new file mode 100644 index 000000000..88dad78e5 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/otherglass.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "block/barrier" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/otherglass_natural.json b/src/main/resources/assets/occultism/models/block/otherglass_natural.json new file mode 100644 index 000000000..098e864a7 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/otherglass_natural.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "block/end_stone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/otherstone_pedestal_silver.json b/src/main/resources/assets/occultism/models/block/otherstone_pedestal_silver.json new file mode 100644 index 000000000..61f3d4730 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/otherstone_pedestal_silver.json @@ -0,0 +1,6 @@ +{ + "parent": "occultism:block/storage_controller", + "textures": { + "1": "occultism:block/otherstone_silver" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/potted_otherflower.json b/src/main/resources/assets/occultism/models/block/potted_otherflower.json new file mode 100644 index 000000000..860da6fe2 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/potted_otherflower.json @@ -0,0 +1,7 @@ +{ + "parent": "block/flower_pot_cross", + "render_type": "cutout_mipped", + "textures": { + "plant": "occultism:block/otherflower" + } +} diff --git a/src/main/resources/assets/occultism/models/block/silver_sacrificial_bowl.json b/src/main/resources/assets/occultism/models/block/silver_sacrificial_bowl.json new file mode 100644 index 000000000..4daf5cfb2 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/silver_sacrificial_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "occultism:block/sacrificial_bowl", + "textures": { + "1": "occultism:block/otherstone_silver" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/storage_controller_base.json b/src/main/resources/assets/occultism/models/block/storage_controller_base.json index f6c5cff84..460e255b7 100644 --- a/src/main/resources/assets/occultism/models/block/storage_controller_base.json +++ b/src/main/resources/assets/occultism/models/block/storage_controller_base.json @@ -1,3 +1,6 @@ { - "parent": "occultism:block/storage_controller" + "parent": "occultism:block/storage_controller", + "textures": { + "1": "occultism:block/otherstone_copper" + } } \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/storage_controller_stabilized.json b/src/main/resources/assets/occultism/models/block/storage_controller_stabilized.json new file mode 100644 index 000000000..4610375b3 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/storage_controller_stabilized.json @@ -0,0 +1,6 @@ +{ + "parent": "occultism:block/storage_controller", + "textures": { + "1": "occultism:block/otherstone_platinum" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/storage_stabilizer_tier0.json b/src/main/resources/assets/occultism/models/block/storage_stabilizer_tier0.json new file mode 100644 index 000000000..842212323 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/storage_stabilizer_tier0.json @@ -0,0 +1,6 @@ +{ + "parent": "occultism:block/storage_stabilizer_tier1", + "textures": { + "1": "occultism:block/otherstone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/block/tallow_block.json b/src/main/resources/assets/occultism/models/block/tallow_block.json new file mode 100644 index 000000000..f5a0d32f6 --- /dev/null +++ b/src/main/resources/assets/occultism/models/block/tallow_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "occultism:block/tallow_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/item/iesnium_anvil.json b/src/main/resources/assets/occultism/models/item/iesnium_anvil.json new file mode 100644 index 000000000..7928e2beb --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/iesnium_anvil.json @@ -0,0 +1,8 @@ +{ + "parent": "block/anvil", + "textures": { + "particle": "occultism:block/iesnium_block", + "body": "occultism:block/iesnium_anvil_base", + "top": "occultism:block/iesnium_anvil_top" + } +} diff --git a/src/main/resources/assets/occultism/models/item/otherflower.json b/src/main/resources/assets/occultism/models/item/otherflower.json new file mode 100644 index 000000000..c0b6b7dc0 --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/otherflower.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "occultism:block/otherflower" + } +} diff --git a/src/main/resources/assets/occultism/models/item/otherflower_natural.json b/src/main/resources/assets/occultism/models/item/otherflower_natural.json new file mode 100644 index 000000000..0f79b6b2b --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/otherflower_natural.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "block/poppy" + } +} diff --git a/src/main/resources/assets/occultism/models/item/otherglass.json b/src/main/resources/assets/occultism/models/item/otherglass.json new file mode 100644 index 000000000..098e864a7 --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/otherglass.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "block/end_stone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/item/trinity_gem.json b/src/main/resources/assets/occultism/models/item/trinity_gem.json new file mode 100644 index 000000000..651403b82 --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/trinity_gem.json @@ -0,0 +1,22 @@ +{ + "parent": "occultism:item/trinity_gem_filled", + "textures": { + "layer0": "occultism:item/trinity_gem_empty" + }, + "overrides": [ + { + "__comment": "has_entity >= 0.0", + "predicate": { + "occultism:has_entity": 0.0 + }, + "model": "occultism:item/trinity_gem_empty" + }, + { + "__comment": "has_entity >= 1.0", + "predicate": { + "occultism:has_entity": 1.0 + }, + "model": "occultism:item/trinity_gem_filled" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/item/trinity_gem_empty.json b/src/main/resources/assets/occultism/models/item/trinity_gem_empty.json new file mode 100644 index 000000000..8027fba5e --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/trinity_gem_empty.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "occultism:item/trinity_gem_empty" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/models/item/trinity_gem_filled.json b/src/main/resources/assets/occultism/models/item/trinity_gem_filled.json new file mode 100644 index 000000000..1b129a6ac --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/trinity_gem_filled.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "occultism:item/trinity_gem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/textures/block/iesnium_anvil_base.png b/src/main/resources/assets/occultism/textures/block/iesnium_anvil_base.png new file mode 100644 index 000000000..facdbde5b Binary files /dev/null and b/src/main/resources/assets/occultism/textures/block/iesnium_anvil_base.png differ diff --git a/src/main/resources/assets/occultism/textures/block/iesnium_anvil_top.png b/src/main/resources/assets/occultism/textures/block/iesnium_anvil_top.png new file mode 100644 index 000000000..e40c90cdc Binary files /dev/null and b/src/main/resources/assets/occultism/textures/block/iesnium_anvil_top.png differ diff --git a/src/main/resources/assets/occultism/textures/block/otherflower.png b/src/main/resources/assets/occultism/textures/block/otherflower.png new file mode 100644 index 000000000..022bbe26f Binary files /dev/null and b/src/main/resources/assets/occultism/textures/block/otherflower.png differ diff --git a/src/main/resources/assets/occultism/textures/block/otherglass.png b/src/main/resources/assets/occultism/textures/block/otherglass.png new file mode 100644 index 000000000..d39327f37 Binary files /dev/null and b/src/main/resources/assets/occultism/textures/block/otherglass.png differ diff --git a/src/main/resources/assets/occultism/textures/block/otherstone_eldritch.png b/src/main/resources/assets/occultism/textures/block/otherstone_eldritch.png new file mode 100644 index 000000000..52cd133b2 Binary files /dev/null and b/src/main/resources/assets/occultism/textures/block/otherstone_eldritch.png differ diff --git a/src/main/resources/assets/occultism/textures/block/tallow_block.png b/src/main/resources/assets/occultism/textures/block/tallow_block.png new file mode 100644 index 000000000..c0f6bff60 Binary files /dev/null and b/src/main/resources/assets/occultism/textures/block/tallow_block.png differ diff --git a/src/main/resources/assets/occultism/textures/entity/iesnium_golem.png b/src/main/resources/assets/occultism/textures/entity/iesnium_golem.png new file mode 100644 index 000000000..65910b184 Binary files /dev/null and b/src/main/resources/assets/occultism/textures/entity/iesnium_golem.png differ diff --git a/src/main/resources/assets/occultism/textures/gui/book/iesnium_golem.png b/src/main/resources/assets/occultism/textures/gui/book/iesnium_golem.png new file mode 100644 index 000000000..426ab428b Binary files /dev/null and b/src/main/resources/assets/occultism/textures/gui/book/iesnium_golem.png differ diff --git a/src/main/resources/assets/occultism/textures/item/chalk_rainbow.png b/src/main/resources/assets/occultism/textures/item/chalk_rainbow.png new file mode 100644 index 000000000..e6c2a45b0 Binary files /dev/null and b/src/main/resources/assets/occultism/textures/item/chalk_rainbow.png differ diff --git a/src/main/resources/assets/occultism/textures/item/chalk_void.png b/src/main/resources/assets/occultism/textures/item/chalk_void.png new file mode 100644 index 000000000..a04924890 Binary files /dev/null and b/src/main/resources/assets/occultism/textures/item/chalk_void.png differ diff --git a/src/main/resources/assets/occultism/textures/item/trinity_gem.png b/src/main/resources/assets/occultism/textures/item/trinity_gem.png new file mode 100644 index 000000000..567d009a3 Binary files /dev/null and b/src/main/resources/assets/occultism/textures/item/trinity_gem.png differ diff --git a/src/main/resources/assets/occultism/textures/item/trinity_gem.png.mcmeta b/src/main/resources/assets/occultism/textures/item/trinity_gem.png.mcmeta new file mode 100644 index 000000000..67439c005 --- /dev/null +++ b/src/main/resources/assets/occultism/textures/item/trinity_gem.png.mcmeta @@ -0,0 +1,15 @@ +{ + "animation": { + "interpolate": true, + "frames": [ + { + "index": 0, + "time": 50 + }, + { + "index": 1, + "time": 50 + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/occultism/textures/item/trinity_gem_empty.png b/src/main/resources/assets/occultism/textures/item/trinity_gem_empty.png new file mode 100644 index 000000000..a0e86b7cc Binary files /dev/null and b/src/main/resources/assets/occultism/textures/item/trinity_gem_empty.png differ diff --git a/src/main/resources/data/minecraft/loot_table/blocks/reinforced_deepslate.json b/src/main/resources/data/minecraft/loot_table/blocks/reinforced_deepslate.json new file mode 100644 index 000000000..813e7b421 --- /dev/null +++ b/src/main/resources/data/minecraft/loot_table/blocks/reinforced_deepslate.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:reinforced_deepslate", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "occultism:infused_pickaxe", + "occultism:iesnium_pickaxe" + ] + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/occultism/advancement/chalks/rainbow.json b/src/main/resources/data/occultism/advancement/chalks/rainbow.json new file mode 100644 index 000000000..ab186756f --- /dev/null +++ b/src/main/resources/data/occultism/advancement/chalks/rainbow.json @@ -0,0 +1,28 @@ +{ + "display": { + "icon": { + "count": 1, + "id": "occultism:chalk_rainbow" + }, + "title": {"translate": "advancements.occultism.chalks.rainbow.title"}, + "description": {"color":"green","translate":"advancements.occultism.chalks.rainbow.description"} + }, + "parent": "occultism:chalks/magenta", + "criteria": { + "chalk_rainbow": { + "trigger": "minecraft:any_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "occultism:chalk_rainbow" + } + } + ] + } + } + }, + "requirements": [["chalk_rainbow"]], + "sends_telemetry_event": true +} diff --git a/src/main/resources/data/occultism/advancement/chalks/void.json b/src/main/resources/data/occultism/advancement/chalks/void.json new file mode 100644 index 000000000..a3818f554 --- /dev/null +++ b/src/main/resources/data/occultism/advancement/chalks/void.json @@ -0,0 +1,29 @@ +{ + "display": { + "icon": { + "count": 1, + "id": "occultism:chalk_void" + }, + "frame": "challenge", + "title": {"translate": "advancements.occultism.chalks.void.title"}, + "description": {"color":"green","translate":"advancements.occultism.chalks.void.description"} + }, + "parent": "occultism:chalks/rainbow", + "criteria": { + "chalk_void": { + "trigger": "minecraft:any_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "occultism:chalk_void" + } + } + ] + } + } + }, + "requirements": [["chalk_void"]], + "sends_telemetry_event": true +} diff --git a/src/main/resources/data/occultism/loot_table/blocks/otherglass_natural.json b/src/main/resources/data/occultism/loot_table/blocks/otherglass_natural.json new file mode 100644 index 000000000..bc8847ffc --- /dev/null +++ b/src/main/resources/data/occultism/loot_table/blocks/otherglass_natural.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "occultism:otherglass_natural", + "condition": "minecraft:block_state_property", + "properties": { + "uncovered": "true" + } + } + ], + "name": "occultism:otherglass_natural" + }, + { + "type": "minecraft:item", + "name": "occultism:crushed_end_stone" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "occultism:blocks/otherglass_natural" +} \ No newline at end of file