package com.agilemods.materiamuto.common.tile; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import java.util.List; public class TileInterdictionTorch extends TileEntity { public static final int PUSH_RADIUS = 5; @Override public void updateEntity() { if (!worldObj.isRemote) { List<Entity> entityList = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).expand(PUSH_RADIUS, PUSH_RADIUS, PUSH_RADIUS)); if (entityList != null && !entityList.isEmpty()) { Vec3 tileCoord = Vec3.createVectorHelper(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); for (Entity entity : entityList) { if (entity instanceof EntityPlayer || entity instanceof EntityItem) { continue; } Vec3 mobCoord = Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ); Vec3 direction = tileCoord.subtract(mobCoord).normalize(); entity.motionX = direction.xCoord; entity.motionY = direction.zCoord; entity.motionZ = direction.zCoord; } } } } }