summaryrefslogtreecommitdiff
path: root/src/main/java/com/sosnitzka/taiga/traits
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/sosnitzka/taiga/traits')
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java2
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java2
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitCurvature.java35
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java8
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitDissolving.java16
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitGarishly.java4
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java4
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitInstable.java5
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java10
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitOrganizing.java2
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitSofty.java2
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitTraditional.java16
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitUncertain.java4
13 files changed, 70 insertions, 40 deletions
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java b/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java
index 9ff620a..ecd20f1 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitAnalysing.java
@@ -34,7 +34,7 @@ public class TraitAnalysing extends AbstractTrait {
@SubscribeEvent
public void onBlockBreak(BlockEvent.BreakEvent event) {
EntityPlayer player = event.getPlayer();
- if (player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
+ if (!event.getWorld().isRemote && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
event.setExpToDrop(this.getUpdateXP(event.getExpToDrop()));
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java b/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
index 9dd9d8c..cddd68b 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
@@ -23,7 +23,7 @@ public class TraitCascade extends AbstractTrait {
sx = x = pos.getX();
sy = y = pos.getY();
sz = z = pos.getZ();
- for (int i = random.nextInt((int) Math.max(ToolHelper.getCurrentDurability(tool) * 1.5f, 100)); i > 0; i--) {
+ for (int i = random.nextInt((int) Math.max(ToolHelper.getCurrentDurability(tool) * 1.5f, 100) + 10); i > 0; i--) {
int r = random.nextInt(3);
int d = random.nextBoolean() ? 1 : -1;
if (r == 0) x += d;
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitCurvature.java b/src/main/java/com/sosnitzka/taiga/traits/TraitCurvature.java
index c8aa8c5..3e0ecc5 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitCurvature.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitCurvature.java
@@ -23,6 +23,8 @@ import slimeknights.tconstruct.library.utils.TinkerUtil;
public class TraitCurvature extends AbstractTrait {
+ private static BlockPos pos = new BlockPos(0, 0, 0);
+
public TraitCurvature() {
super("curvature", TextFormatting.BLACK);
MinecraftForge.EVENT_BUS.register(this);
@@ -30,39 +32,39 @@ public class TraitCurvature extends AbstractTrait {
@Override
public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase player, boolean wasEffective) {
- if (random.nextFloat() <= 0.05 && world.provider.getDimension() != -1) {
- teleport(player, world);
+ if (player.worldObj.isRemote) {
+ return;
+ }
+ if (random.nextFloat() <= 0.01 && world.provider.getDimension() != -1) {
+ teleport(player, world, 5);
player.playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F);
}
}
+
@Override
public void afterHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean wasCritical, boolean wasHit) {
World w = player.getEntityWorld();
- if (random.nextFloat() <= 0.1 && w.provider.getDimension() != -1) {
- if (random.nextBoolean()) {
- teleport(player, w);
- target.playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F);
- } else {
- target.playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F);
- teleport(target, w);
- }
+ if (random.nextFloat() <= 0.3) {
+ target.playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F);
+ changepos(player, target);
}
}
+
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
- if (event.getSource().getEntity() instanceof EntityPlayer) {
+ if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
- if (!w.isRemote && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
+ if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
ItemStack i = new ItemStack(Items.ENDER_PEARL, random.nextInt(3));
event.getDrops().add(0, new EntityItem(w, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, i));
}
}
}
- private void teleport(EntityLivingBase e, World w) {
+ private void teleport(EntityLivingBase e, World w, int max) {
int x = e.getPosition().getX() + random.nextInt(250) - 125;
int y = e.getPosition().getY();
int z = e.getPosition().getZ() + random.nextInt(250) - 125;
@@ -76,4 +78,11 @@ public class TraitCurvature extends AbstractTrait {
e.setPosition(x, y, z);
}
+ private void changepos(EntityLivingBase player, EntityLivingBase target) {
+ BlockPos pp = new BlockPos(player.getPosition());
+ BlockPos tp = new BlockPos(target.getPosition());
+ player.setPosition(tp.getX(), tp.getY(), tp.getZ());
+ target.setPosition(pp.getX(), pp.getY(), pp.getZ());
+ }
+
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java b/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java
index 5f76087..25ffa3b 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitDiffuse.java
@@ -24,7 +24,7 @@ public class TraitDiffuse extends AbstractTrait {
@SubscribeEvent
public void onXpDrop(LivingExperienceDropEvent event) {
EntityPlayer player = event.getAttackingPlayer();
- if (player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
+ if (!event.getEntity().getEntityWorld().isRemote && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
event.setDroppedExperience(0);
}
@@ -33,7 +33,7 @@ public class TraitDiffuse extends AbstractTrait {
@SubscribeEvent
public void onBlockBreak(BlockEvent.BreakEvent event) {
EntityPlayer player = event.getPlayer();
- if (player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
+ if (!player.getEntityWorld().isRemote && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
event.setExpToDrop(this.getUpdateXP(event.getExpToDrop()));
}
@@ -42,9 +42,9 @@ public class TraitDiffuse extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
- if (event.getSource().getEntity() instanceof EntityPlayer) {
+ if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
- if (!w.isRemote && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
+ if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
event.getDrops().clear();
}
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitDissolving.java b/src/main/java/com/sosnitzka/taiga/traits/TraitDissolving.java
index 41f684c..e6c9c8e 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitDissolving.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitDissolving.java
@@ -20,13 +20,15 @@ public class TraitDissolving extends AbstractTrait {
// high chance to remove XP, low chance to double,triple or quatruple dropped Experience
@SubscribeEvent
public void onXpDrop(LivingExperienceDropEvent event) {
- EntityPlayer player = event.getAttackingPlayer();
- float r = random.nextFloat();
- if (r <= 0.75 && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
- event.setDroppedExperience(0);
- }
- if (r > 0.95 && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
- event.setDroppedExperience(event.getDroppedExperience() * (random.nextInt(3) + 2));
+ if (!event.getEntity().getEntityWorld().isRemote) {
+ EntityPlayer player = event.getAttackingPlayer();
+ float r = random.nextFloat();
+ if (r <= 0.75 && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
+ event.setDroppedExperience(0);
+ }
+ if (r > 0.95 && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier)) {
+ event.setDroppedExperience(event.getDroppedExperience() * (random.nextInt(3) + 2));
+ }
}
}
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitGarishly.java b/src/main/java/com/sosnitzka/taiga/traits/TraitGarishly.java
index 45beff7..e074bd4 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitGarishly.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitGarishly.java
@@ -30,9 +30,9 @@ public class TraitGarishly extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
- if (event.getSource().getEntity() instanceof EntityPlayer) {
+ if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
- if (!w.isRemote && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
+ if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
int r = random.nextInt(5);
ItemStack i = null;
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java b/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java
index 960afa0..08dfc52 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitHollow.java
@@ -38,9 +38,9 @@ public class TraitHollow extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
- if (event.getSource().getEntity() instanceof EntityPlayer) {
+ if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
- if (!w.isRemote && random.nextFloat() <= 0.9 && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
+ if (random.nextFloat() <= 0.9 && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
event.getDrops().clear();
}
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitInstable.java b/src/main/java/com/sosnitzka/taiga/traits/TraitInstable.java
index d188c86..6df01db 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitInstable.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitInstable.java
@@ -56,14 +56,15 @@ public class TraitInstable extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
- if (event.getSource().getEntity() instanceof EntityPlayer) {
+ if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
- if (!w.isRemote && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
+ if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
ItemStack i = new ItemStack(Items.GUNPOWDER, random.nextInt(4));
event.getDrops().add(0, new EntityItem(w, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, i));
}
}
}
+
private void explode(World w, Entity e, double x, double y, double z) {
w.newExplosion(e, x, y, z, 1.2f + random.nextFloat() * 35, random.nextBoolean(), true);
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java b/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java
index 8f406f3..f3f6732 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitNatureBound.java
@@ -13,12 +13,14 @@ import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.tconstruct.library.traits.AbstractTrait;
+import slimeknights.tconstruct.library.utils.TagUtil;
+import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
public class TraitNatureBound extends AbstractTrait {
public static DamageSource splinter = new DamageSource("splinter").setDamageBypassesArmor();
- private static int chance = 10;
+ private static int chance = 20;
public TraitNatureBound() {
super("naturebound", TextFormatting.GREEN);
@@ -34,8 +36,8 @@ public class TraitNatureBound extends AbstractTrait {
@Override
public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) {
// *20 because 20 ticks in a second
- if (!world.isRemote && entity instanceof EntityLivingBase && random.nextInt(20 * chance) == 0) {
- ToolHelper.healTool(tool, 1, (EntityLivingBase) entity);
+ if (!world.isRemote && entity instanceof EntityLivingBase && random.nextInt(30 * chance) == 0) {
+ ToolHelper.healTool(tool, random.nextInt(9) + 1, (EntityLivingBase) entity);
}
}
@@ -43,7 +45,7 @@ public class TraitNatureBound extends AbstractTrait {
@SubscribeEvent
public void onBlockBreak(BlockEvent.BreakEvent e) {
Block b = e.getWorld().getBlockState(e.getPos()).getBlock();
- if (random.nextFloat() <= .07 && (b == Blocks.DIRT || b == Blocks.GRASS || b == Blocks.LOG || b == Blocks.LOG2 || b == Blocks.STONE)) {
+ if (!e.getWorld().isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(e.getPlayer().getHeldItemMainhand()), identifier) && random.nextFloat() <= .07 && (b == Blocks.DIRT || b == Blocks.GRASS || b == Blocks.LOG || b == Blocks.LOG2 || b == Blocks.STONE)) {
e.setCanceled(true);
e.getPlayer().playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F);
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitOrganizing.java b/src/main/java/com/sosnitzka/taiga/traits/TraitOrganizing.java
index f03d4c6..f3a279b 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitOrganizing.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitOrganizing.java
@@ -13,7 +13,7 @@ import slimeknights.tconstruct.library.utils.ToolHelper;
public class TraitOrganizing extends AbstractTrait {
- private static final float chance = 0.1f;
+ private static final float chance = 0.02f;
public TraitOrganizing() {
super("organizing", TextFormatting.GREEN);
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitSofty.java b/src/main/java/com/sosnitzka/taiga/traits/TraitSofty.java
index 4771e72..65b15ad 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitSofty.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitSofty.java
@@ -21,7 +21,7 @@ public class TraitSofty extends AbstractTrait {
@Override
public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase player, boolean wasEffective) {
- if (!world.isRemote && state.getMaterial() != Material.ROCK && state.getMaterial() != Material.GROUND && random.nextFloat() < chance) {
+ if (!world.isRemote && state.getMaterial().equals(Material.GROUND) && random.nextFloat() < chance) {
ToolHelper.healTool(tool, random.nextInt(10), player);
}
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitTraditional.java b/src/main/java/com/sosnitzka/taiga/traits/TraitTraditional.java
new file mode 100644
index 0000000..7f088a4
--- /dev/null
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitTraditional.java
@@ -0,0 +1,16 @@
+package com.sosnitzka.taiga.traits;
+
+import net.minecraft.util.text.TextFormatting;
+import net.minecraftforge.common.MinecraftForge;
+import slimeknights.tconstruct.library.traits.AbstractTrait;
+
+
+public class TraitTraditional extends AbstractTrait {
+
+ public TraitTraditional() {
+ super("traditional", TextFormatting.GREEN);
+ MinecraftForge.EVENT_BUS.register(this);
+ }
+
+
+}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitUncertain.java b/src/main/java/com/sosnitzka/taiga/traits/TraitUncertain.java
index 8bd8f7b..ef8bf57 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitUncertain.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitUncertain.java
@@ -46,9 +46,9 @@ public class TraitUncertain extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
- if (event.getSource().getEntity() instanceof EntityPlayer) {
+ if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
- if (!w.isRemote && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
+ if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
ItemStack i = new ItemStack(Items.COAL, random.nextInt(4));
if (random.nextBoolean()) {
int r = random.nextInt(4);