aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines/multiblock/logic
diff options
context:
space:
mode:
authorBlueWeabo <ilia.iliev2005@gmail.com>2023-04-01 17:06:06 +0300
committerGitHub <noreply@github.com>2023-04-01 16:06:06 +0200
commit655cc902d3df19a1ac2bfaa38cc928ed629d0171 (patch)
tree25e34b45705b8473e20af3f9b92af25cc87a1e0d /src/main/java/gregtech/common/tileentities/machines/multiblock/logic
parenta01d019ed97101936210f16c7a362d852f081f09 (diff)
downloadGT5-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.java64
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;
+ }
+}