diff options
author | Alkalus <draknyte1@hotmail.com> | 2017-11-11 01:56:15 +1000 |
---|---|---|
committer | Alkalus <draknyte1@hotmail.com> | 2017-11-11 01:56:15 +1000 |
commit | bab1fd921740a9184f67f3bbb34500221b2029b7 (patch) | |
tree | 2153566057165b5b42e656a818e87d6e2f6f36e0 /src/Java/gtPlusPlus/core/item | |
parent | 40d2c3e86e55ebdffec77dad73b67f49ddf7babd (diff) | |
download | GT5-Unofficial-bab1fd921740a9184f67f3bbb34500221b2029b7.tar.gz GT5-Unofficial-bab1fd921740a9184f67f3bbb34500221b2029b7.tar.bz2 GT5-Unofficial-bab1fd921740a9184f67f3bbb34500221b2029b7.zip |
+ Added in a modular bauble.
Diffstat (limited to 'src/Java/gtPlusPlus/core/item')
-rw-r--r-- | src/Java/gtPlusPlus/core/item/bauble/BaseBauble.java | 12 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/bauble/ModularBauble.java | 117 |
2 files changed, 128 insertions, 1 deletions
diff --git a/src/Java/gtPlusPlus/core/item/bauble/BaseBauble.java b/src/Java/gtPlusPlus/core/item/bauble/BaseBauble.java index 61da0d2f5c..60d5aa4e57 100644 --- a/src/Java/gtPlusPlus/core/item/bauble/BaseBauble.java +++ b/src/Java/gtPlusPlus/core/item/bauble/BaseBauble.java @@ -16,6 +16,7 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.registry.GameRegistry; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.nbt.ModularArmourUtils.BT; import gtPlusPlus.core.util.nbt.NBTUtils; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -35,7 +36,7 @@ public class BaseBauble extends Item implements IBauble{ * Implementation suggestions taken from Botania. */ - private final BaubleType mThisBauble; + private BaubleType mThisBauble; private final String mDisplayName; private List<String> damageNegations = new ArrayList<String>(); Multimap<String, AttributeModifier> attributes = HashMultimap.create(); @@ -82,6 +83,15 @@ public class BaseBauble extends Item implements IBauble{ public BaubleType getBaubleType(ItemStack arg0) { return mThisBauble; } + + public boolean SetBaubleType(BT arg0) { + BaubleType temp = this.mThisBauble; + this.mThisBauble = arg0.getType(); + if (this.mThisBauble != temp){ + return true; + } + return false; + } @Override public void onEquipped(ItemStack stack, EntityLivingBase entity) { diff --git a/src/Java/gtPlusPlus/core/item/bauble/ModularBauble.java b/src/Java/gtPlusPlus/core/item/bauble/ModularBauble.java new file mode 100644 index 0000000000..755f94ef8d --- /dev/null +++ b/src/Java/gtPlusPlus/core/item/bauble/ModularBauble.java @@ -0,0 +1,117 @@ +package gtPlusPlus.core.item.bauble; + +import java.util.List; + +import com.google.common.collect.Multimap; + +import baubles.api.BaubleType; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.nbt.ModularArmourUtils; +import gtPlusPlus.core.util.nbt.ModularArmourUtils.BT; +import gtPlusPlus.core.util.nbt.ModularArmourUtils.Modifiers; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; + +public class ModularBauble extends BaseBauble{ + + + public ModularBauble() { + super(BaubleType.AMULET, "Does Fancy Things."); + addDamageNegation(DamageSource.wither); + this.setTextureName(CORE.MODID + ":" + "itemKeyGold"); + } + + @Override + void fillModifiers(Multimap<String, AttributeModifier> attributes, ItemStack stack) { + attributes.put(SharedMonsterAttributes.maxHealth.getAttributeUnlocalizedName(), new AttributeModifier(getBaubleUUID(stack), "Bauble modifier", 40, 0)); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + //Bauble Type + if (ModularArmourUtils.getBaubleType(stack) == BaubleType.AMULET){ + list.add(EnumChatFormatting.GRAY+"Current Form: "+EnumChatFormatting.RED+"Amulet"+EnumChatFormatting.GRAY+"."); + list.add(EnumChatFormatting.GRAY+"You can change this into a Ring or a Belt."); + } + else if (ModularArmourUtils.getBaubleType(stack) == BaubleType.RING){ + list.add(EnumChatFormatting.GRAY+"Current Form: "+EnumChatFormatting.RED+"Ring"+EnumChatFormatting.GRAY+"."); + list.add(EnumChatFormatting.GRAY+"You can change this into an Amulet or a Belt."); + } + else if (ModularArmourUtils.getBaubleType(stack) == BaubleType.BELT){ + list.add(EnumChatFormatting.GRAY+"Current Form: "+EnumChatFormatting.RED+"Belt"+EnumChatFormatting.GRAY+"."); + list.add(EnumChatFormatting.GRAY+"You can change this into a Ring or an Amulet."); + } + + //Get Stats + int mStatlevel = 0; + if ((mStatlevel = ModularArmourUtils.getModifierLevel(stack, Modifiers.BOOST_DAMAGE)) > 0){ + list.add(EnumChatFormatting.GRAY+"Damage Boost: "+EnumChatFormatting.DARK_RED+mStatlevel+EnumChatFormatting.GRAY+"."); + } + if ((mStatlevel = ModularArmourUtils.getModifierLevel(stack, Modifiers.BOOST_DEF)) > 0){ + list.add(EnumChatFormatting.GRAY+"Defence Boost: "+EnumChatFormatting.BLUE+mStatlevel+EnumChatFormatting.GRAY+"."); + } + if ((mStatlevel = ModularArmourUtils.getModifierLevel(stack, Modifiers.BOOST_HP)) > 0){ + list.add(EnumChatFormatting.GRAY+"Health Boost: "+EnumChatFormatting.RED+mStatlevel+EnumChatFormatting.GRAY+"."); + } + if ((mStatlevel = ModularArmourUtils.getModifierLevel(stack, Modifiers.BOOST_SPEED)) > 0){ + list.add(EnumChatFormatting.GRAY+"Speed Boost: "+EnumChatFormatting.WHITE+mStatlevel+EnumChatFormatting.GRAY+"."); + } + if ((mStatlevel = ModularArmourUtils.getModifierLevel(stack, Modifiers.BOOST_MINING)) > 0){ + list.add(EnumChatFormatting.GRAY+"Mining Boost: "+EnumChatFormatting.DARK_GRAY+mStatlevel+EnumChatFormatting.GRAY+"."); + } + if ((mStatlevel = ModularArmourUtils.getModifierLevel(stack, Modifiers.BOOST_HOLY)) > 0){ + list.add(EnumChatFormatting.GRAY+"Holy Boost: "+EnumChatFormatting.GOLD+mStatlevel+EnumChatFormatting.GRAY+"."); + } + + super.addInformation(stack, player, list, bool); + } + + @Override + public boolean addDamageNegation(DamageSource damageSource) { + // TODO Auto-generated method stub + return super.addDamageNegation(damageSource); + } + + @Override + public boolean canEquip(ItemStack arg0, EntityLivingBase arg1) { + if (ModularArmourUtils.getBaubleTypeID(arg0) == BT.TYPE_AMULET.getID()){ + this.SetBaubleType(BT.TYPE_AMULET); + } + else if (ModularArmourUtils.getBaubleTypeID(arg0) == BT.TYPE_RING.getID()){ + this.SetBaubleType(BT.TYPE_RING); + } + else if (ModularArmourUtils.getBaubleTypeID(arg0) == BT.TYPE_BELT.getID()){ + this.SetBaubleType(BT.TYPE_BELT); + } + else { + this.SetBaubleType(BT.TYPE_RING); + } + return super.canEquip(arg0, arg1); + } + + @Override + public BaubleType getBaubleType(ItemStack arg0) { + return ModularArmourUtils.getBaubleType(arg0); + } + + @Override + public void onEquipped(ItemStack stack, EntityLivingBase entity) { + // TODO Auto-generated method stub + super.onEquipped(stack, entity); + } + + @Override + public void onUnequipped(ItemStack stack, EntityLivingBase player) { + // TODO Auto-generated method stub + super.onUnequipped(stack, player); + } + + + + +} |