From 076a6d6f8756e49ccad8d2d18c6f4f03bcfd0f05 Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Sun, 9 Jul 2017 17:55:25 +0200 Subject: fixed #149, some more cleanup --- src/main/java/com/sosnitzka/taiga/Blocks.java | 1 - .../taiga/generic/TraitProgressiveStats.java | 115 --------------------- .../com/sosnitzka/taiga/traits/TraitBerserk.java | 1 - .../com/sosnitzka/taiga/traits/TraitDecay.java | 1 - .../taiga/traits/TraitProgressiveStats.java | 115 +++++++++++++++++++++ .../sosnitzka/taiga/traits/TraitSlaughtering.java | 5 +- .../sosnitzka/taiga/traits/TraitSuperHeavy.java | 1 - 7 files changed, 117 insertions(+), 122 deletions(-) delete mode 100644 src/main/java/com/sosnitzka/taiga/generic/TraitProgressiveStats.java create mode 100644 src/main/java/com/sosnitzka/taiga/traits/TraitProgressiveStats.java (limited to 'src/main/java/com') diff --git a/src/main/java/com/sosnitzka/taiga/Blocks.java b/src/main/java/com/sosnitzka/taiga/Blocks.java index 62eee38..55c27b8 100644 --- a/src/main/java/com/sosnitzka/taiga/Blocks.java +++ b/src/main/java/com/sosnitzka/taiga/Blocks.java @@ -70,7 +70,6 @@ public class Blocks { public static Block invaliteBlock = new BasicBlock("invalite_block", Material.ROCK, 20.0f, 35.0f, VIBRANIUM, PREFIX_BLOCK); - /** * Registers all materials' ingots and nuggets
* Detailed summary:
diff --git a/src/main/java/com/sosnitzka/taiga/generic/TraitProgressiveStats.java b/src/main/java/com/sosnitzka/taiga/generic/TraitProgressiveStats.java deleted file mode 100644 index 3f535cd..0000000 --- a/src/main/java/com/sosnitzka/taiga/generic/TraitProgressiveStats.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.sosnitzka.taiga.generic; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; -import slimeknights.tconstruct.library.modifiers.ModifierNBT; -import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.library.traits.AbstractTrait; -import slimeknights.tconstruct.library.utils.TagUtil; - -/** - * Base class for tools that progressively gain/award stats. - * The modifier persists 2 different stat-data on the tool: - * - A 'pool' of stats to award - * - A 'bonus' of already awarded stats - *

- * The modifier reapplies the 'bonus' stats on application. - * The pool is not touched inheritly but only provided for the logic of the deriving trait. - */ -public abstract class TraitProgressiveStats extends AbstractTrait { - - protected final String pool_key; // Key to the tag that contains the free unassigned - protected final String applied_key; // Key to the tag that contains the already applied bonus stats - - public TraitProgressiveStats(String identifier, TextFormatting color) { - super(identifier, color); - - pool_key = identifier + "StatPool"; - applied_key = identifier + "StatBonus"; - } - - public TraitProgressiveStats(String identifier, int color) { - super(identifier, color); - - pool_key = identifier + "StatPool"; - applied_key = identifier + "StatBonus"; - } - - /* Modifier management */ - - protected static StatNBT getStats(NBTTagCompound root, String key) { - return ModifierNBT.readTag(TagUtil.getTagSafe(TagUtil.getExtraTag(root), key), StatNBT.class); - } - - protected static void setStats(NBTTagCompound root, StatNBT data, String key) { - NBTTagCompound extra = TagUtil.getExtraTag(root); - NBTTagCompound tag = new NBTTagCompound(); - data.write(tag); - extra.setTag(key, tag); - TagUtil.setExtraTag(root, extra); - } - - @Override - public void applyEffect(NBTTagCompound rootCompound, NBTTagCompound modifierTag) { - super.applyEffect(rootCompound, modifierTag); - // called on tool loading only - // we just apply the saved bonus stats - ToolNBT data = TagUtil.getToolStats(rootCompound); - StatNBT bonus = getBonus(rootCompound); - - data.durability += bonus.durability; - data.speed += bonus.speed; - data.attack += bonus.attack; - - TagUtil.setToolTag(rootCompound, data.get()); - } - - protected boolean hasPool(NBTTagCompound root) { - return TagUtil.getExtraTag(root).hasKey(pool_key); - } - - protected StatNBT getPool(NBTTagCompound root) { - return getStats(root, pool_key); - } - - protected void setPool(NBTTagCompound root, StatNBT data) { - setStats(root, data, pool_key); - } - - protected StatNBT getBonus(NBTTagCompound root) { - return getStats(root, applied_key); - } - - protected void setBonus(NBTTagCompound root, StatNBT data) { - setStats(root, data, applied_key); - } - - protected boolean playerIsBreakingBlock(Entity entity) { - return false; - } - - public static class StatNBT extends ModifierNBT { - - // statpool - public int durability; - public float attack; - public float speed; - - @Override - public void read(NBTTagCompound tag) { - super.read(tag); - durability = tag.getInteger("durability"); - attack = tag.getFloat("attack"); - speed = tag.getFloat("speed"); - } - - @Override - public void write(NBTTagCompound tag) { - super.write(tag); - tag.setInteger("durability", durability); - tag.setFloat("attack", attack); - tag.setFloat("speed", speed); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java b/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java index 96b13be..ec0232d 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java @@ -1,6 +1,5 @@ package com.sosnitzka.taiga.traits; -import com.sosnitzka.taiga.generic.TraitProgressiveStats; import com.sosnitzka.taiga.util.Utils; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitDecay.java b/src/main/java/com/sosnitzka/taiga/traits/TraitDecay.java index 7a8f4bc..2d1364c 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitDecay.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitDecay.java @@ -1,7 +1,6 @@ package com.sosnitzka.taiga.traits; import com.google.common.collect.ImmutableList; -import com.sosnitzka.taiga.generic.TraitProgressiveStats; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitProgressiveStats.java b/src/main/java/com/sosnitzka/taiga/traits/TraitProgressiveStats.java new file mode 100644 index 0000000..d9af33d --- /dev/null +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitProgressiveStats.java @@ -0,0 +1,115 @@ +package com.sosnitzka.taiga.traits; + +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.text.TextFormatting; +import slimeknights.tconstruct.library.modifiers.ModifierNBT; +import slimeknights.tconstruct.library.tools.ToolNBT; +import slimeknights.tconstruct.library.traits.AbstractTrait; +import slimeknights.tconstruct.library.utils.TagUtil; + +/** + * Base class for tools that progressively gain/award stats. + * The modifier persists 2 different stat-data on the tool: + * - A 'pool' of stats to award + * - A 'bonus' of already awarded stats + *

+ * The modifier reapplies the 'bonus' stats on application. + * The pool is not touched inheritly but only provided for the logic of the deriving trait. + */ +public abstract class TraitProgressiveStats extends AbstractTrait { + + protected final String pool_key; // Key to the tag that contains the free unassigned + protected final String applied_key; // Key to the tag that contains the already applied bonus stats + + public TraitProgressiveStats(String identifier, TextFormatting color) { + super(identifier, color); + + pool_key = identifier + "StatPool"; + applied_key = identifier + "StatBonus"; + } + + public TraitProgressiveStats(String identifier, int color) { + super(identifier, color); + + pool_key = identifier + "StatPool"; + applied_key = identifier + "StatBonus"; + } + + /* Modifier management */ + + protected static StatNBT getStats(NBTTagCompound root, String key) { + return ModifierNBT.readTag(TagUtil.getTagSafe(TagUtil.getExtraTag(root), key), StatNBT.class); + } + + protected static void setStats(NBTTagCompound root, StatNBT data, String key) { + NBTTagCompound extra = TagUtil.getExtraTag(root); + NBTTagCompound tag = new NBTTagCompound(); + data.write(tag); + extra.setTag(key, tag); + TagUtil.setExtraTag(root, extra); + } + + @Override + public void applyEffect(NBTTagCompound rootCompound, NBTTagCompound modifierTag) { + super.applyEffect(rootCompound, modifierTag); + // called on tool loading only + // we just apply the saved bonus stats + ToolNBT data = TagUtil.getToolStats(rootCompound); + StatNBT bonus = getBonus(rootCompound); + + data.durability += bonus.durability; + data.speed += bonus.speed; + data.attack += bonus.attack; + + TagUtil.setToolTag(rootCompound, data.get()); + } + + protected boolean hasPool(NBTTagCompound root) { + return TagUtil.getExtraTag(root).hasKey(pool_key); + } + + protected StatNBT getPool(NBTTagCompound root) { + return getStats(root, pool_key); + } + + protected void setPool(NBTTagCompound root, StatNBT data) { + setStats(root, data, pool_key); + } + + protected StatNBT getBonus(NBTTagCompound root) { + return getStats(root, applied_key); + } + + protected void setBonus(NBTTagCompound root, StatNBT data) { + setStats(root, data, applied_key); + } + + protected boolean playerIsBreakingBlock(Entity entity) { + return false; + } + + public static class StatNBT extends ModifierNBT { + + // statpool + public int durability; + public float attack; + public float speed; + + @Override + public void read(NBTTagCompound tag) { + super.read(tag); + durability = tag.getInteger("durability"); + attack = tag.getFloat("attack"); + speed = tag.getFloat("speed"); + } + + @Override + public void write(NBTTagCompound tag) { + super.write(tag); + tag.setInteger("durability", durability); + tag.setFloat("attack", attack); + tag.setFloat("speed", speed); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitSlaughtering.java b/src/main/java/com/sosnitzka/taiga/traits/TraitSlaughtering.java index 4a9f371..2baf143 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitSlaughtering.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitSlaughtering.java @@ -3,7 +3,6 @@ package com.sosnitzka.taiga.traits; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextFormatting; @@ -32,8 +31,8 @@ public class TraitSlaughtering extends AbstractTrait { if (event.getSource().getTrueSource() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); if (!w.isRemote && event.getEntity() instanceof EntityLiving && !(event.getEntity() instanceof EntityPlayer) && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) { - Item i = event.getDrops().get(random.nextInt(event.getDrops().size())).getItem().getItem(); - event.getDrops().add(new EntityItem(event.getEntity().getEntityWorld(), event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, new ItemStack(i, random.nextInt(4) + 1))); + ItemStack i = event.getDrops().get(random.nextInt(event.getDrops().size())).getItem(); + event.getDrops().add(new EntityItem(w, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, new ItemStack(i.getItem(), random.nextInt(4) + 1, i.getMetadata(), i.getTagCompound()))); } } } diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java b/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java index c2f2656..5334048 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitSuperHeavy.java @@ -1,6 +1,5 @@ package com.sosnitzka.taiga.traits; -import com.sosnitzka.taiga.generic.TraitProgressiveStats; import com.sosnitzka.taiga.util.Utils; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; -- cgit v1.2.3