Finishing the darn Phantom Hands ritual
This commit is contained in:
parent
f87da36775
commit
dc7d9ebc06
45 changed files with 662 additions and 270 deletions
|
@ -4,30 +4,54 @@ import java.util.List;
|
|||
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogic;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicIgnMeta;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicMatchNBT;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicModItems;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitDefault;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitIgnMeta;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitMatchNBT;
|
||||
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicLimitModItems;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class OutputRoutingFocus extends RoutingFocus
|
||||
public class OutputRoutingFocus extends RoutingFocus implements ILimitedRoutingFocus
|
||||
{
|
||||
IIcon modItemIcon;
|
||||
IIcon ignMetaIcon;
|
||||
IIcon matchNBTIcon;
|
||||
|
||||
public OutputRoutingFocus()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
|
||||
{
|
||||
super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4);
|
||||
|
||||
if (!(par1ItemStack.getTagCompound() == null))
|
||||
{
|
||||
int limit = this.getRoutingFocusLimit(par1ItemStack);
|
||||
if(limit > 0)
|
||||
{
|
||||
par3List.add(StatCollector.translateToLocal("tooltip.routingFocus.limit") + " " + limit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister iconRegister)
|
||||
{
|
||||
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:OutputRoutingFocus");
|
||||
this.modItemIcon = iconRegister.registerIcon("AlchemicalWizardry:OutputRoutingFocusModItems");
|
||||
this.ignMetaIcon = iconRegister.registerIcon("AlchemicalWizardry:OutputRoutingFocusIgnMeta");
|
||||
this.matchNBTIcon = iconRegister.registerIcon("AlchemicalWizardry:OutputRoutingFocusMatchNBT");
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
@ -39,6 +63,10 @@ public class OutputRoutingFocus extends RoutingFocus
|
|||
return this.itemIcon;
|
||||
case 1:
|
||||
return this.modItemIcon;
|
||||
case 2:
|
||||
return this.ignMetaIcon;
|
||||
case 3:
|
||||
return this.matchNBTIcon;
|
||||
}
|
||||
return this.itemIcon;
|
||||
}
|
||||
|
@ -78,19 +106,49 @@ public class OutputRoutingFocus extends RoutingFocus
|
|||
}
|
||||
|
||||
@Override
|
||||
public RoutingFocusLogic getLogic(int damage)
|
||||
public RoutingFocusLogic getLogic(ItemStack itemStack)
|
||||
{
|
||||
switch(damage)
|
||||
if(itemStack != null)
|
||||
{
|
||||
case 0:
|
||||
return new RoutingFocusLogic();
|
||||
case 1:
|
||||
return new RoutingFocusLogicModItems();
|
||||
case 2:
|
||||
return new RoutingFocusLogicIgnMeta();
|
||||
case 3:
|
||||
return new RoutingFocusLogicMatchNBT();
|
||||
switch(itemStack.getItemDamage())
|
||||
{
|
||||
case 0:
|
||||
return new RoutingFocusLogicLimitDefault(itemStack);
|
||||
case 1:
|
||||
return new RoutingFocusLogicLimitModItems(itemStack);
|
||||
case 2:
|
||||
return new RoutingFocusLogicLimitIgnMeta(itemStack);
|
||||
case 3:
|
||||
return new RoutingFocusLogicLimitMatchNBT(itemStack);
|
||||
}
|
||||
}
|
||||
|
||||
return new RoutingFocusLogic();
|
||||
}
|
||||
}
|
||||
|
||||
public int getDefaultStackLimit(int damage)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getRoutingFocusLimit(ItemStack itemStack)
|
||||
{
|
||||
if (!(itemStack.getTagCompound() == null))
|
||||
{
|
||||
return itemStack.getTagCompound().getInteger("stackLimit");
|
||||
} else
|
||||
{
|
||||
return getDefaultStackLimit(itemStack.getItemDamage());
|
||||
}
|
||||
}
|
||||
|
||||
public void setRoutingFocusLimit(ItemStack itemStack, int amt)
|
||||
{
|
||||
if ((itemStack.getTagCompound() == null))
|
||||
{
|
||||
itemStack.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
|
||||
itemStack.getTagCompound().setInteger("stackLimit", amt);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue