diff options
| author | BlueWeabo <ilia.iliev2005@gmail.com> | 2023-04-01 17:06:06 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-01 16:06:06 +0200 |
| commit | 655cc902d3df19a1ac2bfaa38cc928ed629d0171 (patch) | |
| tree | 25e34b45705b8473e20af3f9b92af25cc87a1e0d /src/main/java/gregtech/common/tileentities/machines/multiblock/logic | |
| parent | a01d019ed97101936210f16c7a362d852f081f09 (diff) | |
| download | GT5-Unofficial-655cc902d3df19a1ac2bfaa38cc928ed629d0171.tar.gz GT5-Unofficial-655cc902d3df19a1ac2bfaa38cc928ed629d0171.tar.bz2 GT5-Unofficial-655cc902d3df19a1ac2bfaa38cc928ed629d0171.zip | |
Implement Power Logic, Pollution Logic and Processing Logic for MuTEs and many other things (#1823)
* update bs 2
* fuel consumption and energy implementation. clean up
* don't register XD
* some clean up
* coke oven work
* semi-working coke oven
somehow i broke the activating of the multiblock
* power logic
* PowerLogic
* clean up, saving loading nbt
* small cleanup and pollution
* pollution working :P
* Energy mostly working, wallsharing
* processing logic
* fix npe and deregister
* review requests
* missed one
* remove extra 0
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines/multiblock/logic')
| -rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multiblock/logic/CokeOvenProcessingLogic.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multiblock/logic/CokeOvenProcessingLogic.java b/src/main/java/gregtech/common/tileentities/machines/multiblock/logic/CokeOvenProcessingLogic.java new file mode 100644 index 0000000000..5997520884 --- /dev/null +++ b/src/main/java/gregtech/common/tileentities/machines/multiblock/logic/CokeOvenProcessingLogic.java @@ -0,0 +1,64 @@ +package gregtech.common.tileentities.machines.multiblock.logic; + +import static net.minecraftforge.oredict.OreDictionary.getOreID; +import static net.minecraftforge.oredict.OreDictionary.getOreIDs; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +import gregtech.api.logic.ProcessingLogic; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; + +public class CokeOvenProcessingLogic extends ProcessingLogic { + + private static final int NORMAL_RECIPE_TIME = 1800; + private static final int WOOD_ORE_ID = getOreID("logWood"); + private static final int COAL_ORE_ID = getOreID("coal"); + private static final int COAL_BLOCK_ORE_ID = getOreID("blockCoal"); + private static final int SUGARCANE_ORE_ID = getOreID("sugarcane"); + private static final int CACTUS_ORE_ID = getOreID("blockCactus"); + private static final int CACTUS_CHARCOAL_ORE_ID = getOreID("itemCharcoalCactus"); + private static final int SUGAR_CHARCOAL_ORE_ID = getOreID("itemCharcoalSugar"); + private int timeMultiplier = 1; + + @Override + public boolean process() { + if (inputItems == null || inputItems[0] == null) { + return false; + } + ItemStack input = inputItems[0]; + int originalStackSize = input.stackSize; + ItemStack output = findRecipe(input); + if (currentOutputItems != null && currentOutputItems[0] != null && !currentOutputItems[0].isItemEqual(output)) { + return false; + } + input.stackSize -= 1; + setDuration(NORMAL_RECIPE_TIME * timeMultiplier); + setOutputItems(output); + + return originalStackSize > input.stackSize; + } + + protected ItemStack findRecipe(ItemStack input) { + for (int oreId : getOreIDs(input)) { + if (oreId == COAL_ORE_ID) { + return GT_OreDictUnificator.get("fuelCoke", null, 1); + } else if (oreId == COAL_BLOCK_ORE_ID) { + timeMultiplier = 9; + return GT_ModHandler.getModItem("Railcraft", "cube", 1, 0); + } else if (oreId == WOOD_ORE_ID) { + return new ItemStack(Items.coal, 1, 1); + } else if (oreId == SUGARCANE_ORE_ID) { + return GT_OreDictUnificator.get("itemCharcoalSugar", null, 1); + } else if (oreId == SUGAR_CHARCOAL_ORE_ID) { + return GT_OreDictUnificator.get("itemCokeSugar", null, 1); + } else if (oreId == CACTUS_ORE_ID) { + return GT_OreDictUnificator.get("itemCharcoalCactus", null, 1); + } else if (oreId == CACTUS_CHARCOAL_ORE_ID) { + return GT_OreDictUnificator.get("itemCokeCactus", null, 1); + } + } + return null; + } +} |
