From 719d326f7e5eab0607fb2038387055dc998f1804 Mon Sep 17 00:00:00 2001 From: Robert Sosnitzka Date: Thu, 19 Jan 2017 22:13:20 +0100 Subject: Fixed something --- .../java/com/sosnitzka/taiga/MaterialTraits.java | 4 +- .../com/sosnitzka/taiga/traits/TraitAnalysing.java | 4 +- .../com/sosnitzka/taiga/traits/TraitBerserk.java | 107 +++++++++++++++++++++ .../com/sosnitzka/taiga/traits/TraitBeserk.java | 107 --------------------- .../com/sosnitzka/taiga/traits/TraitDiffuse.java | 6 +- 5 files changed, 116 insertions(+), 112 deletions(-) create mode 100644 src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java delete mode 100644 src/main/java/com/sosnitzka/taiga/traits/TraitBeserk.java (limited to 'src/main/java') diff --git a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java index ee9ad58..47b2bea 100644 --- a/src/main/java/com/sosnitzka/taiga/MaterialTraits.java +++ b/src/main/java/com/sosnitzka/taiga/MaterialTraits.java @@ -55,7 +55,7 @@ public class MaterialTraits { public static final AbstractTrait superheavy = new TraitSuperHeavy(); public static final AbstractTrait dev = new TraitDevelopement(); public static final AbstractTrait carousel = new TraitCarousel(); - public static final AbstractTrait beserk = new TraitBeserk(); + public static final AbstractTrait berserk = new TraitBerserk(); public static final AbstractTrait leveled1 = new TraitLeveled(1); public static final AbstractTrait leveled2 = new TraitLeveled(2); public static final AbstractTrait leveled3 = new TraitLeveled(3); @@ -91,7 +91,7 @@ public class MaterialTraits { public static Material imperomite = new Material("imperomite", TextFormatting.DARK_RED).addTrait(hollow); public static Material solarium = new Material("solarium", TextFormatting.YELLOW).addTrait(superheavy).addTrait(crushing); public static Material nihilite = new Material("nihilite", TextFormatting.DARK_GRAY).addTrait(souleater); - public static Material adamant = new Material("adamant", TextFormatting.GOLD).addTrait(beserk).addTrait(leveled1, MaterialTypes.EXTRA).addTrait(leveled2, MaterialTypes.HANDLE).addTrait(leveled3, MaterialTypes.HEAD); //.addTrait(dev); + public static Material adamant = new Material("adamant", TextFormatting.GOLD).addTrait(berserk); public static Material dyonite = new Material("dyonite", TextFormatting.GREEN).addTrait(tantrum); public static Material nucleum = new Material("nucleum", TextFormatting.YELLOW).addTrait(decay).addTrait(mutate); public static Material lumix = new Material("lumix", TextFormatting.YELLOW).addTrait(bright, MaterialTypes.HANDLE).addTrait(glimmer, MaterialTypes.HEAD); diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java b/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java index 91acf66..b0f1228 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java @@ -25,7 +25,7 @@ public class TraitAnalysing extends AbstractTrait { @SubscribeEvent public void onXpDrop(LivingExperienceDropEvent event) { EntityPlayer player = event.getAttackingPlayer(); - if (player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier) && event.getDroppedExperience() >= 0) { + if (player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier) && event.getDroppedExperience() > 0) { event.setDroppedExperience(this.getUpdateXP(event.getDroppedExperience())); } @@ -34,7 +34,7 @@ public class TraitAnalysing extends AbstractTrait { @SubscribeEvent public void onBlockBreak(BlockEvent.BreakEvent event) { EntityPlayer player = event.getPlayer(); - if (!event.getWorld().isRemote && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier) && event.getExpToDrop() >= 0) { + if (!event.getWorld().isRemote && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier) && event.getExpToDrop() > 0) { event.setExpToDrop(this.getUpdateXP(event.getExpToDrop())); } diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java b/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java new file mode 100644 index 0000000..f43df72 --- /dev/null +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitBerserk.java @@ -0,0 +1,107 @@ +package com.sosnitzka.taiga.traits; + +import com.sosnitzka.taiga.util.Utils; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.FakePlayer; +import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import slimeknights.tconstruct.library.tools.ToolNBT; +import slimeknights.tconstruct.library.utils.TagUtil; +import slimeknights.tconstruct.library.utils.TinkerUtil; +import slimeknights.tconstruct.library.utils.ToolHelper; + + +public class TraitBerserk extends TraitProgressiveStats { + + protected static int TICK_PER_STAT = 8; + + public TraitBerserk() { + super(TraitBerserk.class.getSimpleName().toLowerCase().substring(5), TextFormatting.RED); + MinecraftForge.EVENT_BUS.register(this); + } + + @Override + public void miningSpeed(ItemStack tool, PlayerInteractEvent.BreakSpeed event) { + NBTTagCompound tag = TagUtil.getExtraTag(tool); + Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); + if (!data.active) return; + event.setNewSpeed(event.getNewSpeed() * 4); + } + + @Override + public float damage(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, float newDamage, boolean isCritical) { + NBTTagCompound tag = TagUtil.getExtraTag(tool); + Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); + if (!data.active) return newDamage; + return newDamage * 4; + } + + + @Override + public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) { + if (!world.isRemote) { + NBTTagCompound tag = TagUtil.getExtraTag(tool); + EntityLivingBase player = (EntityLivingBase) entity; + Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); + NBTTagCompound root = TagUtil.getTagSafe(tool); + StatNBT distributed = getBonus(root); + if (data.active) { + TagUtil.setEnchantEffect(root, true); + if (entity instanceof FakePlayer) { + return; + } + if (entity.ticksExisted % TICK_PER_STAT > 0) { + return; + } + + ToolNBT stat = TagUtil.getToolStats(tool); + if (random.nextFloat() > .80f) { + stat.durability -= 1; + distributed.durability -= 1; + } else + ToolHelper.damageTool(tool, 1, player); + TagUtil.setToolTag(root, stat.get()); + setBonus(root, distributed); + } else TagUtil.setEnchantEffect(root, false); + } + } + + @SubscribeEvent + public void onRightClickItem(PlayerInteractEvent.RightClickItem event) { + World w = event.getWorld(); + ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); + if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { + NBTTagCompound tag = TagUtil.getExtraTag(tool); + Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); + NBTTagCompound root = TagUtil.getTagSafe(tool); + StatNBT distributed = getBonus(root); + ToolNBT stat = TagUtil.getToolStats(tool); + if (data.active) { + data.active = false; + TagUtil.setEnchantEffect(root, false); + TagUtil.setExtraTag(root, tag); + data.write(tag); + + } else { + stat.durability -= 10; + distributed.durability -= 10; + TagUtil.setToolTag(root, stat.get()); + setBonus(root, distributed); + data.active = true; + data.write(tag); + + TagUtil.setExtraTag(root, tag); + data.write(tag); + } + + } + } + + +} diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitBeserk.java b/src/main/java/com/sosnitzka/taiga/traits/TraitBeserk.java deleted file mode 100644 index 20525b6..0000000 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitBeserk.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.sosnitzka.taiga.traits; - -import com.sosnitzka.taiga.util.Utils; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import slimeknights.tconstruct.library.tools.ToolNBT; -import slimeknights.tconstruct.library.utils.TagUtil; -import slimeknights.tconstruct.library.utils.TinkerUtil; -import slimeknights.tconstruct.library.utils.ToolHelper; - - -public class TraitBeserk extends TraitProgressiveStats { - - protected static int TICK_PER_STAT = 8; - - public TraitBeserk() { - super(TraitBeserk.class.getSimpleName().toLowerCase().substring(5), TextFormatting.RED); - MinecraftForge.EVENT_BUS.register(this); - } - - @Override - public void miningSpeed(ItemStack tool, PlayerInteractEvent.BreakSpeed event) { - NBTTagCompound tag = TagUtil.getExtraTag(tool); - Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); - if (!data.active) return; - event.setNewSpeed(event.getNewSpeed() * 4); - } - - @Override - public float damage(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, float newDamage, boolean isCritical) { - NBTTagCompound tag = TagUtil.getExtraTag(tool); - Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); - if (!data.active) return newDamage; - return newDamage * 4; - } - - - @Override - public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) { - if (!world.isRemote) { - NBTTagCompound tag = TagUtil.getExtraTag(tool); - EntityLivingBase player = (EntityLivingBase) entity; - Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); - NBTTagCompound root = TagUtil.getTagSafe(tool); - StatNBT distributed = getBonus(root); - if (data.active) { - TagUtil.setEnchantEffect(root, true); - if (entity instanceof FakePlayer) { - return; - } - if (entity.ticksExisted % TICK_PER_STAT > 0) { - return; - } - - ToolNBT stat = TagUtil.getToolStats(tool); - if (random.nextFloat() > .80f) { - stat.durability -= 1; - distributed.durability -= 1; - } else - ToolHelper.damageTool(tool, 1, player); - TagUtil.setToolTag(root, stat.get()); - setBonus(root, distributed); - } else TagUtil.setEnchantEffect(root, false); - } - } - - @SubscribeEvent - public void onRightClickItem(PlayerInteractEvent.RightClickItem event) { - World w = event.getWorld(); - ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); - if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { - NBTTagCompound tag = TagUtil.getExtraTag(tool); - Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); - NBTTagCompound root = TagUtil.getTagSafe(tool); - StatNBT distributed = getBonus(root); - ToolNBT stat = TagUtil.getToolStats(tool); - if (data.active) { - data.active = false; - TagUtil.setEnchantEffect(root, false); - TagUtil.setExtraTag(root, tag); - data.write(tag); - - } else { - stat.durability -= 10; - distributed.durability -= 10; - TagUtil.setToolTag(root, stat.get()); - setBonus(root, distributed); - data.active = true; - data.write(tag); - - TagUtil.setExtraTag(root, tag); - data.write(tag); - } - - } - } - - -} diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java b/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java index 25fddc6..d4602a5 100644 --- a/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java +++ b/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java @@ -15,6 +15,10 @@ import slimeknights.tconstruct.library.utils.TinkerUtil; public class TraitDiffuse extends AbstractTrait { + /** + * + */ + public TraitDiffuse() { super("diffuse", TextFormatting.DARK_GRAY); MinecraftForge.EVENT_BUS.register(this); @@ -40,7 +44,7 @@ public class TraitDiffuse extends AbstractTrait { } private float getUpdateXP(int xp) { - float exp = random.nextFloat() * random.nextFloat() * random.nextFloat() * (xp + random.nextFloat() * xp); + float exp = random.nextFloat() * random.nextFloat() * random.nextFloat() * (1 + random.nextFloat() * xp); if (random.nextFloat() <= 0.25) return exp; else return 0; -- cgit v1.2.3