diff --git a/gradle.properties b/gradle.properties index ff1aaa7..e693001 100644 --- a/gradle.properties +++ b/gradle.properties @@ -77,7 +77,7 @@ accessTransformersFile = usesMixins = true # Adds some debug arguments like verbose output and class export. -usesMixinDebug = true +usesMixinDebug = false # Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise. mixinPlugin = mixins.MixinPlugin diff --git a/src/main/java/com/github/wohaopa/GTNHModify/CommonProxy.java b/src/main/java/com/github/wohaopa/GTNHModify/CommonProxy.java index e1e3eec..e89d75e 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/CommonProxy.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/CommonProxy.java @@ -1,5 +1,6 @@ package com.github.wohaopa.GTNHModify; +import com.github.wohaopa.GTNHModify.config.Config; import com.github.wohaopa.GTNHModify.handler.Handlers; import cpw.mods.fml.common.event.FMLInitializationEvent; @@ -11,7 +12,9 @@ public class CommonProxy { // preInit "Run before anything else. Read your config, create blocks, items, etc, and register them with the // GameRegistry." (Remove if not needed) - public void preInit(FMLPreInitializationEvent event) {} + public void preInit(FMLPreInitializationEvent event) { + Config.init(event.getSuggestedConfigurationFile()); + } // load "Do your mod setup. Build whatever data structures you care about. Register recipes." (Remove if not needed) public void init(FMLInitializationEvent event) {} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java b/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java index 6ea898e..5f42850 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/GTNHModifyMod.java @@ -13,6 +13,7 @@ @Mod( modid = GTNHModifyMod.MODID, version = Tags.VERSION, + guiFactory = "com.github.wohaopa.GTNHModify.client.gui.GuiFactory", name = "GTNHModify", acceptedMinecraftVersions = "[1.7.10]", dependencies = "required-after:dreamcraft") diff --git a/src/main/java/com/github/wohaopa/GTNHModify/client/gui/GTNHModifyGuiConfig.java b/src/main/java/com/github/wohaopa/GTNHModify/client/gui/GTNHModifyGuiConfig.java new file mode 100644 index 0000000..909dd07 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/client/gui/GTNHModifyGuiConfig.java @@ -0,0 +1,24 @@ +package com.github.wohaopa.GTNHModify.client.gui; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraftforge.common.config.ConfigElement; +import net.minecraftforge.common.config.Configuration; + +import com.github.wohaopa.GTNHModify.GTNHModifyMod; +import com.github.wohaopa.GTNHModify.config.Config; + +import cpw.mods.fml.client.config.GuiConfig; + +public class GTNHModifyGuiConfig extends GuiConfig { + + @SuppressWarnings({ "unchecked", "rawtypes" }) + public GTNHModifyGuiConfig(GuiScreen guiScreen) { + super( + guiScreen, + new ConfigElement(Config.config.getCategory(Configuration.CATEGORY_GENERAL)).getChildElements(), + GTNHModifyMod.MODID, + false, + false, + GuiConfig.getAbridgedConfigPath(Config.config.toString())); + } +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/client/gui/GuiFactory.java b/src/main/java/com/github/wohaopa/GTNHModify/client/gui/GuiFactory.java new file mode 100644 index 0000000..1645f74 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/client/gui/GuiFactory.java @@ -0,0 +1,31 @@ +package com.github.wohaopa.GTNHModify.client.gui; + +import java.util.Set; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; + +import cpw.mods.fml.client.IModGuiFactory; + +public class GuiFactory implements IModGuiFactory { + + @Override + public void initialize(Minecraft minecraftInstance) { + + } + + @Override + public Class mainConfigGuiClass() { + return GTNHModifyGuiConfig.class; + } + + @Override + public Set runtimeGuiCategories() { + return null; + } + + @Override + public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) { + return null; + } +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/config/Config.java b/src/main/java/com/github/wohaopa/GTNHModify/config/Config.java new file mode 100644 index 0000000..b4589d8 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/config/Config.java @@ -0,0 +1,68 @@ +package com.github.wohaopa.GTNHModify.config; + +import java.io.File; + +import net.minecraftforge.common.config.Configuration; + +import com.github.wohaopa.GTNHModify.GTNHModifyMod; +import com.github.wohaopa.GTNHModify.strategies.Energyless; +import com.github.wohaopa.GTNHModify.strategies.None; +import com.github.wohaopa.GTNHModify.strategies.OneTick; +import com.github.wohaopa.GTNHModify.strategies.Output64; +import com.github.wohaopa.GTNHModify.strategies.Strategy; +import com.github.wohaopa.GTNHModify.strategies.Tenths; + +import cpw.mods.fml.client.event.ConfigChangedEvent; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class Config { + + public static Configuration config; + + public static Strategy strategy = new None(); + + private static boolean doSave; + + public static void init(File configFile) { + if (config == null) { + config = new Configuration(configFile); + } + doSave = false; + loadConfig(); + FMLCommonHandler.instance() + .bus() + .register(new Config()); + } + + @SubscribeEvent + public void onConfigChangedEvent(ConfigChangedEvent.OnConfigChangedEvent event) { + if (event.modID.equalsIgnoreCase(GTNHModifyMod.MODID)) { + loadConfig(); + } + } + + private static void loadConfig() { + + String strategyName = config.getString( + "Strategy", + Configuration.CATEGORY_GENERAL, + "None", + "Possible values: [None, OneTick, Tenths, Output64, Energyless]"); + + switch (strategyName) { + case "OneTick" -> strategy = new OneTick(); + case "Tenths" -> strategy = new Tenths(); + case "Output64" -> strategy = new Output64(); + case "Energyless" -> strategy = new Energyless(); + default -> strategy = new None(); + } + + if (config.hasChanged() || doSave) { + config.save(); + + doSave = false; + } + } + +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/FurnaceRecipesHandler.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/FurnaceRecipesHandler.java deleted file mode 100644 index 84a7f10..0000000 --- a/src/main/java/com/github/wohaopa/GTNHModify/handler/FurnaceRecipesHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.github.wohaopa.GTNHModify.handler; - -import net.minecraft.item.crafting.FurnaceRecipes; - -public class FurnaceRecipesHandler { - - protected static void init() { - FurnaceRecipes.smelting() - .getSmeltingList(); - } -} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/Furnace_RecipesHandler.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/Furnace_RecipesHandler.java new file mode 100644 index 0000000..628d17f --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/handler/Furnace_RecipesHandler.java @@ -0,0 +1,19 @@ +package com.github.wohaopa.GTNHModify.handler; + +import net.minecraft.item.crafting.FurnaceRecipes; + +import com.github.wohaopa.GTNHModify.config.Config; + +@IHandler("init") +public class Furnace_RecipesHandler { + + public static void init() { + FurnaceRecipes.smelting() + .getSmeltingList() + .forEach((itemStack, itemStack2) -> Config.strategy.handler_FurnaceRecipe(itemStack, itemStack2)); + } + + public static int handle(Object owner, int number) { + return Config.strategy.handler_FurnaceProcessingTime(owner, number); + } +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/GT_RecipesHandler.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/GT_RecipesHandler.java index 4824e1f..726bc78 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/handler/GT_RecipesHandler.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/handler/GT_RecipesHandler.java @@ -1,17 +1,24 @@ package com.github.wohaopa.GTNHModify.handler; +import com.github.wohaopa.GTNHModify.config.Config; + import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GT_Recipe; +@IHandler("init") public class GT_RecipesHandler { protected static void init() { RecipeMap.ALL_RECIPE_MAPS.forEach( (s, recipeMap) -> recipeMap.getAllRecipes() - .forEach(recipe -> { recipe.mDuration = 1; })); + .forEach(recipe -> Config.strategy.handler_GT_Recipe(recipe))); GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes - .forEach(gtRecipeAssemblyLine -> { gtRecipeAssemblyLine.mDuration = 1; }); + .forEach(gtRecipeAssemblyLine -> { Config.strategy.handler_GT_Recipe_AssemblyLine(gtRecipeAssemblyLine); }); + + } + public static int handle(Object owner, int number) { + return Config.strategy.handler_GT_ProcessingTime(owner, number); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java index 1fbabd9..d772165 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/handler/Handlers.java @@ -1,9 +1,31 @@ package com.github.wohaopa.GTNHModify.handler; +import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +import java.util.List; + public class Handlers { + public static List handlers = Arrays.asList("Furnace", "GT"); + private static final String Suffix = "_RecipesHandler"; + public static void init() { - GT_RecipesHandler.init(); - FurnaceRecipesHandler.init(); + String pkg = Handlers.class.getName() + .replace("Handlers", ""); + for (String name : handlers) { + String className = pkg + name + Suffix; + try { + Class clazz = Class.forName(className); + IHandler iHandler = clazz.getAnnotation(IHandler.class); + if (iHandler != null) { + clazz.getDeclaredMethod(iHandler.value()) + .invoke(null); + } + } catch (ClassNotFoundException | InvocationTargetException | IllegalAccessException + | NoSuchMethodException e) { + throw new RuntimeException(e); + } + } + } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/handler/IHandler.java b/src/main/java/com/github/wohaopa/GTNHModify/handler/IHandler.java new file mode 100644 index 0000000..bc36d43 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/handler/IHandler.java @@ -0,0 +1,13 @@ +package com.github.wohaopa.GTNHModify.handler; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface IHandler { + + String value(); +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_DrillingLogicDelegateMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_DrillingLogicDelegateMixin.java index 8bcba6b..5c3a5b3 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_DrillingLogicDelegateMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_DrillingLogicDelegateMixin.java @@ -1,20 +1,17 @@ package com.github.wohaopa.GTNHModify.mixins; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import gregtech.common.misc.GT_DrillingLogicDelegate; -import gregtech.common.misc.GT_IDrillingLogicDelegateOwner; @Mixin(value = GT_DrillingLogicDelegate.class, remap = false) public abstract class GT_DrillingLogicDelegateMixin { - @Redirect( - method = "onPostTickRetract", - at = @At(value = "INVOKE", target = "Lgregtech/common/misc/GT_IDrillingLogicDelegateOwner;getMachineSpeed()I")) - private int injected(GT_IDrillingLogicDelegateOwner owner) { - return 50; - } + // @Redirect( + // method = "onPostTickRetract", + // at = @At(value = "INVOKE", target = "Lgregtech/common/misc/GT_IDrillingLogicDelegateOwner;getMachineSpeed()I")) + // private int injected(GT_IDrillingLogicDelegateOwner owner) { + // return 100; + // } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MinerMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MinerMixin.java index 571c19d..ae47779 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MinerMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MinerMixin.java @@ -4,9 +4,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Miner; @@ -18,8 +15,9 @@ public class GT_MetaTileEntity_MinerMixin { @Shadow(remap = false) private int mSpeed; - @Inject(method = "name=/bar$/ desc=/.+/", at = @At("TAIL")) - public void injectInit(CallbackInfo callbackInfo) { - mSpeed = 1; - } + // @Inject(method = "name=/bar$/ desc=/.+/", at = @At("TAIL")) + // public void injectInit(CallbackInfo callbackInfo) { + // mSpeed = 1; + // } + } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MultiFurnaceMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MultiFurnaceMixin.java index fb48152..2b9d59b 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MultiFurnaceMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_MultiFurnaceMixin.java @@ -4,6 +4,8 @@ import org.spongepowered.asm.mixin.injection.Constant; import org.spongepowered.asm.mixin.injection.ModifyConstant; +import com.github.wohaopa.GTNHModify.handler.GT_RecipesHandler; + import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_MultiFurnace; @Mixin(value = GT_MetaTileEntity_MultiFurnace.class, remap = false) @@ -11,6 +13,6 @@ public class GT_MetaTileEntity_MultiFurnaceMixin { @ModifyConstant(method = "checkProcessing", constant = @Constant(intValue = 512)) private int injected(int value) { - return 1; + return GT_RecipesHandler.handle(this, value); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_ScannerMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_ScannerMixin.java index 9211826..6ce3623 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_ScannerMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/GT_MetaTileEntity_ScannerMixin.java @@ -4,6 +4,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; +import com.github.wohaopa.GTNHModify.handler.GT_RecipesHandler; + import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Scanner; @Mixin(value = GT_MetaTileEntity_Scanner.class, remap = false) @@ -11,6 +13,6 @@ public abstract class GT_MetaTileEntity_ScannerMixin { @ModifyArg(method = "checkRecipe", at = @At(value = "INVOKE", target = "calculateOverclockedNess"), index = 1) private int injected(int x) { - return 1; + return GT_RecipesHandler.handle(this, x); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java b/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java index 8b1a496..b7e33cd 100644 --- a/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java +++ b/src/main/java/com/github/wohaopa/GTNHModify/mixins/TileEntityFurnaceMixin.java @@ -6,11 +6,13 @@ import org.spongepowered.asm.mixin.injection.Constant; import org.spongepowered.asm.mixin.injection.ModifyConstant; +import com.github.wohaopa.GTNHModify.handler.Furnace_RecipesHandler; + @Mixin(TileEntityFurnace.class) public abstract class TileEntityFurnaceMixin { @ModifyConstant(method = "updateEntity", constant = @Constant(intValue = 200)) private int injected(int value) { - return 1; + return Furnace_RecipesHandler.handle(this, value); } } diff --git a/src/main/java/com/github/wohaopa/GTNHModify/strategies/Energyless.java b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Energyless.java new file mode 100644 index 0000000..796ef5f --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Energyless.java @@ -0,0 +1,11 @@ +package com.github.wohaopa.GTNHModify.strategies; + +import gregtech.api.util.GT_Recipe; + +public class Energyless extends Strategy { + + @Override + public void handler_GT_Recipe(GT_Recipe gtRecipe) { + if (gtRecipe.mEUt > 0) gtRecipe.mEUt = 0; + } +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/strategies/None.java b/src/main/java/com/github/wohaopa/GTNHModify/strategies/None.java new file mode 100644 index 0000000..5bbd385 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/strategies/None.java @@ -0,0 +1,5 @@ +package com.github.wohaopa.GTNHModify.strategies; + +public class None extends Strategy { + +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/strategies/OneTick.java b/src/main/java/com/github/wohaopa/GTNHModify/strategies/OneTick.java new file mode 100644 index 0000000..b13fe7b --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/strategies/OneTick.java @@ -0,0 +1,26 @@ +package com.github.wohaopa.GTNHModify.strategies; + +import gregtech.api.util.GT_Recipe; + +public class OneTick extends Strategy { + + @Override + public void handler_GT_Recipe(GT_Recipe gtRecipe) { + gtRecipe.mDuration = 1; + } + + @Override + public void handler_GT_Recipe_AssemblyLine(GT_Recipe.GT_Recipe_AssemblyLine gtRecipe) { + gtRecipe.mDuration = 1; + } + + @Override + public int handler_GT_ProcessingTime(Object owner, int number) { + return 1; + } + + @Override + public int handler_FurnaceProcessingTime(Object owner, int number) { + return 1; + } +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/strategies/Output64.java b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Output64.java new file mode 100644 index 0000000..15ee628 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Output64.java @@ -0,0 +1,79 @@ +package com.github.wohaopa.GTNHModify.strategies; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +import gregtech.api.util.GT_Recipe; + +public class Output64 extends Strategy { + + @Override + public void handler_GT_Recipe(GT_Recipe gtRecipe) { + if (gtRecipe.mEUt > 1) gtRecipe.mEUt = 1; + if (gtRecipe.mDuration > 1) gtRecipe.mDuration = 1; + if (gtRecipe.mInputs != null) { + for (ItemStack itemStack : gtRecipe.mInputs) { + if (itemStack != null) { + if (itemStack.stackSize > 0) itemStack.stackSize = 1; + } + } + } + if (gtRecipe.mOutputs != null) { + for (ItemStack itemStack : gtRecipe.mOutputs) { + if (itemStack != null) { + if (itemStack.stackSize > 0 && itemStack.stackSize < 64) itemStack.stackSize = 64; + } + } + } + if (gtRecipe.mFluidInputs != null) { + for (FluidStack fluidStack : gtRecipe.mFluidInputs) { + if (fluidStack != null) { + if (fluidStack.amount > 0) fluidStack.amount = 1; + } + } + } + if (gtRecipe.mFluidOutputs != null) { + for (FluidStack fluidStack : gtRecipe.mFluidOutputs) { + if (fluidStack != null) { + if (fluidStack.amount > 0 && fluidStack.amount < 16000) + fluidStack.amount = fluidStack.amount % 144 == 0 ? 144 * 64 : 16000; + } + } + } + } + + @Override + public void handler_GT_Recipe_AssemblyLine(GT_Recipe.GT_Recipe_AssemblyLine gtRecipe) { + if (gtRecipe.mEUt > 1) gtRecipe.mEUt = 1; + if (gtRecipe.mDuration > 1) gtRecipe.mDuration = 1; + if (gtRecipe.mInputs != null) { + for (ItemStack itemStack : gtRecipe.mInputs) { + if (itemStack != null) { + if (itemStack.stackSize > 0) itemStack.stackSize = 1; + } + } + } + if (gtRecipe.mOutput != null) { + + if (gtRecipe.mOutput.stackSize > 0 && gtRecipe.mOutput.stackSize < 64) gtRecipe.mOutput.stackSize = 64; + + } + if (gtRecipe.mFluidInputs != null) { + for (FluidStack fluidStack : gtRecipe.mFluidInputs) { + if (fluidStack != null) { + if (fluidStack.amount > 0) fluidStack.amount = 1; + } + } + } + } + + @Override + public int handler_GT_ProcessingTime(Object owner, int number) { + return 1; + } + + @Override + public int handler_FurnaceProcessingTime(Object owner, int number) { + return 1; + } +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/strategies/Strategy.java b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Strategy.java new file mode 100644 index 0000000..af6cdd0 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Strategy.java @@ -0,0 +1,29 @@ +package com.github.wohaopa.GTNHModify.strategies; + +import net.minecraft.item.ItemStack; + +import gregtech.api.util.GT_Recipe; + +public abstract class Strategy { + + public void handler_GT_Recipe(GT_Recipe gtRecipe) { + + } + + public void handler_GT_Recipe_AssemblyLine(GT_Recipe.GT_Recipe_AssemblyLine gtRecipe) { + + } + + public int handler_GT_ProcessingTime(Object owner, int number) { + return number; + } + + public void handler_FurnaceRecipe(ItemStack input, ItemStack output) { + + } + + public int handler_FurnaceProcessingTime(Object owner, int number) { + return number; + } + +} diff --git a/src/main/java/com/github/wohaopa/GTNHModify/strategies/Tenths.java b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Tenths.java new file mode 100644 index 0000000..4b3f276 --- /dev/null +++ b/src/main/java/com/github/wohaopa/GTNHModify/strategies/Tenths.java @@ -0,0 +1,26 @@ +package com.github.wohaopa.GTNHModify.strategies; + +import gregtech.api.util.GT_Recipe; + +public class Tenths extends Strategy { + + @Override + public void handler_GT_Recipe(GT_Recipe gtRecipe) { + gtRecipe.mDuration = gtRecipe.mDuration / 10 == 0 ? 1 : gtRecipe.mDuration / 10; + } + + @Override + public void handler_GT_Recipe_AssemblyLine(GT_Recipe.GT_Recipe_AssemblyLine gtRecipe) { + gtRecipe.mDuration = gtRecipe.mDuration / 10 == 0 ? 1 : gtRecipe.mDuration / 10; + } + + @Override + public int handler_GT_ProcessingTime(Object owner, int number) { + return number / 10 == 0 ? 1 : number / 10; + } + + @Override + public int handler_FurnaceProcessingTime(Object owner, int number) { + return number / 10 == 0 ? 1 : number / 10; + } +}