From 1a7ae8d99cae3286b9d579054e44de4634baeb50 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Tue, 5 Jan 2016 16:50:43 -0500 Subject: [PATCH] Fixed API referencing the main mod. --- .../api/livingArmour/ILivingArmour.java | 46 +++++++++++++++++++ .../api/livingArmour/LivingArmourUpgrade.java | 3 +- .../bloodmagic/livingArmour/LivingArmour.java | 11 ++++- .../LivingArmourUpgradeDigging.java | 5 +- .../LivingArmourUpgradePoisonResist.java | 3 +- .../LivingArmourUpgradeSpeed.java | 3 +- .../livingArmour/StatTrackerDigging.java | 2 +- 7 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 src/main/java/WayofTime/bloodmagic/api/livingArmour/ILivingArmour.java diff --git a/src/main/java/WayofTime/bloodmagic/api/livingArmour/ILivingArmour.java b/src/main/java/WayofTime/bloodmagic/api/livingArmour/ILivingArmour.java new file mode 100644 index 00000000..f9361161 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/api/livingArmour/ILivingArmour.java @@ -0,0 +1,46 @@ +package WayofTime.bloodmagic.api.livingArmour; + +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +import com.google.common.collect.Multimap; + +/** + * An interface this is used purely for internal implementation. + * + * @author WayofTime + * + */ +public interface ILivingArmour +{ + public Multimap getAttributeModifiers(); + + public boolean upgradeArmour(EntityPlayer user, LivingArmourUpgrade upgrade); + + public void notifyPlayerOfUpgrade(EntityPlayer user, LivingArmourUpgrade upgrade); + + /** + * Ticks the upgrades and stat trackers, passing in the world and player as + * well as the LivingArmour + * + * @param world + * @param player + */ + public void onTick(World world, EntityPlayer player); + + public void readFromNBT(NBTTagCompound tag); + + public void writeToNBT(NBTTagCompound tag, boolean forceWrite); + + /** + * Writes the LivingArmour to the NBTTag. This will only write the trackers + * that are dirty. + * + * @param tag + */ + public void writeDirtyToNBT(NBTTagCompound tag); + + public void writeToNBT(NBTTagCompound tag); +} diff --git a/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java b/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java index bbe1413c..d96e146d 100644 --- a/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java +++ b/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java @@ -4,7 +4,6 @@ import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import WayofTime.bloodmagic.livingArmour.LivingArmour; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; @@ -49,7 +48,7 @@ public abstract class LivingArmourUpgrade public abstract int getCostOfUpgrade(); - public void onTick(World world, EntityPlayer player, LivingArmour livingArmour) + public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour) { } diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java index 7f6ad95b..6ed616f5 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmour.java @@ -10,6 +10,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; +import WayofTime.bloodmagic.api.livingArmour.ILivingArmour; import WayofTime.bloodmagic.api.livingArmour.LivingArmourHandler; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.api.livingArmour.StatTracker; @@ -19,7 +20,7 @@ import WayofTime.bloodmagic.util.helper.TextHelper; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; -public class LivingArmour +public class LivingArmour implements ILivingArmour { public static String chatBase = "chat.BloodMagic.livingArmour."; public HashMap trackerMap = new HashMap(); @@ -28,6 +29,7 @@ public class LivingArmour public int maxUpgradePoints = 100; public int totalUpgradePoints = 0; + @Override public Multimap getAttributeModifiers() { HashMultimap modifierMap = HashMultimap.create(); @@ -45,6 +47,7 @@ public class LivingArmour return modifierMap; } + @Override public boolean upgradeArmour(EntityPlayer user, LivingArmourUpgrade upgrade) { String key = upgrade.getUniqueIdentifier(); @@ -78,6 +81,7 @@ public class LivingArmour return false; } + @Override public void notifyPlayerOfUpgrade(EntityPlayer user, LivingArmourUpgrade upgrade) { ChatUtil.sendChat(user, TextHelper.localize(chatBase + "newUpgrade")); @@ -90,6 +94,7 @@ public class LivingArmour * @param world * @param player */ + @Override public void onTick(World world, EntityPlayer player) { for (Entry entry : upgradeMap.entrySet()) @@ -125,6 +130,7 @@ public class LivingArmour } } + @Override public void readFromNBT(NBTTagCompound tag) { NBTTagList upgradeTags = tag.getTagList("upgrades", 10); @@ -170,6 +176,7 @@ public class LivingArmour } } + @Override public void writeToNBT(NBTTagCompound tag, boolean forceWrite) { NBTTagList tags = new NBTTagList(); @@ -220,11 +227,13 @@ public class LivingArmour * * @param tag */ + @Override public void writeDirtyToNBT(NBTTagCompound tag) { writeToNBT(tag, false); } + @Override public void writeToNBT(NBTTagCompound tag) { writeToNBT(tag, true); diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeDigging.java b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeDigging.java index 291956f1..dfb008c0 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeDigging.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeDigging.java @@ -8,11 +8,12 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.api.livingArmour.ILivingArmour; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; public class LivingArmourUpgradeDigging extends LivingArmourUpgrade { - public static HashMap changeMap = new HashMap(); + public static HashMap changeMap = new HashMap(); public static final int[] costs = new int[] { 5, 10, 18, 35, 65, 100, 160 }; public static final int[] digHasteTime = new int[] { 20, 40, 60, 100, 100, 100 }; @@ -31,7 +32,7 @@ public class LivingArmourUpgradeDigging extends LivingArmourUpgrade } @Override - public void onTick(World world, EntityPlayer player, LivingArmour livingArmour) + public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour) { if (changeMap.containsKey(livingArmour) && changeMap.get(livingArmour)) { diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradePoisonResist.java b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradePoisonResist.java index c5643f77..b44512ae 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradePoisonResist.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradePoisonResist.java @@ -6,6 +6,7 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.api.livingArmour.ILivingArmour; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import WayofTime.bloodmagic.util.ChatUtil; import WayofTime.bloodmagic.util.helper.TextHelper; @@ -24,7 +25,7 @@ public class LivingArmourUpgradePoisonResist extends LivingArmourUpgrade } @Override - public void onTick(World world, EntityPlayer player, LivingArmour livingArmour) + public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour) { if (player.isPotionActive(Potion.poison) && poisonCooldown <= 0) { diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeSpeed.java b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeSpeed.java index 7f0cce2b..4a429042 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeSpeed.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/LivingArmourUpgradeSpeed.java @@ -10,6 +10,7 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.api.livingArmour.ILivingArmour; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; import com.google.common.collect.HashMultimap; @@ -30,7 +31,7 @@ public class LivingArmourUpgradeSpeed extends LivingArmourUpgrade } @Override - public void onTick(World world, EntityPlayer player, LivingArmour livingArmour) + public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour) { if (player.isSprinting()) { diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/StatTrackerDigging.java b/src/main/java/WayofTime/bloodmagic/livingArmour/StatTrackerDigging.java index a72900b1..560aac82 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/StatTrackerDigging.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/StatTrackerDigging.java @@ -76,7 +76,7 @@ public class StatTrackerDigging extends StatTracker for (int i = 0; i < 5; i++) { - if (totalBlocksDug < blocksRequired[i]) + if (totalBlocksDug >= blocksRequired[i]) { upgradeList.add(new LivingArmourUpgradeDigging(i)); }