Skip to content

Commit

Permalink
Fix sealed wood + more collisions (#3282)
Browse files Browse the repository at this point in the history
  • Loading branch information
FourIsTheNumber committed Sep 25, 2024
1 parent 5c5d94a commit d392aef
Show file tree
Hide file tree
Showing 19 changed files with 58 additions and 461 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,6 @@ public void run(Werkstoff werkstoff) {
* 30,
0);
RecipeMaps.electrolyzerRecipes.add(tRecipe);
RecipeMaps.electrolyzerNonCellRecipes.add(tRecipe);
}
if (werkstoffStats.isCentrifuge()) {
RecipeMaps.centrifugeRecipes.add(
Expand All @@ -230,28 +229,6 @@ public void run(Werkstoff werkstoff) {
.size())
* 5,
0));
GTRecipe tRecipe = new GTRecipe(
false,
stOutputs.toArray(new ItemStack[0]),
new ItemStack[] { input },
null,
null,
new FluidStack[] { flOutputs.size() > 0 ? flOutputs.get(0) : null },
null,
(int) Math.max(
1L,
Math.abs(
werkstoffStats.getProtons() / werkstoff.getContents()
.getValue()
.size())),
Math.min(
4,
werkstoff.getContents()
.getValue()
.size())
* 30,
0);
RecipeMaps.centrifugeNonCellRecipes.add(tRecipe);
}
if (werkstoff.getGenerationFeatures()
.hasChemicalRecipes()) {
Expand Down Expand Up @@ -304,28 +281,6 @@ public void run(Werkstoff werkstoff) {
.size())
* 5,
0));
GTRecipe tRecipe = new GTRecipe(
false,
stOutputs.toArray(new ItemStack[0]),
new ItemStack[] { input },
null,
null,
new FluidStack[] { flOutputs.size() > 0 ? flOutputs.get(0) : null },
null,
(int) Math.max(
1L,
Math.abs(
werkstoffStats.getProtons() / werkstoff.getContents()
.getValue()
.size())),
Math.min(
4,
werkstoff.getContents()
.getValue()
.size())
* 30,
0);
RecipeMaps.mixerNonCellRecipes.add(tRecipe);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import bartworks.API.SideReference;
import bartworks.client.textures.PrefixTextureLinker;
import bartworks.system.material.Werkstoff;
import bartworks.system.material.WerkstoffLoader;
import bartworks.system.material.werkstoff_loaders.IWerkstoffRunnable;
import gregtech.api.GregTechAPI;
import gregtech.api.enums.GTValues;
Expand Down Expand Up @@ -151,16 +152,18 @@ public void run(Werkstoff werkstoff) {
.eut(16)
.addTo(latheRecipes);

GTValues.RA.stdBuilder()
.itemInputs(werkstoff.get(plate), GTUtility.getIntegratedCircuit(1))
.itemOutputs(werkstoff.get(foil, 4))
.duration(
(int) Math.max(
werkstoff.getStats()
.getMass() * 1L,
1L))
.eut(24)
.addTo(benderRecipes);
if (werkstoff != WerkstoffLoader.Fluorophlogopite) {
GTValues.RA.stdBuilder()
.itemInputs(werkstoff.get(plate), GTUtility.getIntegratedCircuit(1))
.itemOutputs(werkstoff.get(foil, 4))
.duration(
(int) Math.max(
werkstoff.getStats()
.getMass(),
1L))
.eut(24)
.addTo(benderRecipes);
}

GTValues.RA.stdBuilder()
.itemInputs(werkstoff.get(ingot), GTUtility.getIntegratedCircuit(10))
Expand Down
93 changes: 0 additions & 93 deletions src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -817,99 +817,6 @@ public static void Remover() {

GTLog.out.print("Centrifuge done!\n");

// For Centrifuge (PA)
for (GTRecipe recipe : RecipeMaps.centrifugeNonCellRecipes.getAllRecipes()) {
ItemStack input = null;
if (recipe.mInputs.length > 0) input = recipe.mInputs[0];
if (!GTUtility.isStackValid(input)) continue;

int[] oreDict = OreDictionary.getOreIDs(input);
if (checkCombs && input.isItemEqual(GTBees.combs.getStackForType(CombType.DOB))) {
GTRecipe tRecipe = recipe.copy();
boolean modified = false;
for (int i = 0; i < tRecipe.mOutputs.length; i++) {
if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) {
tRecipe.mOutputs[i] = GTUtility
.copyAmount(tRecipe.mOutputs[i].stackSize * 2L, naquadahEarth.get(OrePrefixes.dustTiny, 1));
modified = true;
}
}
if (modified) {
GTLog.err.println("recipe edited: " + displayRecipe(tRecipe));
reAdd.add(tRecipe);
remove.add(recipe);
}
} else for (int oreDictID : oreDict) {
String oredictName = OreDictionary.getOreName(oreDictID);
if (!oredictName.startsWith("dustPureNaq") && !oredictName.startsWith("dustImpureNaq")
&& !oredictName.startsWith("dustSpace")
&& !oredictName.startsWith("dustNaq")) continue;

GTRecipe tRecipe = recipe.copy();
boolean modified = false;
for (int i = 0; i < tRecipe.mOutputs.length; i++) {
if (!GTUtility.isStackValid(tRecipe.mOutputs[i])) continue;
if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustTiny(1))) {
tRecipe.mOutputs[i] = GTUtility
.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustTiny, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustTiny(1))) {
tRecipe.mOutputs[i] = GTUtility.copyAmount(
tRecipe.mOutputs[i].stackSize * 2,
enrichedNaquadahEarth.get(OrePrefixes.dustTiny, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustTiny(1))) {
tRecipe.mOutputs[i] = GTUtility
.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dustTiny, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDust(1))) {
tRecipe.mOutputs[i] = GTUtility
.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dust, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDust(1))) {
tRecipe.mOutputs[i] = GTUtility.copyAmount(
tRecipe.mOutputs[i].stackSize * 2,
enrichedNaquadahEarth.get(OrePrefixes.dust, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDust(1))) {
tRecipe.mOutputs[i] = GTUtility
.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadriaEarth.get(OrePrefixes.dust, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadah.getDustSmall(1))) {
tRecipe.mOutputs[i] = GTUtility
.copyAmount(tRecipe.mOutputs[i].stackSize * 2, naquadahEarth.get(OrePrefixes.dustSmall, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.NaquadahEnriched.getDustSmall(1))) {
tRecipe.mOutputs[i] = GTUtility.copyAmount(
tRecipe.mOutputs[i].stackSize * 2,
enrichedNaquadahEarth.get(OrePrefixes.dustSmall, 1));
} else if (tRecipe.mOutputs[i].isItemEqual(Materials.Naquadria.getDustSmall(1))) {
tRecipe.mOutputs[i] = GTUtility.copyAmount(
tRecipe.mOutputs[i].stackSize * 2,
naquadriaEarth.get(OrePrefixes.dustSmall, 1));

} else {
continue;
}
modified = true;
}
if (modified) {
GTLog.err.println("recipe edited: " + displayRecipe(tRecipe));
reAdd.add(tRecipe);
remove.add(recipe);
}
break;

}

}
RecipeMaps.centrifugeNonCellRecipes.getBackend()
.removeRecipes(remove);
reAdd.forEach(RecipeMaps.centrifugeNonCellRecipes::add);
RecipeMaps.centrifugeNonCellRecipes.getBackend()
.reInit();

GTLog.out.print(GoodGenerator.MOD_ID + ": Replace " + remove.size() + "! ");

remove.clear();
reAdd.clear();

GTLog.out.print("Centrifuge (PA) done!\n");

// For Hammer
for (GTRecipe recipe : RecipeMaps.hammerRecipes.getAllRecipes()) {
ItemStack input = recipe.mInputs[0];
Expand Down
23 changes: 0 additions & 23 deletions src/main/java/gregtech/api/recipe/RecipeMaps.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@
import gregtech.api.util.GTOreDictUnificator;
import gregtech.api.util.GTRecipe;
import gregtech.api.util.GTRecipeConstants;
import gregtech.api.util.GTRecipeMapUtil;
import gregtech.api.util.GTUtility;
import gregtech.common.tileentities.machines.multi.purification.PurifiedWaterHelpers;
import gregtech.nei.formatter.FuelSpecialValueFormatter;
Expand Down Expand Up @@ -1098,25 +1097,6 @@ && isArrayEmptyOrNull(b.getFluidOutputs())
.maxIO(1, 1, 0, 0)
.neiSpecialInfoFormatter(FuelSpecialValueFormatter.INSTANCE)
.build();
public static final RecipeMap<RecipeMapBackend> electrolyzerNonCellRecipes = RecipeMapBuilder
.of("gt.recipe.largeelectrolyzer")
.maxIO(1, 6, 1, 6)
.disableRegisterNEI()
.recipeEmitter(GTRecipeMapUtil::buildRecipeForMultiblock)
.build();
public static final RecipeMap<RecipeMapBackend> centrifugeNonCellRecipes = RecipeMapBuilder
.of("gt.recipe.largecentrifuge")
.maxIO(2, 6, 1, 6)
.disableOptimize()
.disableRegisterNEI()
.recipeEmitter(GTRecipeMapUtil::buildRecipeForMultiblock)
.build();
public static final RecipeMap<RecipeMapBackend> mixerNonCellRecipes = RecipeMapBuilder.of("gt.recipe.largemixer")
.maxIO(9, 4, 6, 4)
.disableOptimize()
.disableRegisterNEI()
.recipeEmitter(GTRecipeMapUtil::buildRecipeForMultiblockNoCircuit)
.build();
public static final RecipeMap<LargeBoilerFuelBackend> largeBoilerFakeFuels = RecipeMapBuilder
.of("gt.recipe.largeboilerfakefuels", LargeBoilerFuelBackend::new)
.maxIO(1, 1, 0, 0)
Expand Down Expand Up @@ -1230,9 +1210,6 @@ && isArrayEmptyOrNull(b.getFluidOutputs())
.build();

static {
RecipeMaps.centrifugeRecipes.addDownstream(RecipeMaps.centrifugeNonCellRecipes.deepCopyInput());
RecipeMaps.mixerRecipes.addDownstream(RecipeMaps.mixerNonCellRecipes.deepCopyInput());
RecipeMaps.electrolyzerRecipes.addDownstream(RecipeMaps.electrolyzerNonCellRecipes.deepCopyInput());
RecipeMaps.dieselFuels.addDownstream(
IRecipeMap.newRecipeMap(
b -> b.build()
Expand Down
11 changes: 8 additions & 3 deletions src/main/java/gregtech/api/util/GTForestryCompat.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

import java.util.Map;

import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

import forestry.api.recipes.ICentrifugeRecipe;
Expand Down Expand Up @@ -170,10 +172,13 @@ public static void transferCentrifugeRecipes() {
public static void transferSqueezerRecipes() {
try {
for (ISqueezerRecipe tRecipe : RecipeManagers.squeezerManager.recipes()) {
if ((tRecipe.getResources().length == 1) && (tRecipe.getFluidOutput() != null)
&& (tRecipe.getResources()[0] != null)) {
ItemStack[] resources = tRecipe.getResources();
if ((resources.length == 1) && (tRecipe.getFluidOutput() != null) && (resources[0] != null)) {
Item input = resources[0].getItem();
if (input == Items.pumpkin_seeds || input == Items.melon_seeds || input == Items.wheat_seeds)
return;
GTRecipeBuilder recipeBuilder = GTValues.RA.stdBuilder();
recipeBuilder.itemInputs(tRecipe.getResources()[0]);
recipeBuilder.itemInputs(resources[0]);
if (tRecipe.getRemnants() != null) {
recipeBuilder.itemOutputs(tRecipe.getRemnants())
.outputChances((int) (tRecipe.getRemnantsChance() * 10000));
Expand Down
34 changes: 1 addition & 33 deletions src/main/java/gregtech/common/items/ItemDrop.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,38 +107,20 @@ public void initDropsRecipes() {
ItemStack tDrop;

tDrop = getStackForType(DropType.OIL);
addProcessLV(
tDrop,
Materials.OilHeavy.getFluid(100L),
GTModHandler.getModItem(Forestry.ID, "propolis", 1L, 0),
3000,
8);
RecipeManagers.squeezerManager.addRecipe(
40,
new ItemStack[] { tDrop },
Materials.OilHeavy.getFluid(100L),
GTModHandler.getModItem(Forestry.ID, "propolis", 1L, 0),
30);
tDrop = getStackForType(DropType.COOLANT);
addProcessLV(
tDrop,
new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100),
GTModHandler.getModItem(MagicBees.ID, "propolis", 1L, 0),
3000,
8);
RecipeManagers.squeezerManager.addRecipe(
40,
new ItemStack[] { tDrop },
new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100),
GTModHandler.getModItem(MagicBees.ID, "propolis", 1L, 0),
30);
tDrop = getStackForType(DropType.HOT_COOLANT);
addProcessLV(
tDrop,
new FluidStack(FluidRegistry.getFluid("ic2hotcoolant"), 100),
GTModHandler.getModItem(MagicBees.ID, "propolis", 1L, 2),
3000,
8);
RecipeManagers.squeezerManager.addRecipe(
40,
new ItemStack[] { tDrop },
Expand All @@ -153,13 +135,6 @@ public void initDropsRecipes() {
1500,
48);
tDrop = getStackForType(DropType.LAPIS);
addProcessLV(
tDrop,
new FluidStack(FluidRegistry.getFluid("ic2coolant"), 200),
GTModHandler.getModItem(MagicBees.ID, "propolis", 1L, 3),
5000,
1200,
2);
RecipeManagers.squeezerManager.addRecipe(
400,
new ItemStack[] { tDrop },
Expand All @@ -174,17 +149,10 @@ public void initDropsRecipes() {
3000,
8);
tDrop = getStackForType(DropType.OXYGEN);
addProcessLV(
tDrop,
new FluidStack(FluidRegistry.getFluid("liquidoxygen"), 100),
GTModHandler.getModItem(ExtraBees.ID, "propolis", 1L, 2),
250,
1200,
8);
RecipeManagers.squeezerManager.addRecipe(
400,
new ItemStack[] { tDrop },
new FluidStack(FluidRegistry.getFluid("ic2coolant"), 100),
new FluidStack(FluidRegistry.getFluid("liquidoxygen"), 100),
GTModHandler.getModItem(ExtraBees.ID, "propolis", 1L, 2),
30);
tDrop = getStackForType(DropType.ENDERGOO);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDic
break;
}

// Blacklist materials which are handled by Werkstoff loader
if (aMaterial == Materials.Salt || aMaterial == Materials.RockSalt || aMaterial == Materials.Spodumene)
return;

switch (aMaterial.mName) {
case "Tanzanite", "Sapphire", "Olivine", "GreenSapphire", "Opal", "Amethyst", "Emerald", "Ruby", "Amber", "Diamond", "FoolsRuby", "BlueTopaz", "GarnetRed", "Topaz", "Jasper", "GarnetYellow" -> GTValues.RA
.stdBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDic
boolean aSpecialRecipeReq = aMaterial.contains(SubTag.MORTAR_GRINDABLE);
boolean aFuelPower = aMaterial.mFuelPower > 0;

// Blacklist materials which are handled by Werkstoff loader
if (aMaterial == Materials.Salt || aMaterial == Materials.RockSalt || aMaterial == Materials.Spodumene) return;

switch (aPrefix) {
case gem -> {
// fuel recipes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ public ProcessingLens() {
@Override
public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName,
ItemStack aStack) {
// Blacklist materials which are handled by Werkstoff loader
if (aMaterial == Materials.Salt || aMaterial == Materials.RockSalt || aMaterial == Materials.Spodumene) return;

switch (aMaterial.mName) {
case "Diamond", "Glass" -> {
GTValues.RA.stdBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,16 @@ public ProcessingPlank() {
OrePrefixes.plank.add(this);
}

// Gross nasty hack to prevent spam registry of oredicted colored woods
private boolean registeredEXU = false;

@Override
public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName,
ItemStack aStack) {
if (aModName != null && aModName.equals("ExtraUtilities")) {
if (registeredEXU) return;
else registeredEXU = true;
}
if (aOreDictName.startsWith("plankWood")) {
GTValues.RA.stdBuilder()
.itemInputs(GTUtility.copyAmount(1, aStack))
Expand Down
Loading

0 comments on commit d392aef

Please sign in to comment.