mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
72 lines
2.3 KiB
Java
72 lines
2.3 KiB
Java
package com.hbm.items.armor;
|
|
|
|
import java.util.List;
|
|
|
|
import com.hbm.handler.ArmorModHandler;
|
|
import com.hbm.items.ModItems;
|
|
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
import net.minecraft.entity.ai.EntityAICreeperSwell;
|
|
import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry;
|
|
import net.minecraft.entity.monster.EntityCreeper;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.potion.Potion;
|
|
import net.minecraft.potion.PotionEffect;
|
|
import net.minecraft.util.DamageSource;
|
|
import net.minecraft.util.EnumChatFormatting;
|
|
|
|
public class ItemModDefuser extends ItemArmorMod {
|
|
|
|
public ItemModDefuser() {
|
|
super(ArmorModHandler.extra, true, true, true, true);
|
|
}
|
|
|
|
@Override
|
|
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
|
|
|
|
list.add(EnumChatFormatting.YELLOW + "Defuses nearby creepers");
|
|
list.add("");
|
|
super.addInformation(itemstack, player, list, bool);
|
|
}
|
|
|
|
@Override
|
|
public void addDesc(List list, ItemStack stack, ItemStack armor) {
|
|
list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Defuses creepers)");
|
|
}
|
|
|
|
@Override
|
|
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
|
|
|
|
if(entity.worldObj.isRemote || entity.worldObj.getTotalWorldTime() % 20 != 0) return;
|
|
|
|
List<EntityCreeper> creepers = entity.worldObj.getEntitiesWithinAABB(EntityCreeper.class, entity.boundingBox.expand(5, 5, 5));
|
|
|
|
for(EntityCreeper creeper : creepers) {
|
|
|
|
if(creeper.getCreeperState() == 1 || creeper.func_146078_ca()) {
|
|
creeper.setCreeperState(-1);
|
|
creeper.getDataWatcher().updateObject(18, new Byte((byte) 0));
|
|
|
|
EntityAICreeperSwell toRem = null;
|
|
for(Object o : creeper.tasks.taskEntries) {
|
|
EntityAITaskEntry entry = (EntityAITaskEntry) o;
|
|
|
|
if(entry.action instanceof EntityAICreeperSwell) {
|
|
toRem = (EntityAICreeperSwell) entry.action;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(toRem != null) {
|
|
creeper.tasks.removeTask(toRem);
|
|
creeper.worldObj.playSoundEffect(creeper.posX, creeper.posY, creeper.posZ, "hbm:item.pinBreak", 1.0F, 1.0F);
|
|
creeper.dropItem(ModItems.safety_fuse, 1);
|
|
creeper.attackEntityFrom(DamageSource.causeMobDamage(entity), 1.0F);
|
|
creeper.addPotionEffect(new PotionEffect(Potion.weakness.id, 0, 200));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|