Skip to content

Commit 9a6df0d

Browse files
authored
Rename AdjacentFluid overload (#3960)
1 parent 569fe4e commit 9a6df0d

File tree

7 files changed

+131
-19
lines changed

7 files changed

+131
-19
lines changed

docs/content/Modpacks/Changes/v7.2.0.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ Where the inputs or outputs will be rolled inclusively from min to max.
2929
## Rock breaker conditions
3030
Previously, rock breaker recipes used the `addData("fluidA", ...)` methods.
3131

32-
Now, they work by AdjacentFluidConditions, added with the `adjacentFluid(Fluid...)` methods. See [our other condition builder methods](https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java#L894).
32+
Now, they work by AdjacentFluidConditions, added with the `adjacentFluids(Fluid...)` methods. See [our other condition builder methods](https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java#L894).
3333

34-
In a similar vein, recipes that used to have adjacent block requirements, you now need to use `adjacentBlock(Block...)` rather than `addData("blockA")`.
34+
In a similar vein, recipes that used to have adjacent block requirements, you now need to use `adjacentBlocks(Block...)` rather than `addData("blockA")`.
35+
36+
There also exist methods for tagged fluids, by using `.adjacentFluidTag(ResourceLocation)` and `.adjacentBlockTag(ResourceLocation)`.
3537

3638
## Recipe Conditions
3739
We have moved away from the .serialize, .deserialize, .toNetwork and .fromNetwork calls on the RecipeCondition, and we now exclusively use the recipeCondition's codec.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: "Version 7.2.1"
3+
---
4+
5+
6+
# Updating from `7.2.0` to `7.2.1`
7+
8+
## AdjacentFluid() and AdjacentBlock()
9+
10+
For ease of use for KJS, we have added overrides for
11+
12+
- `adjacentFluid(ResourceLocation... tagNames)` -> `adjacentFluidTag(ResourceLocation... tagNames)`
13+
14+
and
15+
16+
- `adjacentFluid(Fluid... fluids)` -> `adjacentFluids(Fluid... fluids)`
17+
18+
This way, the old `AdjacentFluid(...)` methods still exist, but there also is a clear way to use the kubejs without ambiguous casts / methods.
19+
20+
These changes hold for the `.adjacentBlock()` too.

docs/content/Modpacks/Recipes/Adding-and-Removing-Recipes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,15 +180,15 @@ ServerEvents.recipes(event => {
180180

181181
Rock breaker recipes use AdjacentFluidConditions.
182182

183-
To add a condition, you can use the `adjacentFluid(Fluid...)` methods, see [our other condition builder methods](https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java#L894).
183+
To add a condition, you can use the `adjacentFluids(Fluid...)` methods, see [our other condition builder methods](https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java#L894).
184184

185185
```js title="rock_breaker.js"
186186
ServerEvents.recipes(event => {
187187
event.recipes.gtceu.rock_breaker('rhino_jank')
188188
.notConsumable('minecraft:dirt')
189189
.itemOutputs('minecraft:dirt')
190-
.adjacentFluid('minecraft:water')
191-
.adjacentFluid('minecraft:lava')
190+
.adjacentFluids('minecraft:water')
191+
.adjacentFluids('minecraft:lava')
192192
.duration(16)
193193
.EUt(30)
194194
})

src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,18 @@ public GTRecipeBuilder environmentalHazard(MedicalCondition condition) {
11531153
return environmentalHazard(condition, false);
11541154
}
11551155

1156+
public final GTRecipeBuilder adjacentFluids(Fluid... fluids) {
1157+
return adjacentFluids(false, fluids);
1158+
}
1159+
1160+
public final GTRecipeBuilder adjacentFluids(boolean isReverse, Fluid... fluids) {
1161+
if (fluids.length > GTUtil.NON_CORNER_NEIGHBOURS.size()) {
1162+
GTCEu.LOGGER.error("Has too many fluids, not adding to recipe, id: {}", this.id);
1163+
return this;
1164+
}
1165+
return addCondition(AdjacentFluidCondition.fromFluids(fluids).setReverse(isReverse));
1166+
}
1167+
11561168
public final GTRecipeBuilder adjacentFluid(Fluid... fluids) {
11571169
return adjacentFluid(false, fluids);
11581170
}
@@ -1165,6 +1177,20 @@ public final GTRecipeBuilder adjacentFluid(boolean isReverse, Fluid... fluids) {
11651177
return addCondition(AdjacentFluidCondition.fromFluids(fluids).setReverse(isReverse));
11661178
}
11671179

1180+
@SafeVarargs
1181+
public final GTRecipeBuilder adjacentFluidTag(TagKey<Fluid>... tags) {
1182+
return adjacentFluidTag(false, tags);
1183+
}
1184+
1185+
@SafeVarargs
1186+
public final GTRecipeBuilder adjacentFluidTag(boolean isReverse, TagKey<Fluid>... tags) {
1187+
if (tags.length > GTUtil.NON_CORNER_NEIGHBOURS.size()) {
1188+
GTCEu.LOGGER.error("Has too many fluids, not adding to recipe, id: {}", this.id);
1189+
return this;
1190+
}
1191+
return addCondition(AdjacentFluidCondition.fromTags(tags).setReverse(isReverse));
1192+
}
1193+
11681194
@SafeVarargs
11691195
public final GTRecipeBuilder adjacentFluid(TagKey<Fluid>... tags) {
11701196
return adjacentFluid(false, tags);
@@ -1191,6 +1217,18 @@ public GTRecipeBuilder adjacentFluid(Collection<HolderSet<Fluid>> fluids, boolea
11911217
return addCondition(new AdjacentFluidCondition(isReverse, new ArrayList<>(fluids)));
11921218
}
11931219

1220+
public GTRecipeBuilder adjacentBlocks(Block... blocks) {
1221+
return adjacentBlocks(false, blocks);
1222+
}
1223+
1224+
public GTRecipeBuilder adjacentBlocks(boolean isReverse, Block... blocks) {
1225+
if (blocks.length > GTUtil.NON_CORNER_NEIGHBOURS.size()) {
1226+
GTCEu.LOGGER.error("Has too many blocks, not adding to recipe, id: {}", this.id);
1227+
return this;
1228+
}
1229+
return addCondition(AdjacentBlockCondition.fromBlocks(blocks).setReverse(isReverse));
1230+
}
1231+
11941232
public GTRecipeBuilder adjacentBlock(Block... blocks) {
11951233
return adjacentBlock(false, blocks);
11961234
}
@@ -1217,6 +1255,20 @@ public final GTRecipeBuilder adjacentBlock(boolean isReverse, TagKey<Block>... t
12171255
return addCondition(AdjacentBlockCondition.fromTags(tags).setReverse(isReverse));
12181256
}
12191257

1258+
@SafeVarargs
1259+
public final GTRecipeBuilder adjacentBlockTag(TagKey<Block>... tags) {
1260+
return adjacentBlockTag(false, tags);
1261+
}
1262+
1263+
@SafeVarargs
1264+
public final GTRecipeBuilder adjacentBlockTag(boolean isReverse, TagKey<Block>... tags) {
1265+
if (tags.length > GTUtil.NON_CORNER_NEIGHBOURS.size()) {
1266+
GTCEu.LOGGER.error("Has too many blocks, not adding to recipe, id: {}", this.id);
1267+
return this;
1268+
}
1269+
return addCondition(AdjacentBlockCondition.fromTags(tags).setReverse(isReverse));
1270+
}
1271+
12201272
public GTRecipeBuilder adjacentBlock(Collection<HolderSet<Block>> blocks) {
12211273
return adjacentBlock(blocks, false);
12221274
}

src/main/java/com/gregtechceu/gtceu/data/recipe/misc/MiscRecipeLoader.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,95 +89,95 @@ public static void init(Consumer<FinishedRecipe> provider) {
8989
ROCK_BREAKER_RECIPES.recipeBuilder("cobblestone")
9090
.notConsumable(Blocks.COBBLESTONE.asItem())
9191
.outputItems(Blocks.COBBLESTONE.asItem())
92-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
92+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
9393
.duration(16)
9494
.EUt(VA[ULV])
9595
.save(provider);
9696

9797
ROCK_BREAKER_RECIPES.recipeBuilder("stone")
9898
.notConsumable(Blocks.STONE.asItem())
9999
.outputItems(Blocks.STONE.asItem())
100-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
100+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
101101
.duration(16)
102102
.EUt(VA[ULV])
103103
.save(provider);
104104

105105
ROCK_BREAKER_RECIPES.recipeBuilder("andesite")
106106
.notConsumable(Blocks.ANDESITE.asItem())
107107
.outputItems(Blocks.ANDESITE.asItem())
108-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
108+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
109109
.duration(16)
110110
.EUt(VHA[MV])
111111
.save(provider);
112112

113113
ROCK_BREAKER_RECIPES.recipeBuilder("granite")
114114
.notConsumable(Blocks.GRANITE.asItem())
115115
.outputItems(Blocks.GRANITE.asItem())
116-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
116+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
117117
.duration(16)
118118
.EUt(VHA[MV])
119119
.save(provider);
120120

121121
ROCK_BREAKER_RECIPES.recipeBuilder("diorite")
122122
.notConsumable(Blocks.DIORITE.asItem())
123123
.outputItems(Blocks.DIORITE.asItem())
124-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
124+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
125125
.duration(16)
126126
.EUt(VHA[MV])
127127
.save(provider);
128128

129129
ROCK_BREAKER_RECIPES.recipeBuilder("obsidian")
130130
.notConsumable(dust, Redstone)
131131
.outputItems(Blocks.OBSIDIAN.asItem())
132-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
132+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
133133
.duration(16)
134134
.EUt(VHA[HV])
135135
.save(provider);
136136

137137
ROCK_BREAKER_RECIPES.recipeBuilder("basalt")
138138
.notConsumable(Blocks.BASALT.asItem())
139139
.outputItems(Blocks.BASALT.asItem())
140-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
140+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
141141
.duration(16)
142142
.EUt(VHA[HV])
143143
.save(provider);
144144

145145
ROCK_BREAKER_RECIPES.recipeBuilder("blackstone")
146146
.notConsumable(Blocks.BLACKSTONE.asItem())
147147
.outputItems(Blocks.BLACKSTONE.asItem())
148-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
148+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
149149
.duration(16)
150150
.EUt(VHA[HV])
151151
.save(provider);
152152

153153
ROCK_BREAKER_RECIPES.recipeBuilder("deepslate")
154154
.notConsumable(Blocks.DEEPSLATE.asItem())
155155
.outputItems(Blocks.DEEPSLATE.asItem())
156-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
156+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
157157
.duration(16)
158158
.EUt(VHA[EV])
159159
.save(provider);
160160

161161
ROCK_BREAKER_RECIPES.recipeBuilder("marble")
162162
.notConsumable(rock, Marble)
163163
.outputItems(rock, Marble)
164-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
164+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
165165
.duration(16)
166166
.EUt(VHA[HV])
167167
.save(provider);
168168

169169
ROCK_BREAKER_RECIPES.recipeBuilder("basalt")
170170
.notConsumable(rock, Basalt)
171171
.outputItems(rock, Basalt)
172-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
172+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
173173
.duration(16)
174174
.EUt(VHA[HV])
175175
.save(provider);
176176

177177
ROCK_BREAKER_RECIPES.recipeBuilder("red_granite")
178178
.notConsumable(rock, GraniteRed)
179179
.outputItems(rock, GraniteRed)
180-
.adjacentFluid(FluidTags.LAVA, FluidTags.WATER)
180+
.adjacentFluidTag(FluidTags.LAVA, FluidTags.WATER)
181181
.duration(16)
182182
.EUt(VHA[EV])
183183
.save(provider);

src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/GTRecipeSchema.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,14 @@ public GTRecipeJS environmentalHazard(MedicalCondition condition) {
891891
return environmentalHazard(condition, false);
892892
}
893893

894+
public GTRecipeJS adjacentFluids(Fluid... fluids) {
895+
return adjacentFluids(false, fluids);
896+
}
897+
898+
public GTRecipeJS adjacentFluids(boolean isReverse, Fluid... fluids) {
899+
return addCondition(AdjacentFluidCondition.fromFluids(fluids).setReverse(isReverse));
900+
}
901+
894902
public GTRecipeJS adjacentFluid(Fluid... fluids) {
895903
return adjacentFluid(false, fluids);
896904
}
@@ -910,6 +918,25 @@ public GTRecipeJS adjacentFluid(boolean isReverse, ResourceLocation... tagNames)
910918
return addCondition(AdjacentFluidCondition.fromTags(tags).setReverse(isReverse));
911919
}
912920

921+
public GTRecipeJS adjacentFluidTag(ResourceLocation... tagNames) {
922+
return adjacentFluidTag(false, tagNames);
923+
}
924+
925+
public GTRecipeJS adjacentFluidTag(boolean isReverse, ResourceLocation... tagNames) {
926+
List<TagKey<Fluid>> tags = Arrays.stream(tagNames)
927+
.map(id -> TagKey.create(Registries.FLUID, id))
928+
.toList();
929+
return addCondition(AdjacentFluidCondition.fromTags(tags).setReverse(isReverse));
930+
}
931+
932+
public GTRecipeJS adjacentBlocks(Block... blocks) {
933+
return adjacentBlocks(false, blocks);
934+
}
935+
936+
public GTRecipeJS adjacentBlocks(boolean isReverse, Block... blocks) {
937+
return addCondition(AdjacentBlockCondition.fromBlocks(blocks).setReverse(isReverse));
938+
}
939+
913940
public GTRecipeJS adjacentBlock(Block... blocks) {
914941
return adjacentBlock(false, blocks);
915942
}
@@ -918,6 +945,17 @@ public GTRecipeJS adjacentBlock(boolean isReverse, Block... blocks) {
918945
return addCondition(AdjacentBlockCondition.fromBlocks(blocks).setReverse(isReverse));
919946
}
920947

948+
public GTRecipeJS adjacentBlockTag(ResourceLocation... tagNames) {
949+
return adjacentBlockTag(false, tagNames);
950+
}
951+
952+
public GTRecipeJS adjacentBlockTag(boolean isReverse, ResourceLocation... tagNames) {
953+
List<TagKey<Block>> tags = Arrays.stream(tagNames)
954+
.map(id -> TagKey.create(Registries.BLOCK, id))
955+
.toList();
956+
return addCondition(AdjacentBlockCondition.fromTags(tags).setReverse(isReverse));
957+
}
958+
921959
public GTRecipeJS adjacentBlock(ResourceLocation... tagNames) {
922960
return adjacentBlock(false, tagNames);
923961
}

src/test/java/com/gregtechceu/gtceu/common/recipe/condition/AdjacentFluidConditionTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public static void prepare(ServerLevel level) {
3838
.recipeBuilder(GTCEu.id("test_adjacent_fluid_conditions"))
3939
.inputItems(new ItemStack(Blocks.COBBLESTONE))
4040
.outputItems(new ItemStack(Blocks.STONE))
41-
.adjacentFluid(FluidTags.WATER)
41+
.adjacentFluidTag(FluidTags.WATER)
4242
.EUt(GTValues.VA[GTValues.HV])
4343
.duration(8)
4444
.buildRawRecipe());
@@ -47,7 +47,7 @@ public static void prepare(ServerLevel level) {
4747
.recipeBuilder(GTCEu.id("test_adjacent_fluid_conditions_multiple_fluids"))
4848
.inputItems(new ItemStack(Blocks.OAK_WOOD))
4949
.outputItems(new ItemStack(Items.CHARCOAL))
50-
.adjacentFluid(FluidTags.WATER, FluidTags.LAVA)
50+
.adjacentFluidTag(FluidTags.WATER, FluidTags.LAVA)
5151
.EUt(GTValues.VA[GTValues.HV])
5252
.duration(8)
5353
.buildRawRecipe());

0 commit comments

Comments
 (0)