Improved Bound tools. Made them actually use LP!

This commit is contained in:
WayofTime 2016-01-03 08:56:31 -05:00
parent ae14eac769
commit dc0925c5a6
4 changed files with 45 additions and 18 deletions

View file

@ -37,17 +37,22 @@ public class ItemBoundAxe extends ItemBoundTool
@Override @Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge) protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge)
{ {
if (world.isRemote)
{
return;
}
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player); boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player);
int fortuneLvl = EnchantmentHelper.getFortuneModifier(player); int fortuneLvl = EnchantmentHelper.getFortuneModifier(player);
int range = (int) (charge * 0.25); int range = (int) (charge / 6); //Charge is a max of 30 - want 5 to be the max
HashMultiset<ItemStackWrapper> drops = HashMultiset.create(); HashMultiset<ItemStackWrapper> drops = HashMultiset.create();
BlockPos playerPos = player.getPosition().add(0, -1, 0); BlockPos playerPos = player.getPosition();
for (int i = -range; i <= range; i++) for (int i = -range; i <= range; i++)
{ {
for (int j = -range; j <= range; j++) for (int j = 0; j <= 2 * range; j++)
{ {
for (int k = -range; k <= range; k++) for (int k = -range; k <= range; k++)
{ {
@ -79,7 +84,9 @@ public class ItemBoundAxe extends ItemBoundTool
} }
} }
world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false); ItemBindable.syphonNetwork(stack, player, (int) (charge * charge * charge / 2.7));
world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.1F, false);
dropStacks(drops, world, playerPos.add(0, 1, 0)); dropStacks(drops, world, playerPos.add(0, 1, 0));
} }

View file

@ -1,24 +1,23 @@
package WayofTime.bloodmagic.item; package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.ItemStackWrapper; import java.util.List;
import com.google.common.collect.HashMultiset; import java.util.Set;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multiset;
import com.google.common.collect.Sets;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos; import net.minecraft.util.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import java.util.List; import com.google.common.collect.HashMultiset;
import java.util.Set; import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
public class ItemBoundPickaxe extends ItemBoundTool public class ItemBoundPickaxe extends ItemBoundTool
{ {
@ -44,17 +43,22 @@ public class ItemBoundPickaxe extends ItemBoundTool
@Override @Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge) protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge)
{ {
if (world.isRemote)
{
return;
}
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player); boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player);
int fortuneLvl = EnchantmentHelper.getFortuneModifier(player); int fortuneLvl = EnchantmentHelper.getFortuneModifier(player);
int range = (int) (charge * 0.25); int range = (int) (charge / 6); //Charge is a max of 30 - want 5 to be the max
HashMultiset<ItemStackWrapper> drops = HashMultiset.create(); HashMultiset<ItemStackWrapper> drops = HashMultiset.create();
BlockPos playerPos = player.getPosition().add(0, -1, 0); BlockPos playerPos = player.getPosition();
for (int i = -range; i <= range; i++) for (int i = -range; i <= range; i++)
{ {
for (int j = -range; j <= range; j++) for (int j = 0; j <= 2 * range; j++)
{ {
for (int k = -range; k <= range; k++) for (int k = -range; k <= range; k++)
{ {
@ -86,6 +90,8 @@ public class ItemBoundPickaxe extends ItemBoundTool
} }
} }
ItemBindable.syphonNetwork(stack, player, (int) (charge * charge * charge / 2.7));
world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false); world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false);
dropStacks(drops, world, playerPos.add(0, 1, 0)); dropStacks(drops, world, playerPos.add(0, 1, 0));
} }

View file

@ -1,9 +1,11 @@
package WayofTime.bloodmagic.item; package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.ItemStackWrapper; import WayofTime.bloodmagic.api.ItemStackWrapper;
import com.google.common.collect.HashMultiset; import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.SharedMonsterAttributes;
@ -35,17 +37,22 @@ public class ItemBoundShovel extends ItemBoundTool
@Override @Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge) protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge)
{ {
if (world.isRemote)
{
return;
}
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player); boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(player);
int fortuneLvl = EnchantmentHelper.getFortuneModifier(player); int fortuneLvl = EnchantmentHelper.getFortuneModifier(player);
int range = (int) (charge * 0.25); int range = (int) (charge / 6); //Charge is a max of 30 - want 5 to be the max
HashMultiset<ItemStackWrapper> drops = HashMultiset.create(); HashMultiset<ItemStackWrapper> drops = HashMultiset.create();
BlockPos playerPos = player.getPosition().add(0, -1, 0); BlockPos playerPos = player.getPosition();
for (int i = -range; i <= range; i++) for (int i = -range; i <= range; i++)
{ {
for (int j = -range; j <= range; j++) for (int j = 0; j <= 2 * range; j++)
{ {
for (int k = -range; k <= range; k++) for (int k = -range; k <= range; k++)
{ {
@ -77,6 +84,8 @@ public class ItemBoundShovel extends ItemBoundTool
} }
} }
ItemBindable.syphonNetwork(stack, player, (int) (charge * charge * charge / 2.7));
world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false); world.createExplosion(player, playerPos.getX(), playerPos.getY(), playerPos.getZ(), 0.5F, false);
dropStacks(drops, world, playerPos.add(0, 1, 0)); dropStacks(drops, world, playerPos.add(0, 1, 0));
} }

View file

@ -7,7 +7,9 @@ import WayofTime.bloodmagic.api.util.helper.BindableHelper;
import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.api.util.helper.NBTHelper;
import WayofTime.bloodmagic.registry.ModItems; import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.util.helper.TextHelper; import WayofTime.bloodmagic.util.helper.TextHelper;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -55,6 +57,9 @@ public class ItemBoundSword extends ItemSword
// TODO Make conical charge blast // TODO Make conical charge blast
Explosion explosion = new Explosion(worldIn, playerIn, playerIn.posX, playerIn.posY, playerIn.posZ, (float) (i * 0.5), true, true); Explosion explosion = new Explosion(worldIn, playerIn, playerIn.posX, playerIn.posY, playerIn.posZ, (float) (i * 0.5), true, true);
ItemBindable.syphonNetwork(stack, playerIn, (int) (i * i * i / 2.7));
if (net.minecraftforge.event.ForgeEventFactory.onExplosionStart(worldIn, explosion)) if (net.minecraftforge.event.ForgeEventFactory.onExplosionStart(worldIn, explosion))
return; return;
explosion.doExplosionA(); explosion.doExplosionA();