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:
WayofTime 2015-02-27 08:31:39 -05:00
parent 8fbb19acc0
commit 39e3d6eb34
14 changed files with 57 additions and 26 deletions

View file

@ -1,12 +0,0 @@
package WayofTime.alchemicalWizardry.api;
import net.minecraft.item.ItemStack;
public class RoutingFocusLogicIgnMeta extends RoutingFocusLogic
{
@Override
public boolean getDefaultMatch(ItemStack keyStack, ItemStack checkedStack)
{
return (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() : false);
}
}

View file

@ -1,9 +0,0 @@
package WayofTime.alchemicalWizardry.api;
public class RoutingFocusLogicLimit extends RoutingFocusLogic implements ILimitingLogic
{
public int getRoutingLimit()
{
return 0;
}
}

View file

@ -1,26 +0,0 @@
package WayofTime.alchemicalWizardry.api;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus;
public class RoutingFocusLogicLimitDefault extends RoutingFocusLogicLimit
{
public int limit = 0;
public RoutingFocusLogicLimitDefault(ItemStack stack)
{
if(stack != null && stack.getItem() instanceof ILimitedRoutingFocus)
{
limit = ((ILimitedRoutingFocus)stack.getItem()).getRoutingFocusLimit(stack);
}else
{
limit = 0;
}
}
@Override
public int getRoutingLimit()
{
return limit;
}
}

View file

@ -1,26 +0,0 @@
package WayofTime.alchemicalWizardry.api;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus;
public class RoutingFocusLogicLimitIgnMeta extends RoutingFocusLogicIgnMeta implements ILimitingLogic
{
public int limit = 0;
public RoutingFocusLogicLimitIgnMeta(ItemStack stack)
{
if(stack != null && stack.getItem() instanceof ILimitedRoutingFocus)
{
limit = ((ILimitedRoutingFocus)stack.getItem()).getRoutingFocusLimit(stack);
}else
{
limit = 0;
}
}
@Override
public int getRoutingLimit()
{
return limit;
}
}

View file

@ -1,26 +0,0 @@
package WayofTime.alchemicalWizardry.api;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus;
public class RoutingFocusLogicLimitMatchNBT extends RoutingFocusLogicMatchNBT implements ILimitingLogic
{
public int limit = 0;
public RoutingFocusLogicLimitMatchNBT(ItemStack stack)
{
if(stack != null && stack.getItem() instanceof ILimitedRoutingFocus)
{
limit = ((ILimitedRoutingFocus)stack.getItem()).getRoutingFocusLimit(stack);
}else
{
limit = 0;
}
}
@Override
public int getRoutingLimit()
{
return limit;
}
}

View file

@ -1,26 +0,0 @@
package WayofTime.alchemicalWizardry.api;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.common.items.routing.ILimitedRoutingFocus;
public class RoutingFocusLogicLimitModItems extends RoutingFocusLogicModItems implements ILimitingLogic
{
public int limit = 0;
public RoutingFocusLogicLimitModItems(ItemStack stack)
{
if(stack != null && stack.getItem() instanceof ILimitedRoutingFocus)
{
limit = ((ILimitedRoutingFocus)stack.getItem()).getRoutingFocusLimit(stack);
}else
{
limit = 0;
}
}
@Override
public int getRoutingLimit()
{
return limit;
}
}

View file

@ -1,17 +0,0 @@
package WayofTime.alchemicalWizardry.api;
import net.minecraft.item.ItemStack;
public class RoutingFocusLogicMatchNBT extends RoutingFocusLogic
{
public boolean getDefaultMatch(ItemStack keyStack, ItemStack checkedStack)
{
return (keyStack != null ? checkedStack != null && keyStack.getItem() == checkedStack.getItem() && (keyStack.getItem().getHasSubtypes() ? keyStack.getItemDamage() == checkedStack.getItemDamage() : true) && keyStack.areItemStackTagsEqual(keyStack, checkedStack) : false);
}
@Override
public boolean doesItemMatch(boolean previous, ItemStack keyStack, ItemStack checkedStack)
{
return previous && this.getDefaultMatch(keyStack, checkedStack);
}
}

View file

@ -1,21 +0,0 @@
package WayofTime.alchemicalWizardry.api;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
public class RoutingFocusLogicModItems extends RoutingFocusLogic
{
@Override
public boolean getDefaultMatch(ItemStack keyStack, ItemStack checkedStack)
{
if(keyStack != null && checkedStack != null)
{
UniqueIdentifier keyId = GameRegistry.findUniqueIdentifierFor(keyStack.getItem());
UniqueIdentifier checkedId = GameRegistry.findUniqueIdentifierFor(checkedStack.getItem());
return keyId.modId.equals(checkedId.modId);
}
return false;
}
}

View file

@ -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);
}