Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions src/main/java/gregtech/common/items/MetaItem1.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import gregtech.api.items.metaitem.ElectricStats;
import gregtech.api.items.metaitem.FilteredFluidStats;
import gregtech.api.items.metaitem.FoodStats;
import gregtech.api.items.metaitem.MetaItem;
import gregtech.api.items.metaitem.MusicDiscStats;
import gregtech.api.items.metaitem.StandardMetaItem;
import gregtech.api.items.metaitem.stats.IItemComponent;
Expand Down Expand Up @@ -61,13 +62,17 @@
import gregtech.core.sound.GTSoundEvents;

import net.minecraft.client.resources.I18n;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.init.MobEffects;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;

import org.jetbrains.annotations.NotNull;

import static gregtech.api.GTValues.M;
import static gregtech.api.util.DyeUtil.getOredictColorName;
import static gregtech.common.items.MetaItems.*;
Expand All @@ -78,6 +83,26 @@ public MetaItem1() {
super();
}

@Override
public void getSubItems(@NotNull CreativeTabs tab, @NotNull NonNullList<ItemStack> subItems) {
if (!isInCreativeTab(tab)) return;
for (MetaItem<?>.MetaValueItem item : metaItems.values()) {
if (!item.isInCreativeTab(tab)) continue;

int itemMetaData = item.getMetaValue();
if (itemMetaData >= 1006 && itemMetaData <= 1010) continue;

item.getSubItemHandler().getSubItems(item.getStackForm(), tab, subItems);

if (itemMetaData == 29) {
for (MetaItem<?>.MetaValueItem moldItem : SHAPE_MOLDS) {
if (moldItem.getMetaValue() < 1006) continue;
moldItem.getSubItemHandler().getSubItems(moldItem.getStackForm(), tab, subItems);
}
}
}
}

@Override
public void registerSubItems() {
// Credits: ID 0-10
Expand Down Expand Up @@ -131,6 +156,18 @@ public void registerSubItems() {
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[12] = SHAPE_MOLD_ROTOR = addItem(24, "shape.mold.rotor")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[13] = SHAPE_MOLD_RING = addItem(25, "shape.mold.ring")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[14] = SHAPE_MOLD_BOLT = addItem(26, "shape.mold.bolt")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[15] = SHAPE_MOLD_ROD = addItem(27, "shape.mold.rod")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[16] = SHAPE_MOLD_ROD_LONG = addItem(28, "shape.mold.rod_long")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[17] = SHAPE_MOLD_ROUND = addItem(29, "shape.mold.round")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));

// Free ID: 30

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

MULTIBLOCK_BUILDER = addItem(1004, "tool.multiblock_builder").addComponents(new MultiblockBuilderBehavior())
.setMaxStackSize(1);

// Extra molds 1006-1010
SHAPE_MOLDS[18] = SHAPE_MOLD_PIPE_TINY = addItem(1006, "shape.mold.pipe.tiny")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[19] = SHAPE_MOLD_PIPE_SMALL = addItem(1007, "shape.mold.pipe.small")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[20] = SHAPE_MOLD_PIPE_NORMAL = addItem(1008, "shape.mold.pipe.normal")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[21] = SHAPE_MOLD_PIPE_LARGE = addItem(1009, "shape.mold.pipe.large")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
SHAPE_MOLDS[22] = SHAPE_MOLD_PIPE_HUGE = addItem(1010, "shape.mold.pipe.huge")
.setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, M * 4)));
}
}
12 changes: 11 additions & 1 deletion src/main/java/gregtech/common/items/MetaItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ private MetaItems() {}

public static MetaItem<?>.MetaValueItem SHAPE_EMPTY;

public static final MetaItem<?>.MetaValueItem[] SHAPE_MOLDS = new MetaValueItem[13];
public static final MetaItem<?>.MetaValueItem[] SHAPE_MOLDS = new MetaValueItem[23];
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PLATE;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_GEAR;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_CREDIT;
Expand All @@ -70,6 +70,16 @@ private MetaItems() {}
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_NAME;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_GEAR_SMALL;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROTOR;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_RING;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_BOLT;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROD;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROD_LONG;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_ROUND;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_TINY;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_SMALL;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_NORMAL;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_LARGE;
public static MetaItem<?>.MetaValueItem SHAPE_MOLD_PIPE_HUGE;

public static final MetaItem<?>.MetaValueItem[] SHAPE_EXTRUDERS = new MetaValueItem[27];
public static MetaItem<?>.MetaValueItem SHAPE_EXTRUDER_PLATE;
Expand Down
139 changes: 114 additions & 25 deletions src/main/java/gregtech/loaders/recipe/CraftingRecipeLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -223,32 +223,121 @@ private static void loadCraftingRecipes() {
ModHandler.addShapedRecipe("shape_extruder_rotor", SHAPE_EXTRUDER_ROTOR.getStackForm(), " ", " S ", "x ",
'S', SHAPE_EMPTY.getStackForm());

ModHandler.addShapedRecipe("shape_mold_rotor", SHAPE_MOLD_ROTOR.getStackForm(), " h", " S ", " ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_gear_small", SHAPE_MOLD_GEAR_SMALL.getStackForm(), " ", " ", "h S",
ModHandler.addShapedRecipe("shape_mold_rotor", SHAPE_MOLD_ROTOR.getStackForm(),
" h",
" S ",
" ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_gear_small", SHAPE_MOLD_GEAR_SMALL.getStackForm(),
" ",
" ",
"h S",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_name", SHAPE_MOLD_NAME.getStackForm(),
" S",
" ",
"h ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_anvil", SHAPE_MOLD_ANVIL.getStackForm(),
" S",
" ",
" h ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_cylinder", SHAPE_MOLD_CYLINDER.getStackForm(),
" S",
" ",
" h",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_nugget", SHAPE_MOLD_NUGGET.getStackForm(),
"S h",
" ",
" ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_block", SHAPE_MOLD_BLOCK.getStackForm(),
" ",
"hS ",
" ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_ball", SHAPE_MOLD_BALL.getStackForm(),
" ",
" S ",
"h ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_ingot", SHAPE_MOLD_INGOT.getStackForm(),
" ",
" S ",
" h ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_bottle", SHAPE_MOLD_BOTTLE.getStackForm(),
" ",
" S ",
" h",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_credit", SHAPE_MOLD_CREDIT.getStackForm(),
"h ",
" S ",
" ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_gear", SHAPE_MOLD_GEAR.getStackForm(),
" ",
" Sh",
" ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_plate", SHAPE_MOLD_PLATE.getStackForm(),
" h ",
" S ",
" ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_ring", SHAPE_MOLD_RING.getStackForm(),
" ",
" h ",
" S ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_bolt", SHAPE_MOLD_BOLT.getStackForm(),
"h ",
" ",
"S ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_rod", SHAPE_MOLD_ROD.getStackForm(),
" h ",
" ",
"S ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_rod_long", SHAPE_MOLD_ROD_LONG.getStackForm(),
" h",
" ",
"S ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_round", SHAPE_MOLD_ROUND.getStackForm(),
" ",
" h ",
"S ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_pipe_tiny", SHAPE_MOLD_PIPE_TINY.getStackForm(),
" ",
" ",
"Sh ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_pipe_small", SHAPE_MOLD_PIPE_SMALL.getStackForm(),
" ",
" ",
"S h",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_pipe_normal", SHAPE_MOLD_PIPE_NORMAL.getStackForm(),
" ",
" ",
" Sh",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_pipe_large", SHAPE_MOLD_PIPE_LARGE.getStackForm(),
" ",
" ",
"hS ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_pipe_huge", SHAPE_MOLD_PIPE_HUGE.getStackForm(),
" ",
" h",
" S ",
'S', SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_name", SHAPE_MOLD_NAME.getStackForm(), " S", " ", "h ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_anvil", SHAPE_MOLD_ANVIL.getStackForm(), " S", " ", " h ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_cylinder", SHAPE_MOLD_CYLINDER.getStackForm(), " S", " ", " h", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_nugget", SHAPE_MOLD_NUGGET.getStackForm(), "S h", " ", " ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_block", SHAPE_MOLD_BLOCK.getStackForm(), " ", "hS ", " ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_ball", SHAPE_MOLD_BALL.getStackForm(), " ", " S ", "h ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_ingot", SHAPE_MOLD_INGOT.getStackForm(), " ", " S ", " h ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_bottle", SHAPE_MOLD_BOTTLE.getStackForm(), " ", " S ", " h", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_credit", SHAPE_MOLD_CREDIT.getStackForm(), "h ", " S ", " ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_gear", SHAPE_MOLD_GEAR.getStackForm(), " ", " Sh", " ", 'S',
SHAPE_EMPTY.getStackForm());
ModHandler.addShapedRecipe("shape_mold_plate", SHAPE_MOLD_PLATE.getStackForm(), " h ", " S ", " ", 'S',
SHAPE_EMPTY.getStackForm());

///////////////////////////////////////////////////
// Credits //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ private static void registerBendingCompressingRecipes() {
FORMING_PRESS_RECIPES.recipeBuilder()
.duration(120).EUt(22)
.notConsumable(shapeMold.getStackForm())
.inputs(MetaItems.SHAPE_EMPTY.getStackForm())
.input(MetaItems.SHAPE_EMPTY)
.outputs(shapeMold.getStackForm())
.buildAndRegister();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,15 @@ public static void processBolt(OrePrefix boltPrefix, Material material, DustProp
.buildAndRegister();
}
}

if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_BOLT)
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 8))
.output(boltPrefix, material)
.EUt(GTUtility.scaleVoltage(VA[MV], workingTier)).duration(2)
.buildAndRegister();
}
}

public static void processScrew(OrePrefix screwPrefix, Material material, DustProperty property) {
Expand Down Expand Up @@ -394,6 +403,16 @@ public static void processRing(OrePrefix ringPrefix, Material material, IngotPro
.EUt(GTUtility.scaleVoltage(6 * getVoltageMultiplier(material), workingTier))
.buildAndRegister();
}

if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_RING)
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 4))
.output(ringPrefix, material)
.EUt(GTUtility.scaleVoltage(6 * getVoltageMultiplier(material), workingTier))
.duration((int) Math.max((material.getMass() / 2f) * 0.95f, 1f))
.buildAndRegister();
}
}

public static void processSpringSmall(OrePrefix springPrefix, Material material, IngotProperty property) {
Expand Down Expand Up @@ -507,6 +526,16 @@ public static void processStick(OrePrefix stickPrefix, Material material, DustPr
'X', new UnificationEntry(OrePrefix.stick, material));
}
}

if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_ROD)
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 2))
.output(stickPrefix, material)
.EUt(GTUtility.scaleVoltage(6 * getVoltageMultiplier(material), workingTier))
.duration((int) Math.max(material.getMass() * 0.95f, 1f))
.buildAndRegister();
}
}

public static void processLongStick(OrePrefix longStickPrefix, Material material, DustProperty property) {
Expand Down Expand Up @@ -571,6 +600,16 @@ public static void processLongStick(OrePrefix longStickPrefix, Material material
.buildAndRegister();
}
}

if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_ROD_LONG)
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L))
.output(longStickPrefix, material)
.EUt(GTUtility.scaleVoltage(64, workingTier))
.duration((int) Math.max(material.getMass() * 0.95f, 1f))
.buildAndRegister();
}
}

public static void processTurbine(OrePrefix toolPrefix, Material material, IngotProperty property) {
Expand Down Expand Up @@ -624,6 +663,16 @@ public static void processRound(OrePrefix roundPrefix, Material material, IngotP
.duration(100)
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
.buildAndRegister();

if (material.hasFluid() && material.getProperty(PropertyKey.FLUID).solidifiesFrom() != null) {
RecipeMaps.FLUID_SOLIDFICATION_RECIPES.recipeBuilder()
.notConsumable(MetaItems.SHAPE_MOLD_ROUND)
.fluidInputs(material.getProperty(PropertyKey.FLUID).solidifiesFrom(L / 9))
.output(roundPrefix, material)
.EUt(GTUtility.scaleVoltage(VA[ULV], workingTier))
.duration(90)
.buildAndRegister();
}
}

private static long getVoltageMultiplier(Material material) {
Expand Down
Loading
Loading