diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod')
5 files changed, 82 insertions, 202 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java index ef3cb3ba48..7db3262531 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java @@ -9,14 +9,12 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; -import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import java.util.function.BiPredicate; import java.util.function.Function; -import java.util.stream.Collectors; import javax.annotation.Nullable; @@ -82,7 +80,6 @@ import gtPlusPlus.api.objects.minecraft.BlockPos; import gtPlusPlus.core.config.ASMConfiguration; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.preloader.PreloaderCore; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.METHatchAirIntake; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchInputBattery; @@ -1591,12 +1588,7 @@ public abstract class GTPPMultiBlockBase<T extends MTEExtendedPowerMultiBlockBas public long count(GTPPMultiBlockBase<?> t) { return t.mTecTechEnergyHatches.size(); } - },; - - @SuppressWarnings("unchecked") - private static <T> Class<T> retype(Class<?> clazz) { - return (Class<T>) clazz; - } + }; private final List<? extends Class<? extends IMetaTileEntity>> mMteClasses; private final IGTHatchAdder<? super GTPPMultiBlockBase<?>> mAdder; @@ -1608,15 +1600,6 @@ public abstract class GTPPMultiBlockBase<T extends MTEExtendedPowerMultiBlockBas this.mAdder = aAdder; } - GTPPHatchElement(IGTHatchAdder<? super GTPPMultiBlockBase<?>> aAdder, String... aClassNames) { - this.mMteClasses = Arrays.stream(aClassNames) - .map(ReflectionUtils::getClass) - .filter(Objects::nonNull) - .<Class<? extends IMetaTileEntity>>map(GTPPHatchElement::retype) - .collect(Collectors.toList()); - this.mAdder = aAdder; - } - @Override public List<? extends Class<? extends IMetaTileEntity>> mteClasses() { return mMteClasses; diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java index 4b9b5c0ae4..7f048b6847 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java @@ -13,14 +13,11 @@ import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import static gtPlusPlus.core.util.data.ArrayUtils.removeNulls; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.WeightedRandomFishable; import net.minecraftforge.fluids.FluidStack; import org.jetbrains.annotations.NotNull; @@ -46,6 +43,7 @@ import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; import gregtech.api.util.ParallelHelper; +import gregtech.api.util.ReflectionUtil; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.config.Configuration; @@ -53,7 +51,6 @@ import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import ic2.core.init.BlocksItems; import ic2.core.init.InternalName; @@ -61,15 +58,22 @@ import ic2.core.init.InternalName; public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFishingPond> implements ISurvivalConstructable { - private boolean isUsingControllerCircuit = false; - private static final Item circuit = GTUtility.getIntegratedCircuit(0) + public static final int FISH_MODE = 14; + public static final int JUNK_MODE = 15; + public static final int TREASURE_MODE = 16; + private static final Item CONTROL_CIRCUIT = GTUtility.getIntegratedCircuit(0) .getItem(); + private static IStructureDefinition<MTEIndustrialFishingPond> STRUCTURE_DEFINITION; + + private boolean isUsingControllerCircuit = false; private int mCasing; - private static IStructureDefinition<MTEIndustrialFishingPond> STRUCTURE_DEFINITION = null; + private int mMode = FISH_MODE; + private int mMax = 8; + private static final Class<?> cofhWater; static { - cofhWater = ReflectionUtils.getClass("cofh.asmhooks.block.BlockWater"); + cofhWater = ReflectionUtil.getClass("cofh.asmhooks.block.BlockWater"); } public MTEIndustrialFishingPond(final int aID, final String aName, final String aNameRegional) { @@ -97,9 +101,9 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi .addInfo("Controller Block for the Fishing Pond") .addInfo("Can process (Tier + 1) * 2 recipes") .addInfo("Put a numbered circuit into the input bus.") - .addInfo("Circuit 14 for Fish") - .addInfo("Circuit 15 for Junk") - .addInfo("Circuit 16 for Treasure") + .addInfo("Circuit " + FISH_MODE + " for Fish") + .addInfo("Circuit " + JUNK_MODE + " for Junk") + .addInfo("Circuit " + TREASURE_MODE + " for Treasure") .addInfo("Need to be filled with water.") .addInfo("Will automatically fill water from input hatch.") .addPollutionAmount(getPollutionPerSecond(null)) @@ -194,7 +198,7 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi public @NotNull CheckRecipeResult checkProcessing() { ItemStack controllerStack = getControllerSlot(); if (controllerStack != null) { - if (controllerStack.getItem() == circuit) { + if (controllerStack.getItem() == CONTROL_CIRCUIT) { this.isUsingControllerCircuit = true; this.mMode = controllerStack.getItemDamage(); } else { @@ -203,9 +207,6 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi } else { this.isUsingControllerCircuit = false; } - if (!hasGenerateRecipes) { - generateRecipes(); - } if (!checkForWater()) { return SimpleCheckRecipeResult.ofFailure("no_water"); } @@ -218,9 +219,9 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi long tEnergy = getMaxInputEnergy(); - getCircuit(tItemInputs); + setModeFromInputStacks(tItemInputs); - ItemStack[] mFishOutput = generateLoot(this.mMode); + ItemStack[] mFishOutput = generateLoot(); mFishOutput = removeNulls(mFishOutput); GTRecipe g = new GTRecipe( true, @@ -281,45 +282,28 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi return Configuration.pollution.pollutionPerSecondMultiIndustrialFishingPond; } - @Override - public boolean explodesOnComponentBreak(final ItemStack aStack) { - return false; - } - - public Block getCasingBlock() { + private Block getCasingBlock() { return ModBlocks.blockCasings3Misc; } - public byte getCasingMeta() { + private byte getCasingMeta() { return 0; } - public int getCasingTextureIndex() { + private int getCasingTextureIndex() { return TAE.GTPP_INDEX(32); } - public boolean checkForWater() { + private boolean checkForWater() { // Get Facing direction IGregTechTileEntity aBaseMetaTileEntity = this.getBaseMetaTileEntity(); - int mDirectionX = aBaseMetaTileEntity.getBackFacing().offsetX; - int mCurrentDirectionX; - int mCurrentDirectionZ; - int mOffsetX_Lower = 0; - int mOffsetX_Upper = 0; - int mOffsetZ_Lower = 0; - int mOffsetZ_Upper = 0; - - mCurrentDirectionX = 4; - mCurrentDirectionZ = 4; - - mOffsetX_Lower = -4; - mOffsetX_Upper = 4; - mOffsetZ_Lower = -4; - mOffsetZ_Upper = 4; - - // if (aBaseMetaTileEntity.fac) - + final int mCurrentDirectionX = 4; + final int mCurrentDirectionZ = 4; + final int mOffsetX_Lower = -4; + final int mOffsetX_Upper = 4; + final int mOffsetZ_Lower = -4; + final int mOffsetZ_Upper = 4; final int xDir = aBaseMetaTileEntity.getBackFacing().offsetX * mCurrentDirectionX; final int zDir = aBaseMetaTileEntity.getBackFacing().offsetZ * mCurrentDirectionZ; @@ -336,13 +320,12 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi if (stored.amount >= 1000) { // Utils.LOG_WARNING("Going to try swap an air block for water from inut bus."); stored.amount -= 1000; - Block fluidUsed = Blocks.water; aBaseMetaTileEntity.getWorld() .setBlock( aBaseMetaTileEntity.getXCoord() + xDir + i, aBaseMetaTileEntity.getYCoord() + h, aBaseMetaTileEntity.getZCoord() + zDir + j, - fluidUsed); + Blocks.water); } } } @@ -365,119 +348,57 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi || (cofhWater != null && cofhWater.isAssignableFrom(block.getClass()) && meta != 0); } - private static ArrayList<ArrayList<WeightedRandomFishable>> categories = new ArrayList<>(); - private static ArrayList<WeightedRandomFishable> categoryFish = new ArrayList<>(); - private static ArrayList<WeightedRandomFishable> categoryJunk = new ArrayList<>(); - private static ArrayList<WeightedRandomFishable> categoryLoot = new ArrayList<>(); - private static boolean hasGenerateRecipes = false; - private int mMode = 14; - private int mMax = 8; - - private void generateRecipes() { - if (hasGenerateRecipes) return; - - categories.add(categoryFish); - categories.add(categoryJunk); - categories.add(categoryLoot); - categoryFish.addAll(FishPondFakeRecipe.fish); - categoryJunk.addAll(FishPondFakeRecipe.junk); - categoryLoot.addAll(FishPondFakeRecipe.treasure); - hasGenerateRecipes = true; - } - - private int getCircuit(ItemStack[] t) { - if (!this.isUsingControllerCircuit) { - for (ItemStack j : t) { - if (j.getItem() == GTUtility.getIntegratedCircuit(0) - .getItem()) { - // Fish - if (j.getItemDamage() == 14) { - mMax = 8 + (this.getMaxParallelRecipes() - 2); - this.mMode = 14; - break; - } - // Junk - else if (j.getItemDamage() == 15) { - this.mMode = 15; - mMax = 4; - break; - } - // Loot - else if (j.getItemDamage() == 16) { - this.mMode = 16; - mMax = 4; - break; - } else { - this.mMode = 0; - mMax = 0; - break; - } + private void setModeFromInputStacks(ItemStack[] stacks) { + if (this.isUsingControllerCircuit) return; + for (ItemStack stack : stacks) { + if (stack.getItem() == CONTROL_CIRCUIT) { + if (stack.getItemDamage() == FISH_MODE) { + mMode = FISH_MODE; + mMax = 8 + (this.getMaxParallelRecipes() - 2); + return; + } else if (stack.getItemDamage() == JUNK_MODE) { + mMode = JUNK_MODE; + mMax = 4; + return; + } else if (stack.getItemDamage() == TREASURE_MODE) { + mMode = TREASURE_MODE; + mMax = 4; + return; } else { - this.mMode = 0; + mMode = 0; mMax = 0; - break; + return; } + } else { + mMode = 0; + mMax = 0; + break; } } - return this.mMode; } - // reflection map - private static Map<WeightedRandomFishable, ItemStack> reflectiveFishMap = new HashMap<>(); - - private ItemStack reflectiveFish(WeightedRandomFishable y) { - if (reflectiveFishMap.containsKey(y)) { - return reflectiveFishMap.get(y); + private ItemStack[] generateLoot() { + if (this.mMode == FISH_MODE) { + return getLootFromList(FishPondFakeRecipe.fish, (65 - getMaxParallelRecipes())); + } else if (this.mMode == JUNK_MODE) { + return getLootFromList(FishPondFakeRecipe.junk, 200); + } else if (this.mMode == TREASURE_MODE) { + return getLootFromList(FishPondFakeRecipe.treasure, 100); + } else { + return null; } - ItemStack t; - try { - t = (ItemStack) ReflectionUtils.getField(WeightedRandomFishable.class, "field_150711_b") - .get(y); - ItemStack k = ItemUtils.getSimpleStack(t, 1); - reflectiveFishMap.put(y, k); - return t; - } catch (IllegalArgumentException | IllegalAccessException e) {} - return null; } - private ItemStack[] generateLoot(int mode) { - ItemStack[] mFishOutput = new ItemStack[this.mMax]; - if (this.mMode == 14) { - for (int k = 0; k < this.mMax; k++) { - if (mFishOutput[k] == null) for (WeightedRandomFishable g : categoryFish) { - if (MathUtils.randInt(0, (65 - getMaxParallelRecipes())) <= 2) { - ItemStack t = reflectiveFish(g); - if (t != null) { - mFishOutput[k] = ItemUtils.getSimpleStack(t, 1); - } - } - } - } - } else if (this.mMode == 15) { - for (int k = 0; k < this.mMax; k++) { - if (mFishOutput[k] == null) for (WeightedRandomFishable g : categoryJunk) { - if (MathUtils.randInt(0, 100) <= 1) { - ItemStack t = reflectiveFish(g); - if (t != null) { - mFishOutput[k] = ItemUtils.getSimpleStack(t, 1); - } - } - } - } - } else if (this.mMode == 16) { - for (int k = 0; k < this.mMax; k++) { - if (mFishOutput[k] == null) for (WeightedRandomFishable g : categoryLoot) { - if (MathUtils.randInt(0, 1000) <= 2) { - ItemStack t = reflectiveFish(g); - if (t != null) { - mFishOutput[k] = ItemUtils.getSimpleStack(t, 1); - } - } + private ItemStack[] getLootFromList(ArrayList<ItemStack> list, int max) { + ItemStack[] out = new ItemStack[this.mMax]; + for (int i = 0; i < this.mMax; i++) { + for (ItemStack stack : list) { + if (MathUtils.randInt(0, max) <= 2) { + out[i] = ItemUtils.getSimpleStack(stack, 1); + break; } } - } else { - mFishOutput = null; } - return mFishOutput; + return out; } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java index f2f0bcb104..c9af07ecf3 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java @@ -43,6 +43,7 @@ import gregtech.api.util.GTRecipe; import gregtech.api.util.GTStreamUtil; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.api.util.ReflectionUtil; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.config.Configuration; @@ -50,7 +51,6 @@ import gtPlusPlus.core.item.chemistry.AgriculturalChem; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.loaders.recipe.RecipeLoaderAlgaeFarm; @@ -67,7 +67,7 @@ public class MTEAlgaePondBase extends GTPPMultiBlockBase<MTEAlgaePondBase> imple private static final Class<?> cofhWater; static { - cofhWater = ReflectionUtils.getClass("cofh.asmhooks.block.BlockWater"); + cofhWater = ReflectionUtil.getClass("cofh.asmhooks.block.BlockWater"); } public MTEAlgaePondBase(final int aID, final String aName, final String aNameRegional) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java index 89fdf23ec6..5f5160b6a4 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java @@ -7,15 +7,12 @@ import static gregtech.api.recipe.RecipeMaps.maceratorRecipes; import static gregtech.api.util.GTRecipeBuilder.SECONDS; import java.util.ArrayList; -import java.util.Map; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; -import org.apache.commons.lang3.reflect.FieldUtils; - import gregtech.api.enums.GTValues; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; @@ -33,7 +30,7 @@ public class RecipeGenRecycling implements Runnable { public static ArrayList<Runnable> mQueuedRecyclingGenerators = new ArrayList<>(); public static void executeGenerators() { - if (mQueuedRecyclingGenerators.size() > 0) { + if (!mQueuedRecyclingGenerators.isEmpty()) { for (Runnable R : mQueuedRecyclingGenerators) { R.run(); } @@ -41,21 +38,15 @@ public class RecipeGenRecycling implements Runnable { } final Material toGenerate; - public static Map<String, ItemStack> mNameMap; public RecipeGenRecycling(final Material M) { this.toGenerate = M; - if (mNameMap == null) { - mNameMap = this.getNameMap(); - } mQueuedRecyclingGenerators.add(this); } @Override public void run() { - if (mNameMap != null) { - generateRecipes(this.toGenerate); - } + generateRecipes(this.toGenerate); } public static void generateRecipes(final Material material) { @@ -253,12 +244,14 @@ public class RecipeGenRecycling implements Runnable { Logger.modLogger.warn("Returning Null. Method: ", new Exception()); return null; } - if (!mNameMap.containsKey(aName.toString()) && aMentionPossibleTypos) { + if (!GTOreDictUnificator.getName2StackMap() + .containsKey(aName.toString()) && aMentionPossibleTypos) { Logger.WARNING("Unknown Key for Unification, Typo? " + aName); } return GTUtility.copyAmount( aAmount, - new Object[] { mNameMap.get(aName.toString()), getFirstOre(aName, aAmount), aReplacement }); + new Object[] { GTOreDictUnificator.getName2StackMap() + .get(aName.toString()), getFirstOre(aName, aAmount), aReplacement }); } public static ItemStack getFirstOre(final Object aName, final long aAmount) { @@ -266,7 +259,8 @@ public class RecipeGenRecycling implements Runnable { Logger.modLogger.warn("Returning Null. Method: ", new Exception()); return null; } - final ItemStack tStack = mNameMap.get(aName.toString()); + final ItemStack tStack = GTOreDictUnificator.getName2StackMap() + .get(aName.toString()); if (GTUtility.isStackValid(tStack)) { Logger.WARNING("Found valid stack."); return GTUtility.copyAmount(aAmount, new Object[] { tStack }); @@ -289,23 +283,6 @@ public class RecipeGenRecycling implements Runnable { return rList; } - @SuppressWarnings("unchecked") - public Map<String, ItemStack> getNameMap() { - Map<String, ItemStack> tempMap; - try { - tempMap = (Map<String, ItemStack>) FieldUtils - .readStaticField(GTOreDictUnificator.class, "sName2StackMap", true); - if (tempMap != null) { - Logger.WARNING("Found 'sName2StackMap' in GTOreDictUnificator.class."); - return tempMap; - } - } catch (final IllegalAccessException e) { - e.printStackTrace(); - } - Logger.WARNING("Invalid map stored in GTOreDictUnificator.class, unable to find sName2StackMap field."); - return null; - } - public static ItemStack getItemStackOfAmountFromOreDictNoBroken(String oredictName, final int amount) { try { diff --git a/src/main/java/gtPlusPlus/xmod/thermalfoundation/item/TFItems.java b/src/main/java/gtPlusPlus/xmod/thermalfoundation/item/TFItems.java index 556b11483f..9c8e7137c3 100644 --- a/src/main/java/gtPlusPlus/xmod/thermalfoundation/item/TFItems.java +++ b/src/main/java/gtPlusPlus/xmod/thermalfoundation/item/TFItems.java @@ -7,9 +7,9 @@ import cofh.core.item.ItemBase; import cofh.core.item.ItemBucket; import cofh.core.util.energy.FurnaceFuelHandler; import cofh.core.util.fluid.BucketHandler; +import gregtech.api.enums.Mods; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.thermalfoundation.block.TFBlocks; import gtPlusPlus.xmod.thermalfoundation.fluid.TFFluids; @@ -45,9 +45,8 @@ public class TFItems { dustPyrotheum = itemMaterial.addOreDictItem(3, "dustPyrotheum"); dustCryotheum = itemMaterial.addOreDictItem(4, "dustCryotheum"); - if (ReflectionUtils.doesClassExist("cofh.core.util.energy.FurnaceFuelHandler")) { - FurnaceFuelHandler.registerFuel(dustPyrotheum, 2400); // cofh.core.util.energy.FurnaceFuelHandler.registerFuel(ItemStack, - // int) + if (Mods.COFHCore.isModLoaded()) { + FurnaceFuelHandler.registerFuel(dustPyrotheum, 2400); } ItemUtils.addItemToOreDictionary(rodBlizz, "stickBlizz"); |