From 39e3d6eb3470e2ae3d37142769f6a0f9c77463e3 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Fri, 27 Feb 2015 08:31:39 -0500 Subject: [PATCH] Added a crafting cooldown on IAltar, so that outside blocks may request the altar to not perform work while it is not active. --- build.properties | 4 ++-- .../api/RoutingFocusLogicLimit.java | 9 -------- .../api/tile/IBloodAltar.java | 7 +++++++ .../items/routing/OutputRoutingFocus.java | 8 +++---- .../routing}/RoutingFocusLogicIgnMeta.java | 3 ++- .../routing/RoutingFocusLogicLimit.java | 12 +++++++++++ .../RoutingFocusLogicLimitDefault.java | 2 +- .../RoutingFocusLogicLimitIgnMeta.java | 3 ++- .../RoutingFocusLogicLimitMatchNBT.java | 3 ++- .../RoutingFocusLogicLimitModItems.java | 3 ++- .../routing}/RoutingFocusLogicMatchNBT.java | 3 ++- .../routing}/RoutingFocusLogicModItems.java | 3 ++- .../effect/OutputRoutingFocusModItems.java | 2 +- .../common/tileEntity/TEAltar.java | 21 ++++++++++++++++--- 14 files changed, 57 insertions(+), 26 deletions(-) delete mode 100644 src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimit.java rename src/main/java/WayofTime/alchemicalWizardry/{api => common/routing}/RoutingFocusLogicIgnMeta.java (73%) create mode 100644 src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimit.java rename src/main/java/WayofTime/alchemicalWizardry/{api => common/routing}/RoutingFocusLogicLimitDefault.java (90%) rename src/main/java/WayofTime/alchemicalWizardry/{api => common/routing}/RoutingFocusLogicLimitIgnMeta.java (83%) rename src/main/java/WayofTime/alchemicalWizardry/{api => common/routing}/RoutingFocusLogicLimitMatchNBT.java (83%) rename src/main/java/WayofTime/alchemicalWizardry/{api => common/routing}/RoutingFocusLogicLimitModItems.java (83%) rename src/main/java/WayofTime/alchemicalWizardry/{api => common/routing}/RoutingFocusLogicMatchNBT.java (85%) rename src/main/java/WayofTime/alchemicalWizardry/{api => common/routing}/RoutingFocusLogicModItems.java (84%) diff --git a/build.properties b/build.properties index 8208ba99..dbb3000f 100644 --- a/build.properties +++ b/build.properties @@ -1,5 +1,5 @@ # -#Mon Feb 23 18:21:38 EST 2015 +#Thu Feb 26 20:41:21 EST 2015 mod_name=BloodMagic forge_version=10.13.2.1232 ccc_version=1.0.4.29 @@ -8,5 +8,5 @@ nei_version=1.0.3.64 package_group=com.wayoftime.bloodmagic mod_version=1.3.1Beta1 minetweaker_version=Dev-1.7.10-3.0.9B +build_number=10 mc_version=1.7.10 -build_number=9 diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimit.java b/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimit.java deleted file mode 100644 index 4e2d9065..00000000 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimit.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.api; - -public class RoutingFocusLogicLimit extends RoutingFocusLogic implements ILimitingLogic -{ - public int getRoutingLimit() - { - return 0; - } -} diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java b/src/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java index d190dae4..baa0ed7a 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java +++ b/src/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java @@ -27,4 +27,11 @@ public interface IBloodAltar public void sacrificialDaggerCall(int amount, boolean b); public void startCycle(); + + /** + * Will set the altar to initiate a cooldown cycle after it crafts before starting to craft again, giving the user time to interact with the altar. + * This can only be set while the altar is not active. + * @param amount + */ + public void requestPauseAfterCrafting(int amount); } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/routing/OutputRoutingFocus.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/routing/OutputRoutingFocus.java index 7f4cb654..f519709c 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/routing/OutputRoutingFocus.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/routing/OutputRoutingFocus.java @@ -11,10 +11,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import WayofTime.alchemicalWizardry.api.RoutingFocusLogic; -import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitDefault; -import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitIgnMeta; -import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitMatchNBT; -import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitModItems; +import WayofTime.alchemicalWizardry.common.routing.RoutingFocusLogicLimitDefault; +import WayofTime.alchemicalWizardry.common.routing.RoutingFocusLogicLimitIgnMeta; +import WayofTime.alchemicalWizardry.common.routing.RoutingFocusLogicLimitMatchNBT; +import WayofTime.alchemicalWizardry.common.routing.RoutingFocusLogicLimitModItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicIgnMeta.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicIgnMeta.java similarity index 73% rename from src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicIgnMeta.java rename to src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicIgnMeta.java index 5a2c5dd3..7fb2f489 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicIgnMeta.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicIgnMeta.java @@ -1,5 +1,6 @@ -package WayofTime.alchemicalWizardry.api; +package WayofTime.alchemicalWizardry.common.routing; +import WayofTime.alchemicalWizardry.api.RoutingFocusLogic; import net.minecraft.item.ItemStack; public class RoutingFocusLogicIgnMeta extends RoutingFocusLogic diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimit.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimit.java new file mode 100644 index 00000000..26fb3495 --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimit.java @@ -0,0 +1,12 @@ +package WayofTime.alchemicalWizardry.common.routing; + +import WayofTime.alchemicalWizardry.api.ILimitingLogic; +import WayofTime.alchemicalWizardry.api.RoutingFocusLogic; + +public class RoutingFocusLogicLimit extends RoutingFocusLogic implements ILimitingLogic +{ + public int getRoutingLimit() + { + return 0; + } +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitDefault.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitDefault.java similarity index 90% rename from src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitDefault.java rename to src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitDefault.java index 62bb3457..7c485ef9 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitDefault.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitDefault.java @@ -1,4 +1,4 @@ -package WayofTime.alchemicalWizardry.api; +package WayofTime.alchemicalWizardry.common.routing; import net.minecraft.item.ItemStack; import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus; diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitIgnMeta.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitIgnMeta.java similarity index 83% rename from src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitIgnMeta.java rename to src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitIgnMeta.java index cd1d93bf..74124d9e 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitIgnMeta.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitIgnMeta.java @@ -1,6 +1,7 @@ -package WayofTime.alchemicalWizardry.api; +package WayofTime.alchemicalWizardry.common.routing; import net.minecraft.item.ItemStack; +import WayofTime.alchemicalWizardry.api.ILimitingLogic; import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus; public class RoutingFocusLogicLimitIgnMeta extends RoutingFocusLogicIgnMeta implements ILimitingLogic diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitMatchNBT.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitMatchNBT.java similarity index 83% rename from src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitMatchNBT.java rename to src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitMatchNBT.java index 94eba0fb..f7887a01 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitMatchNBT.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitMatchNBT.java @@ -1,6 +1,7 @@ -package WayofTime.alchemicalWizardry.api; +package WayofTime.alchemicalWizardry.common.routing; import net.minecraft.item.ItemStack; +import WayofTime.alchemicalWizardry.api.ILimitingLogic; import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus; public class RoutingFocusLogicLimitMatchNBT extends RoutingFocusLogicMatchNBT implements ILimitingLogic diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitModItems.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitModItems.java similarity index 83% rename from src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitModItems.java rename to src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitModItems.java index 67bcb78d..907e925c 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicLimitModItems.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicLimitModItems.java @@ -1,6 +1,7 @@ -package WayofTime.alchemicalWizardry.api; +package WayofTime.alchemicalWizardry.common.routing; import net.minecraft.item.ItemStack; +import WayofTime.alchemicalWizardry.api.ILimitingLogic; import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus; public class RoutingFocusLogicLimitModItems extends RoutingFocusLogicModItems implements ILimitingLogic diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicMatchNBT.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicMatchNBT.java similarity index 85% rename from src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicMatchNBT.java rename to src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicMatchNBT.java index 73b81b04..382511b1 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicMatchNBT.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicMatchNBT.java @@ -1,5 +1,6 @@ -package WayofTime.alchemicalWizardry.api; +package WayofTime.alchemicalWizardry.common.routing; +import WayofTime.alchemicalWizardry.api.RoutingFocusLogic; import net.minecraft.item.ItemStack; public class RoutingFocusLogicMatchNBT extends RoutingFocusLogic diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicModItems.java b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicModItems.java similarity index 84% rename from src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicModItems.java rename to src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicModItems.java index 25bd70b5..e09acd5c 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/RoutingFocusLogicModItems.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/routing/RoutingFocusLogicModItems.java @@ -1,5 +1,6 @@ -package WayofTime.alchemicalWizardry.api; +package WayofTime.alchemicalWizardry.common.routing; +import WayofTime.alchemicalWizardry.api.RoutingFocusLogic; import net.minecraft.item.ItemStack; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/OutputRoutingFocusModItems.java b/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/OutputRoutingFocusModItems.java index ed692bbd..334cd450 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/OutputRoutingFocusModItems.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/OutputRoutingFocusModItems.java @@ -1,8 +1,8 @@ package WayofTime.alchemicalWizardry.common.spell.complex.effect; import WayofTime.alchemicalWizardry.api.RoutingFocusLogic; -import WayofTime.alchemicalWizardry.api.RoutingFocusLogicModItems; import WayofTime.alchemicalWizardry.common.items.routing.OutputRoutingFocus; +import WayofTime.alchemicalWizardry.common.routing.RoutingFocusLogicModItems; public class OutputRoutingFocusModItems extends OutputRoutingFocus { diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java index fe836405..4c5e10bd 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java @@ -36,8 +36,6 @@ import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.AltarUpgradeCompone import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import com.ibm.icu.text.MessageFormat; - public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFluidHandler, IBloodAltar { public static final int sizeInv = 1; @@ -70,6 +68,8 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui private int lockdownDuration; private int demonBloodDuration; + + private int cooldownAfterCrafting = 0; public TEAltar() { @@ -192,6 +192,7 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui lockdownDuration = par1NBTTagCompound.getInteger("lockdownDuration"); accelerationUpgrades = par1NBTTagCompound.getInteger("accelerationUpgrades"); demonBloodDuration = par1NBTTagCompound.getInteger("demonBloodDuration"); + cooldownAfterCrafting = par1NBTTagCompound.getInteger("cooldownAfterCrafting"); } public void setMainFluid(FluidStack fluid) @@ -271,6 +272,7 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui par1NBTTagCompound.setInteger("lockdownDuration", lockdownDuration); par1NBTTagCompound.setInteger("accelerationUpgrades", this.accelerationUpgrades); par1NBTTagCompound.setInteger("demonBloodDuration", demonBloodDuration); + par1NBTTagCompound.setInteger("cooldownAfterCrafting", cooldownAfterCrafting); } @Override @@ -646,13 +648,17 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui this.fluid.amount -= fluidOutputted; } - if (worldObj.getWorldTime() % 100 == 0) + if (worldObj.getWorldTime() % 100 == 0 && this.cooldownAfterCrafting <= 0) { startCycle(); } if (!isActive) { + if(cooldownAfterCrafting > 0) + { + cooldownAfterCrafting--; + } return; } @@ -1076,4 +1082,13 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.inputtank"), this.fluidInput.amount))); player.addChatMessage(new ChatComponentText(String.format(StatCollector.translateToLocal("message.altar.outputtank"), this.fluidOutput.amount))); } + + @Override + public void requestPauseAfterCrafting(int amount) + { + if(this.isActive) + { + this.cooldownAfterCrafting = amount; + } + } }