Added a crafting cooldown on IAltar, so that outside blocks may request the altar to not perform work while it is not active.
This commit is contained in:
parent
8fbb19acc0
commit
39e3d6eb34
|
@ -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
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
package WayofTime.alchemicalWizardry.api;
|
||||
|
||||
public class RoutingFocusLogicLimit extends RoutingFocusLogic implements ILimitingLogic
|
||||
{
|
||||
public int getRoutingLimit()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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;
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue