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
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge)
{
if (world.isRemote)
{
return;
}
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(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();
BlockPos playerPos = player.getPosition().add(0, -1, 0);
BlockPos playerPos = player.getPosition();
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++)
{
@ -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));
}

View file

@ -1,24 +1,23 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multiset;
import com.google.common.collect.Sets;
import java.util.List;
import java.util.Set;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import java.util.List;
import java.util.Set;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
public class ItemBoundPickaxe extends ItemBoundTool
{
@ -44,17 +43,22 @@ public class ItemBoundPickaxe extends ItemBoundTool
@Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge)
{
if (world.isRemote)
{
return;
}
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(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();
BlockPos playerPos = player.getPosition().add(0, -1, 0);
BlockPos playerPos = player.getPosition();
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++)
{
@ -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);
dropStacks(drops, world, playerPos.add(0, 1, 0));
}

View file

@ -1,9 +1,11 @@
package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.api.ItemStackWrapper;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
import net.minecraft.block.Block;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.SharedMonsterAttributes;
@ -35,17 +37,22 @@ public class ItemBoundShovel extends ItemBoundTool
@Override
protected void onBoundRelease(ItemStack stack, World world, EntityPlayer player, int charge)
{
if (world.isRemote)
{
return;
}
boolean silkTouch = EnchantmentHelper.getSilkTouchModifier(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();
BlockPos playerPos = player.getPosition().add(0, -1, 0);
BlockPos playerPos = player.getPosition();
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++)
{
@ -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);
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.registry.ModItems;
import WayofTime.bloodmagic.util.helper.TextHelper;
import com.google.common.base.Strings;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@ -55,6 +57,9 @@ public class ItemBoundSword extends ItemSword
// TODO Make conical charge blast
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))
return;
explosion.doExplosionA();