Fixed OmegaArmour client-server-side issue.

This commit is contained in:
WayofTime 2015-01-23 07:53:40 -05:00
parent 468734125a
commit 882b54d892
4 changed files with 57 additions and 2 deletions

View file

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

View file

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

View file

@ -110,12 +110,15 @@ public abstract class OmegaArmour extends BoundArmour
return "alchemicalwizardry:models/armor/OmegaWater.png"; return "alchemicalwizardry:models/armor/OmegaWater.png";
} }
@SideOnly(Side.CLIENT)
public abstract ModelBiped getChestModel(); public abstract ModelBiped getChestModel();
@SideOnly(Side.CLIENT)
public abstract ModelBiped getLegsModel(); public abstract ModelBiped getLegsModel();
@SideOnly(Side.CLIENT)
ModelBiped model1 = null; ModelBiped model1 = null;
@SideOnly(Side.CLIENT)
ModelBiped model2 = null; ModelBiped model2 = null;
@SideOnly(Side.CLIENT)
ModelBiped model = null; ModelBiped model = null;
@Override @Override

View file

@ -1,14 +1,18 @@
package WayofTime.alchemicalWizardry.common.items.routing; package WayofTime.alchemicalWizardry.common.items.routing;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import WayofTime.alchemicalWizardry.api.RoutingFocusLogic; import WayofTime.alchemicalWizardry.api.RoutingFocusLogic;
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicIgnMeta;
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicMatchNBT;
import WayofTime.alchemicalWizardry.api.RoutingFocusLogicModItems; import WayofTime.alchemicalWizardry.api.RoutingFocusLogicModItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
public class OutputRoutingFocus extends RoutingFocus public class OutputRoutingFocus extends RoutingFocus
{ {
IIcon modItemIcon;
public OutputRoutingFocus() public OutputRoutingFocus()
{ {
super(); super();
@ -19,6 +23,7 @@ public class OutputRoutingFocus extends RoutingFocus
public void registerIcons(IIconRegister iconRegister) public void registerIcons(IIconRegister iconRegister)
{ {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:OutputRoutingFocus"); this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:OutputRoutingFocus");
this.modItemIcon = iconRegister.registerIcon("AlchemicalWizardry:OutputRoutingFocusModItems");
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@ -28,10 +33,30 @@ public class OutputRoutingFocus extends RoutingFocus
{ {
case 0: case 0:
return this.itemIcon; return this.itemIcon;
case 1:
return this.modItemIcon;
} }
return this.itemIcon; return this.itemIcon;
} }
@Override
public String getUnlocalizedName(ItemStack itemStack)
{
String addedString = "";
switch(itemStack.getItemDamage())
{
case 0:
addedString = "default";
break;
case 1:
addedString = "modItem";
break;
}
return super.getUnlocalizedName() + "." + addedString;
}
public RoutingFocusLogic getLogic(int damage) public RoutingFocusLogic getLogic(int damage)
{ {
switch(damage) switch(damage)
@ -40,6 +65,10 @@ public class OutputRoutingFocus extends RoutingFocus
return new RoutingFocusLogic(); return new RoutingFocusLogic();
case 1: case 1:
return new RoutingFocusLogicModItems(); return new RoutingFocusLogicModItems();
case 2:
return new RoutingFocusLogicIgnMeta();
case 3:
return new RoutingFocusLogicMatchNBT();
} }
return new RoutingFocusLogic(); return new RoutingFocusLogic();
} }