mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
56 lines
1.6 KiB
Java
56 lines
1.6 KiB
Java
package com.hbm.items.armor;
|
|
|
|
import java.util.List;
|
|
|
|
import com.hbm.handler.ArmorModHandler;
|
|
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
import net.minecraft.entity.item.EntityItem;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.EnumChatFormatting;
|
|
import net.minecraft.util.Vec3;
|
|
|
|
public class ItemModLodestone extends ItemArmorMod {
|
|
|
|
int range;
|
|
|
|
public ItemModLodestone(int range) {
|
|
super(ArmorModHandler.extra, true, true, true, true);
|
|
this.range = range;
|
|
}
|
|
|
|
@Override
|
|
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
|
|
|
|
list.add(EnumChatFormatting.DARK_GRAY + "Attracts nearby items");
|
|
list.add(EnumChatFormatting.DARK_GRAY + "Item attraction range: " + range);
|
|
list.add("");
|
|
super.addInformation(itemstack, player, list, bool);
|
|
}
|
|
|
|
@Override
|
|
public void addDesc(List list, ItemStack stack, ItemStack armor) {
|
|
list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + " (Magnetic range: " + range + ")");
|
|
}
|
|
|
|
@Override
|
|
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
|
|
|
|
List<EntityItem> items = entity.worldObj.getEntitiesWithinAABB(EntityItem.class, entity.boundingBox.expand(range, range, range));
|
|
|
|
for(EntityItem item : items) {
|
|
|
|
Vec3 vec = Vec3.createVectorHelper(entity.posX - item.posX, entity.posY - item.posY, entity.posZ - item.posZ);
|
|
vec = vec.normalize();
|
|
|
|
item.motionX += vec.xCoord * 0.05;
|
|
item.motionY += vec.yCoord * 0.05;
|
|
item.motionZ += vec.zCoord * 0.05;
|
|
|
|
if(vec.yCoord > 0 && item.motionY < 0.04)
|
|
item.motionY += 0.2;
|
|
}
|
|
}
|
|
}
|