Skip to content

Commit 158f7a0

Browse files
authored
Merge pull request #2093
add geode ritual
2 parents ebd20d8 + 27e12f0 commit 158f7a0

File tree

9 files changed

+603
-0
lines changed

9 files changed

+603
-0
lines changed

src/generated/resources/assets/bloodmagic/lang/en_us.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,17 @@
536536
"ritual.bloodmagic.fullStomachRitual.chest.info": "(Chest) The location of the inventory that the ritual will grab food from to feed players in range.",
537537
"ritual.bloodmagic.fullStomachRitual.fillRange.info": "(Feeding) The range that the ritual will look at to feed players.",
538538
"ritual.bloodmagic.fullStomachRitual.info": "Takes food from the linked chest and fills the player's saturation with it.",
539+
"ritual.bloodmagic.geode": "Ritual of the Geode's Bounty",
540+
"ritual.bloodmagic.geode.acceleration.info": "(Acceleration) The range in which growth is sped up",
541+
"ritual.bloodmagic.geode.chest.info": "(Chest) The location of the inventory that the ritual will place the picked up items into if given Raw Will.",
542+
"ritual.bloodmagic.geode.corrosive.info": "(Corrosive) Accelerates nearby budding blocks",
543+
"ritual.bloodmagic.geode.default.info": "(Raw) Causes items to be placed into an inventory instead of dropped into the world",
544+
"ritual.bloodmagic.geode.destructive.info": "(Destructive) Blocks are broken down forcefully: all blocks broken are affected by Fortune III.",
545+
"ritual.bloodmagic.geode.harm.info": "(Harm) The range in which mobs are hurt to speed up growth",
546+
"ritual.bloodmagic.geode.harvest.info": "(Harvest) The range in which fully grown buds are harvested",
547+
"ritual.bloodmagic.geode.info": "Harvests fully grown buds from Geodes",
548+
"ritual.bloodmagic.geode.steadfast.info": "(Steadfast) Causes all blocks that are broken to be picked up with Silk Touch. Overrides Fortune where applicable.",
549+
"ritual.bloodmagic.geode.vengeful.info": "(Vengeful) Entities in this area have their life drained to accelerate nearby budding blocks.",
539550
"ritual.bloodmagic.greenGroveRitual": "Ritual of the Green Grove",
540551
"ritual.bloodmagic.greenGroveRitual.corrosive.info": "(Corrosive) Entities within range are attacked by nearby plants, leeching away their life to feed their own growth.",
541552
"ritual.bloodmagic.greenGroveRitual.default.info": "(Raw) Increases the speed of all ritual operations based on the total amount of Raw Will in the Aura.",
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
{
2+
"values": [
3+
"minecraft:budding_amethyst",
4+
{
5+
"id": "#forge:budding",
6+
"required": false
7+
},
8+
{
9+
"id": "geode_plus:budding_lapis",
10+
"required": false
11+
},
12+
{
13+
"id": "geode_plus:budding_deepslate_lapis",
14+
"required": false
15+
},
16+
{
17+
"id": "geode_plus:budding_sculk_lapis",
18+
"required": false
19+
},
20+
{
21+
"id": "geode_plus:budding_redstone",
22+
"required": false
23+
},
24+
{
25+
"id": "geode_plus:budding_deepslate_redstone",
26+
"required": false
27+
},
28+
{
29+
"id": "geode_plus:budding_sculk_redstone",
30+
"required": false
31+
},
32+
{
33+
"id": "geode_plus:budding_emerald",
34+
"required": false
35+
},
36+
{
37+
"id": "geode_plus:budding_deepslate_emerald",
38+
"required": false
39+
},
40+
{
41+
"id": "geode_plus:budding_sculk_emerald",
42+
"required": false
43+
},
44+
{
45+
"id": "geode_plus:budding_diamond",
46+
"required": false
47+
},
48+
{
49+
"id": "geode_plus:budding_deepslate_diamond",
50+
"required": false
51+
},
52+
{
53+
"id": "geode_plus:budding_sculk_diamond",
54+
"required": false
55+
},
56+
{
57+
"id": "geode_plus:budding_nether_quartz",
58+
"required": false
59+
},
60+
{
61+
"id": "geode_plus:budding_basalt_quartz",
62+
"required": false
63+
},
64+
{
65+
"id": "geode_plus:budding_blackstone_quartz",
66+
"required": false
67+
},
68+
{
69+
"id": "geode_plus:budding_nether_glowstone",
70+
"required": false
71+
},
72+
{
73+
"id": "geode_plus:budding_basalt_glowstone",
74+
"required": false
75+
},
76+
{
77+
"id": "geode_plus:budding_blackstone_glowstone",
78+
"required": false
79+
},
80+
{
81+
"id": "geode_plus:budding_nether_gold_nugget",
82+
"required": false
83+
},
84+
{
85+
"id": "geode_plus:budding_basalt_gold_nugget",
86+
"required": false
87+
},
88+
{
89+
"id": "geode_plus:budding_blackstone_gold_nugget",
90+
"required": false
91+
},
92+
{
93+
"id": "geode_plus:budding_nether_ancient_debris",
94+
"required": false
95+
},
96+
{
97+
"id": "geode_plus:budding_basalt_ancient_debris",
98+
"required": false
99+
},
100+
{
101+
"id": "geode_plus:budding_blackstone_ancient_debris",
102+
"required": false
103+
},
104+
{
105+
"id": "geode_plus:budding_pink_topaz",
106+
"required": false
107+
},
108+
{
109+
"id": "geode_plus:budding_celestite",
110+
"required": false
111+
},
112+
{
113+
"id": "geode_plus:budding_prismarine",
114+
"required": false
115+
},
116+
{
117+
"id": "geode_plus:budding_wrappist",
118+
"required": false
119+
},
120+
{
121+
"id": "geode_plus:budding_echo",
122+
"required": false
123+
}
124+
]
125+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"values": [
3+
"minecraft:amethyst_cluster",
4+
{
5+
"id": "forge:clusters",
6+
"required": false
7+
},
8+
{
9+
"id": "geode_plus:nether_quartz_crystal",
10+
"required": false
11+
},
12+
{
13+
"id": "geode_plus:diamond_crystal",
14+
"required": false
15+
},
16+
{
17+
"id": "geode_plus:pink_topaz_crystal",
18+
"required": false
19+
},
20+
{
21+
"id": "geode_plus:echo_crystal",
22+
"required": false
23+
},
24+
{
25+
"id": "geode_plus:redstone_crystal",
26+
"required": false
27+
},
28+
{
29+
"id": "geode_plus:lapis_cluster",
30+
"required": false
31+
},
32+
{
33+
"id": "geode_plus:emerald_cluster",
34+
"required": false
35+
},
36+
{
37+
"id": "geode_plus:nether_glowstone_cluster",
38+
"required": false
39+
},
40+
{
41+
"id": "geode_plus:nether_gold_nugget_cluster",
42+
"required": false
43+
},
44+
{
45+
"id": "geode_plus:nether_ancient_debris_cluster",
46+
"required": false
47+
},
48+
{
49+
"id": "geode_plus:celestite_cluster",
50+
"required": false
51+
},
52+
{
53+
"id": "geode_plus:prismarine_cluster",
54+
"required": false
55+
},
56+
{
57+
"id": "geode_plus:wrappist_cluster",
58+
"required": false
59+
}
60+
]
61+
}

src/main/java/wayoftime/bloodmagic/ConfigManager.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,22 @@ public static class CommonConfig
4343
public final ForgeConfigSpec.IntValue defaultUpgradePoints;
4444
public final ForgeConfigSpec.IntValue evolvedUpgradePoints;
4545

46+
public final ConfigValue<Integer> activation_cost;
47+
public final ConfigValue<Integer> refresh_cost;
48+
public final ConfigValue<Double> min_raw_will;
49+
public final ConfigValue<Double> min_corrosive_will;
50+
public final ConfigValue<Double> min_destructive_will;
51+
public final ConfigValue<Double> min_steadfast_will;
52+
public final ConfigValue<Double> min_vengeful_will;
53+
public final ConfigValue<Double> store_cost;
54+
public final ConfigValue<Double> harm_cost;
55+
public final ConfigValue<Double> fortune_cost;
56+
public final ConfigValue<Double> silk_touch_cost;
57+
public final ConfigValue<Double> growth_cost;
58+
public final ConfigValue<Integer> hurt_damage;
59+
public final ConfigValue<Integer> max_budding_blocks;
60+
public final ConfigValue<Integer> max_mobs_harmed;
61+
4662
CommonConfig(ForgeConfigSpec.Builder builder)
4763
{
4864
builder.comment("Amount of LP the Sacrificial Dagger should provide for each damage dealt. Default value 100");
@@ -65,6 +81,25 @@ public static class CommonConfig
6581

6682
builder.comment("State that the dungeon spawning ritual can only be activated when using a Creative Activation Crystal.", "Used on servers for if you do not trust your players to not destroy other people's bases.");
6783
makeDungeonRitualCreativeOnly = builder.define("makeDungeonRitualCreativeOnly", false);
84+
85+
builder.pop();
86+
87+
builder.push("Geode Ritual");
88+
activation_cost = builder.define("activation_cost", 50_000);
89+
refresh_cost = builder.define("refresh_cost", 50);
90+
min_raw_will = builder.define("min_raw_will", 50D);
91+
min_corrosive_will = builder.define("min_corrosive_will", 50D);
92+
min_destructive_will = builder.define("min_destructive_will", 50D);
93+
min_steadfast_will = builder.define("min_steadfast_will", 50D);
94+
min_vengeful_will = builder.define("min_vengeful_will", 50D);
95+
store_cost = builder.define("store_cost", 1D);
96+
harm_cost = builder.define("harm_cost", 0.125D);
97+
fortune_cost = builder.define("fortune_cost", 1D);
98+
silk_touch_cost = builder.define("silk_touch_cost", 1D);
99+
growth_cost = builder.define("growth_cost", 0.5D);
100+
hurt_damage = builder.define("hurt_damage", 2);
101+
max_budding_blocks = builder.defineInRange("max_budding_blocks", 7, 1, 15);
102+
max_mobs_harmed = builder.define("max_harmed", 8);
68103
}
69104
}
70105

src/main/java/wayoftime/bloodmagic/common/data/GeneratorBlockTags.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package wayoftime.bloodmagic.common.data;
22

33
import java.nio.file.Path;
4+
import java.util.List;
45
import java.util.concurrent.CompletableFuture;
56

67
import net.minecraft.core.HolderLookup;
@@ -35,6 +36,13 @@ public void addTags(HolderLookup.Provider pProvider)
3536
this.tag(BloodMagicTags.Blocks.MUSHROOM_STEM).add(Blocks.MUSHROOM_STEM).add(Blocks.CRIMSON_STEM).add(Blocks.WARPED_STEM);
3637
this.tag(BloodMagicTags.Blocks.MUSHROOM_HYPHAE).add(Blocks.BROWN_MUSHROOM_BLOCK).add(Blocks.RED_MUSHROOM_BLOCK).add(Blocks.CRIMSON_HYPHAE).add(Blocks.WARPED_HYPHAE).add(Blocks.STRIPPED_CRIMSON_HYPHAE).add(Blocks.STRIPPED_WARPED_HYPHAE).add(Blocks.NETHER_WART_BLOCK).add(Blocks.WARPED_WART_BLOCK).add(Blocks.SHROOMLIGHT);
3738

39+
addGeode(this.tag(BloodMagicTags.Blocks.GEODE_ACCELERATABLE)
40+
.add(Blocks.BUDDING_AMETHYST)
41+
.addOptionalTag(new ResourceLocation("forge:budding")),
42+
this.tag(BloodMagicTags.Blocks.GEODE_HARVESTABLE)
43+
.add(Blocks.AMETHYST_CLUSTER)
44+
.addOptional(new ResourceLocation("forge:clusters"))
45+
);
3846
tag(BloodMagicTags.TELEPOSE_BLOCK_BLACKLIST)
3947
.add(Blocks.BEDROCK, Blocks.END_PORTAL_FRAME)
4048
.add(Blocks.PISTON_HEAD, Blocks.MOVING_PISTON)
@@ -92,6 +100,46 @@ public void addTags(HolderLookup.Provider pProvider)
92100
tag(BloodMagicTags.Blocks.MUNDANE_BLOCK).addTag(Tags.Blocks.COBBLESTONE).addTag(Tags.Blocks.STONE).addTag(BlockTags.SAND).addTag(BlockTags.DIRT).add(Blocks.GRAVEL).add(Blocks.NETHERRACK);
93101
}
94102

103+
private static void addGeode(TagAppender<Block> buddingAppender, TagAppender<Block> clusterAppender) {
104+
List<String> overworld_prefix = List.of("budding", "budding_deepslate", "budding_sculk");
105+
List<String> overworld_mat = List.of("lapis", "redstone", "emerald", "diamond");
106+
List<String> nether_prefix = List.of("budding_nether", "budding_basalt", "budding_blackstone");
107+
List<String> nether_mat = List.of("quartz", "glowstone", "gold_nugget", "ancient_debris");
108+
109+
List<String> crystal = List.of("nether_quartz", "diamond", "pink_topaz", "echo", "redstone");
110+
List<String> cluster = List.of("lapis", "emerald", "nether_glowstone", "nether_gold_nugget", "nether_ancient_debris", "celestite", "prismarine", "wrappist");
111+
112+
List<String> bud_only = List.of("pink_topaz", "celestite", "prismarine", "wrappist", "echo");
113+
114+
for (String mat : overworld_mat) {
115+
for (String prefix : overworld_prefix) {
116+
buddingAppender.addOptional(geode(prefix + "_" + mat));
117+
}
118+
}
119+
120+
for (String mat : nether_mat) {
121+
for (String prefix : nether_prefix) {
122+
buddingAppender.addOptional(geode(prefix + "_" + mat));
123+
}
124+
}
125+
126+
for (String bud : bud_only) {
127+
buddingAppender.addOptional(geode("budding_" + bud));
128+
}
129+
130+
for (String name : crystal) {
131+
clusterAppender.addOptional(geode(name + "_crystal"));
132+
}
133+
134+
for (String name : cluster) {
135+
clusterAppender.addOptional(geode(name + "_cluster"));
136+
}
137+
}
138+
139+
private static ResourceLocation geode(String path) {
140+
return new ResourceLocation("geode_plus", path);
141+
}
142+
95143
/**
96144
* Resolves a Path for the location to save the given tag.
97145
*/

src/main/java/wayoftime/bloodmagic/common/data/GeneratorLanguage.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ protected void addTranslations()
249249
add("ritual.bloodmagic.yawningVoidRitual", "Yawning of the Void");
250250
add("ritual.bloodmagic.groundingRitual", "The Sinner's Burden");
251251
add("ritual.bloodmagic.craftingRitual", "Rhythm of the Beating Anvil");
252+
add("ritual.bloodmagic.geode", "Ritual of the Geode's Bounty");
252253

253254
add("ritual.bloodmagic.cobblestoneRitual", "Le Vulcanos Frigius");
254255
add("ritual.bloodmagic.placerRitual", "Domain of The Filler");
@@ -260,6 +261,18 @@ protected void addTranslations()
260261
add("ritual.bloodmagic.sphereRitual", "Dawn of the New Moon");
261262
add("ritual.bloodmagic.meteorRitual", "Mark of the Falling Tower");
262263

264+
add("ritual.bloodmagic.geode.info", "Harvests fully grown buds from Geodes");
265+
add("ritual.bloodmagic.geode.corrosive.info", "(Corrosive) Accelerates nearby budding blocks");
266+
add("ritual.bloodmagic.geode.default.info", "(Raw) Causes items to be placed into an inventory instead of dropped into the world");
267+
add("ritual.bloodmagic.geode.destructive.info", "(Destructive) Blocks are broken down forcefully: all blocks broken are affected by Fortune III.");
268+
add("ritual.bloodmagic.geode.steadfast.info", "(Steadfast) Causes all blocks that are broken to be picked up with Silk Touch. Overrides Fortune where applicable.");
269+
add("ritual.bloodmagic.geode.vengeful.info", "(Vengeful) Entities in this area have their life drained to accelerate nearby budding blocks.");
270+
271+
add("ritual.bloodmagic.geode.chest.info", "(Chest) The location of the inventory that the ritual will place the picked up items into if given Raw Will.");
272+
add("ritual.bloodmagic.geode.harvest.info", "(Harvest) The range in which fully grown buds are harvested");
273+
add("ritual.bloodmagic.geode.harm.info", "(Harm) The range in which mobs are hurt to speed up growth");
274+
add("ritual.bloodmagic.geode.acceleration.info", "(Acceleration) The range in which growth is sped up");
275+
263276
add("ritual.bloodmagic.waterRitual.info", "Generates a source of water from the Master Ritual Stone.");
264277
add("ritual.bloodmagic.lavaRitual.info", "Generates a source of lava from the master ritual stone.");
265278
add("ritual.bloodmagic.lavaRitual.default.info", "(Raw) Decreases the LP cost of placing lava and allows the lava to be directly placed into a tank or other fluid-handling block.");

src/main/java/wayoftime/bloodmagic/common/tags/BloodMagicTags.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ public static class Blocks
145145
public static final TagKey<Block> SOUL_SOIL = BlockTags.create(new ResourceLocation("minecraft:soul_soil"));
146146
public static final TagKey<Block> BLOCK_TELEPOSER_BLACKLIST = BlockTags.create(new ResourceLocation("bloodmagic:teleposer_blacklist"));
147147

148+
public static final TagKey<Block> GEODE_ACCELERATABLE = BlockTags.create(new ResourceLocation("bloodmagic:geode_acceleratable"));
149+
public static final TagKey<Block> GEODE_HARVESTABLE = BlockTags.create(new ResourceLocation("bloodmagic:geode_harvestable"));
150+
148151
public static final TagKey<Block> MUNDANE_BLOCK = BlockTags.create(BloodMagic.rl("mundane_block"));
149152
}
150153

0 commit comments

Comments
 (0)