Skip to content

Commit be51cb0

Browse files
authored
Add more fluid solidifier molds (GregTechCEu#2665)
1 parent 734c351 commit be51cb0

33 files changed

+354
-45
lines changed

src/main/java/gregtech/common/items/MetaItem1.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import gregtech.api.items.metaitem.ElectricStats;
77
import gregtech.api.items.metaitem.FilteredFluidStats;
88
import gregtech.api.items.metaitem.FoodStats;
9+
import gregtech.api.items.metaitem.MetaItem;
910
import gregtech.api.items.metaitem.MusicDiscStats;
1011
import gregtech.api.items.metaitem.StandardMetaItem;
1112
import gregtech.api.items.metaitem.stats.IItemComponent;
@@ -61,13 +62,17 @@
6162
import gregtech.core.sound.GTSoundEvents;
6263

6364
import net.minecraft.client.resources.I18n;
65+
import net.minecraft.creativetab.CreativeTabs;
6466
import net.minecraft.init.Items;
6567
import net.minecraft.init.MobEffects;
6668
import net.minecraft.item.EnumDyeColor;
6769
import net.minecraft.item.EnumRarity;
6870
import net.minecraft.item.ItemStack;
71+
import net.minecraft.util.NonNullList;
6972
import net.minecraft.util.ResourceLocation;
7073

74+
import org.jetbrains.annotations.NotNull;
75+
7176
import static gregtech.api.GTValues.M;
7277
import static gregtech.api.util.DyeUtil.getOredictColorName;
7378
import static gregtech.common.items.MetaItems.*;
@@ -78,6 +83,26 @@ public MetaItem1() {
7883
super();
7984
}
8085

86+
@Override
87+
public void getSubItems(@NotNull CreativeTabs tab, @NotNull NonNullList<ItemStack> subItems) {
88+
if (!isInCreativeTab(tab)) return;
89+
for (MetaItem<?>.MetaValueItem item : metaItems.values()) {
90+
if (!item.isInCreativeTab(tab)) continue;
91+
92+
int itemMetaData = item.getMetaValue();
93+
if (itemMetaData >= 1006 && itemMetaData <= 1010) continue;
94+
95+
item.getSubItemHandler().getSubItems(item.getStackForm(), tab, subItems);
96+
97+
if (itemMetaData == 29) {
98+
for (MetaItem<?>.MetaValueItem moldItem : SHAPE_MOLDS) {
99+
if (moldItem.getMetaValue() < 1006) continue;
100+
moldItem.getSubItemHandler().getSubItems(moldItem.getStackForm(), tab, subItems);
101+
}
102+
}
103+
}
104+
}
105+
81106
@Override
82107
public void registerSubItems() {
83108
// Credits: ID 0-10
@@ -131,6 +156,18 @@ public void registerSubItems() {
131156
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
132157
SHAPE_MOLDS[12] = SHAPE_MOLD_ROTOR = addItem(24, "shape.mold.rotor")
133158
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
159+
SHAPE_MOLDS[13] = SHAPE_MOLD_RING = addItem(25, "shape.mold.ring")
160+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
161+
SHAPE_MOLDS[14] = SHAPE_MOLD_BOLT = addItem(26, "shape.mold.bolt")
162+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
163+
SHAPE_MOLDS[15] = SHAPE_MOLD_ROD = addItem(27, "shape.mold.rod")
164+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
165+
SHAPE_MOLDS[16] = SHAPE_MOLD_ROD_LONG = addItem(28, "shape.mold.rod_long")
166+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
167+
SHAPE_MOLDS[17] = SHAPE_MOLD_ROUND = addItem(29, "shape.mold.round")
168+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
169+
170+
// Free ID: 30
134171

135172
// Extruder Shapes: ID 31-59
136173
SHAPE_EXTRUDERS[0] = SHAPE_EXTRUDER_PLATE = addItem(31, "shape.extruder.plate")
@@ -1148,5 +1185,17 @@ public void registerSubItems() {
11481185

11491186
MULTIBLOCK_BUILDER = addItem(1004, "tool.multiblock_builder").addComponents(new MultiblockBuilderBehavior())
11501187
.setMaxStackSize(1);
1188+
1189+
// Extra molds 1006-1010
1190+
SHAPE_MOLDS[18] = SHAPE_MOLD_PIPE_TINY = addItem(1006, "shape.mold.pipe.tiny")
1191+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
1192+
SHAPE_MOLDS[19] = SHAPE_MOLD_PIPE_SMALL = addItem(1007, "shape.mold.pipe.small")
1193+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
1194+
SHAPE_MOLDS[20] = SHAPE_MOLD_PIPE_NORMAL = addItem(1008, "shape.mold.pipe.normal")
1195+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
1196+
SHAPE_MOLDS[21] = SHAPE_MOLD_PIPE_LARGE = addItem(1009, "shape.mold.pipe.large")
1197+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
1198+
SHAPE_MOLDS[22] = SHAPE_MOLD_PIPE_HUGE = addItem(1010, "shape.mold.pipe.huge")
1199+
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
11511200
}
11521201
}

src/main/java/gregtech/common/items/MetaItems.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private MetaItems() {}
5656

5757
public static MetaItem<?>.MetaValueItem SHAPE_EMPTY;
5858

59-
public static final MetaItem<?>.MetaValueItem[] SHAPE_MOLDS = new MetaValueItem[13];
59+
public static final MetaItem<?>.MetaValueItem[] SHAPE_MOLDS = new MetaValueItem[23];
6060
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PLATE;
6161
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_GEAR;
6262
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_CREDIT;
@@ -70,6 +70,16 @@ private MetaItems() {}
7070
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_NAME;
7171
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_GEAR_SMALL;
7272
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROTOR;
73+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_RING;
74+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_BOLT;
75+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROD;
76+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROD_LONG;
77+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROUND;
78+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_TINY;
79+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_SMALL;
80+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_NORMAL;
81+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_LARGE;
82+
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_HUGE;
7383

7484
public static final MetaItem<?>.MetaValueItem[] SHAPE_EXTRUDERS = new MetaValueItem[27];
7585
public static MetaItem<?>.MetaValueItem SHAPE_EXTRUDER_PLATE;

src/main/java/gregtech/loaders/recipe/CraftingRecipeLoader.java

Lines changed: 114 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -223,32 +223,121 @@ private static void loadCraftingRecipes() {
223223
ModHandler.addShapedRecipe("shape_extruder_rotor", SHAPE_EXTRUDER_ROTOR.getStackForm(), " ", " S ", "x ",
224224
'S', SHAPE_EMPTY.getStackForm());
225225

226-
ModHandler.addShapedRecipe("shape_mold_rotor", SHAPE_MOLD_ROTOR.getStackForm(), " h", " S ", " ", 'S',
227-
SHAPE_EMPTY.getStackForm());
228-
ModHandler.addShapedRecipe("shape_mold_gear_small", SHAPE_MOLD_GEAR_SMALL.getStackForm(), " ", " ", "h S",
226+
ModHandler.addShapedRecipe("shape_mold_rotor", SHAPE_MOLD_ROTOR.getStackForm(),
227+
" h",
228+
" S ",
229+
" ",
230+
'S', SHAPE_EMPTY.getStackForm());
231+
ModHandler.addShapedRecipe("shape_mold_gear_small", SHAPE_MOLD_GEAR_SMALL.getStackForm(),
232+
" ",
233+
" ",
234+
"h S",
235+
'S', SHAPE_EMPTY.getStackForm());
236+
ModHandler.addShapedRecipe("shape_mold_name", SHAPE_MOLD_NAME.getStackForm(),
237+
" S",
238+
" ",
239+
"h ",
240+
'S', SHAPE_EMPTY.getStackForm());
241+
ModHandler.addShapedRecipe("shape_mold_anvil", SHAPE_MOLD_ANVIL.getStackForm(),
242+
" S",
243+
" ",
244+
" h ",
245+
'S', SHAPE_EMPTY.getStackForm());
246+
ModHandler.addShapedRecipe("shape_mold_cylinder", SHAPE_MOLD_CYLINDER.getStackForm(),
247+
" S",
248+
" ",
249+
" h",
250+
'S', SHAPE_EMPTY.getStackForm());
251+
ModHandler.addShapedRecipe("shape_mold_nugget", SHAPE_MOLD_NUGGET.getStackForm(),
252+
"S h",
253+
" ",
254+
" ",
255+
'S', SHAPE_EMPTY.getStackForm());
256+
ModHandler.addShapedRecipe("shape_mold_block", SHAPE_MOLD_BLOCK.getStackForm(),
257+
" ",
258+
"hS ",
259+
" ",
260+
'S', SHAPE_EMPTY.getStackForm());
261+
ModHandler.addShapedRecipe("shape_mold_ball", SHAPE_MOLD_BALL.getStackForm(),
262+
" ",
263+
" S ",
264+
"h ",
265+
'S', SHAPE_EMPTY.getStackForm());
266+
ModHandler.addShapedRecipe("shape_mold_ingot", SHAPE_MOLD_INGOT.getStackForm(),
267+
" ",
268+
" S ",
269+
" h ",
270+
'S', SHAPE_EMPTY.getStackForm());
271+
ModHandler.addShapedRecipe("shape_mold_bottle", SHAPE_MOLD_BOTTLE.getStackForm(),
272+
" ",
273+
" S ",
274+
" h",
275+
'S', SHAPE_EMPTY.getStackForm());
276+
ModHandler.addShapedRecipe("shape_mold_credit", SHAPE_MOLD_CREDIT.getStackForm(),
277+
"h ",
278+
" S ",
279+
" ",
280+
'S', SHAPE_EMPTY.getStackForm());
281+
ModHandler.addShapedRecipe("shape_mold_gear", SHAPE_MOLD_GEAR.getStackForm(),
282+
" ",
283+
" Sh",
284+
" ",
285+
'S', SHAPE_EMPTY.getStackForm());
286+
ModHandler.addShapedRecipe("shape_mold_plate", SHAPE_MOLD_PLATE.getStackForm(),
287+
" h ",
288+
" S ",
289+
" ",
290+
'S', SHAPE_EMPTY.getStackForm());
291+
ModHandler.addShapedRecipe("shape_mold_ring", SHAPE_MOLD_RING.getStackForm(),
292+
" ",
293+
" h ",
294+
" S ",
295+
'S', SHAPE_EMPTY.getStackForm());
296+
ModHandler.addShapedRecipe("shape_mold_bolt", SHAPE_MOLD_BOLT.getStackForm(),
297+
"h ",
298+
" ",
299+
"S ",
300+
'S', SHAPE_EMPTY.getStackForm());
301+
ModHandler.addShapedRecipe("shape_mold_rod", SHAPE_MOLD_ROD.getStackForm(),
302+
" h ",
303+
" ",
304+
"S ",
305+
'S', SHAPE_EMPTY.getStackForm());
306+
ModHandler.addShapedRecipe("shape_mold_rod_long", SHAPE_MOLD_ROD_LONG.getStackForm(),
307+
" h",
308+
" ",
309+
"S ",
310+
'S', SHAPE_EMPTY.getStackForm());
311+
ModHandler.addShapedRecipe("shape_mold_round", SHAPE_MOLD_ROUND.getStackForm(),
312+
" ",
313+
" h ",
314+
"S ",
315+
'S', SHAPE_EMPTY.getStackForm());
316+
ModHandler.addShapedRecipe("shape_mold_pipe_tiny", SHAPE_MOLD_PIPE_TINY.getStackForm(),
317+
" ",
318+
" ",
319+
"Sh ",
320+
'S', SHAPE_EMPTY.getStackForm());
321+
ModHandler.addShapedRecipe("shape_mold_pipe_small", SHAPE_MOLD_PIPE_SMALL.getStackForm(),
322+
" ",
323+
" ",
324+
"S h",
325+
'S', SHAPE_EMPTY.getStackForm());
326+
ModHandler.addShapedRecipe("shape_mold_pipe_normal", SHAPE_MOLD_PIPE_NORMAL.getStackForm(),
327+
" ",
328+
" ",
329+
" Sh",
330+
'S', SHAPE_EMPTY.getStackForm());
331+
ModHandler.addShapedRecipe("shape_mold_pipe_large", SHAPE_MOLD_PIPE_LARGE.getStackForm(),
332+
" ",
333+
" ",
334+
"hS ",
335+
'S', SHAPE_EMPTY.getStackForm());
336+
ModHandler.addShapedRecipe("shape_mold_pipe_huge", SHAPE_MOLD_PIPE_HUGE.getStackForm(),
337+
" ",
338+
" h",
339+
" S ",
229340
'S', SHAPE_EMPTY.getStackForm());
230-
ModHandler.addShapedRecipe("shape_mold_name", SHAPE_MOLD_NAME.getStackForm(), " S", " ", "h ", 'S',
231-
SHAPE_EMPTY.getStackForm());
232-
ModHandler.addShapedRecipe("shape_mold_anvil", SHAPE_MOLD_ANVIL.getStackForm(), " S", " ", " h ", 'S',
233-
SHAPE_EMPTY.getStackForm());
234-
ModHandler.addShapedRecipe("shape_mold_cylinder", SHAPE_MOLD_CYLINDER.getStackForm(), " S", " ", " h", 'S',
235-
SHAPE_EMPTY.getStackForm());
236-
ModHandler.addShapedRecipe("shape_mold_nugget", SHAPE_MOLD_NUGGET.getStackForm(), "S h", " ", " ", 'S',
237-
SHAPE_EMPTY.getStackForm());
238-
ModHandler.addShapedRecipe("shape_mold_block", SHAPE_MOLD_BLOCK.getStackForm(), " ", "hS ", " ", 'S',
239-
SHAPE_EMPTY.getStackForm());
240-
ModHandler.addShapedRecipe("shape_mold_ball", SHAPE_MOLD_BALL.getStackForm(), " ", " S ", "h ", 'S',
241-
SHAPE_EMPTY.getStackForm());
242-
ModHandler.addShapedRecipe("shape_mold_ingot", SHAPE_MOLD_INGOT.getStackForm(), " ", " S ", " h ", 'S',
243-
SHAPE_EMPTY.getStackForm());
244-
ModHandler.addShapedRecipe("shape_mold_bottle", SHAPE_MOLD_BOTTLE.getStackForm(), " ", " S ", " h", 'S',
245-
SHAPE_EMPTY.getStackForm());
246-
ModHandler.addShapedRecipe("shape_mold_credit", SHAPE_MOLD_CREDIT.getStackForm(), "h ", " S ", " ", 'S',
247-
SHAPE_EMPTY.getStackForm());
248-
ModHandler.addShapedRecipe("shape_mold_gear", SHAPE_MOLD_GEAR.getStackForm(), " ", " Sh", " ", 'S',
249-
SHAPE_EMPTY.getStackForm());
250-
ModHandler.addShapedRecipe("shape_mold_plate", SHAPE_MOLD_PLATE.getStackForm(), " h ", " S ", " ", 'S',
251-
SHAPE_EMPTY.getStackForm());
252341

253342
///////////////////////////////////////////////////
254343
// Credits //

src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private static void registerBendingCompressingRecipes() {
111111
FORMING_PRESS_RECIPES.recipeBuilder()
112112
.duration(120).EUt(22)
113113
.notConsumable(shapeMold.getStackForm())
114-
.inputs(MetaItems.SHAPE_EMPTY.getStackForm())
114+
.input(MetaItems.SHAPE_EMPTY)
115115
.outputs(shapeMold.getStackForm())
116116
.buildAndRegister();
117117
}

src/main/java/gregtech/loaders/recipe/handlers/PartsRecipeHandler.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,15 @@ public static void processBolt(OrePrefix boltPrefix, Material material, DustProp
8787
.buildAndRegister();
8888
}
8989
}
90+
91+
if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
92+
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
93+
.notConsumable(MetaItems.SHAPE_MOLD_BOLT)
94+
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 8))
95+
.output(boltPrefix, material)
96+
.EUt(GTUtility.scaleVoltage(VA[MV], workingTier)).duration(2)
97+
.buildAndRegister();
98+
}
9099
}
91100

92101
public static void processScrew(OrePrefix screwPrefix, Material material, DustProperty property) {
@@ -394,6 +403,16 @@ public static void processRing(OrePrefix ringPrefix, Material material, IngotPro
394403
.EUt(GTUtility.scaleVoltage(6 * getVoltageMultiplier(material), workingTier))
395404
.buildAndRegister();
396405
}
406+
407+
if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
408+
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
409+
.notConsumable(MetaItems.SHAPE_MOLD_RING)
410+
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 4))
411+
.output(ringPrefix, material)
412+
.EUt(GTUtility.scaleVoltage(6 * getVoltageMultiplier(material), workingTier))
413+
.duration((int) Math.max((material.getMass() / 2f) * 0.95f, 1f))
414+
.buildAndRegister();
415+
}
397416
}
398417

399418
public static void processSpringSmall(OrePrefix springPrefix, Material material, IngotProperty property) {
@@ -507,6 +526,16 @@ public static void processStick(OrePrefix stickPrefix, Material material, DustPr
507526
'X', new UnificationEntry(OrePrefix.stick, material));
508527
}
509528
}
529+
530+
if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
531+
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
532+
.notConsumable(MetaItems.SHAPE_MOLD_ROD)
533+
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 2))
534+
.output(stickPrefix, material)
535+
.EUt(GTUtility.scaleVoltage(6 * getVoltageMultiplier(material), workingTier))
536+
.duration((int) Math.max(material.getMass() * 0.95f, 1f))
537+
.buildAndRegister();
538+
}
510539
}
511540

512541
public static void processLongStick(OrePrefix longStickPrefix, Material material, DustProperty property) {
@@ -571,6 +600,16 @@ public static void processLongStick(OrePrefix longStickPrefix, Material material
571600
.buildAndRegister();
572601
}
573602
}
603+
604+
if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
605+
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
606+
.notConsumable(MetaItems.SHAPE_MOLD_ROD_LONG)
607+
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L))
608+
.output(longStickPrefix, material)
609+
.EUt(GTUtility.scaleVoltage(64, workingTier))
610+
.duration((int) Math.max(material.getMass() * 0.95f, 1f))
611+
.buildAndRegister();
612+
}
574613
}
575614

576615
public static void processTurbine(OrePrefix toolPrefix, Material material, IngotProperty property) {
@@ -624,6 +663,16 @@ public static void processRound(OrePrefix roundPrefix, Material material, IngotP
624663
.duration(100)
625664
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
626665
.buildAndRegister();
666+
667+
if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
668+
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
669+
.notConsumable(MetaItems.SHAPE_MOLD_ROUND)
670+
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 9))
671+
.output(roundPrefix, material)
672+
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
673+
.duration(90)
674+
.buildAndRegister();
675+
}
627676
}
628677

629678
private static long getVoltageMultiplier(Material material) {

0 commit comments

Comments
 (0)