2
1
Fork 1
mirror of https://github.com/ACGaming/Spackenmobs synced 2024-05-19 11:54:25 +02:00
Spackenmobs/src/main/java/mod/acgaming/spackenmobs/entities/EntityAIEatDroppedFish.java
LordMZTE 484236b477 massive cleanup
damn this code was shit
2020-08-29 17:36:56 +02:00

63 lines
2 KiB
Java

package mod.acgaming.spackenmobs.entities;
import net.minecraft.entity.ai.EntityAIBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.List;
public class EntityAIEatDroppedFish extends EntityAIBase {
double searchDistance = 10.0D;
private final EntityJens jens;
private final World world;
public EntityAIEatDroppedFish(EntityJens jens) {
this.jens = jens;
this.world = jens.world;
}
public EntityItem getNearbyFood() {
List<EntityItem> items = getItems();
for(EntityItem item : items) {
return item;
}
return null;
}
List<EntityItem> getItems() {
return this.world.getEntitiesWithinAABB(EntityItem.class,
new AxisAlignedBB(this.jens.posX - this.searchDistance, this.jens.posY - this.searchDistance,
this.jens.posZ - this.searchDistance, this.jens.posX + this.searchDistance,
this.jens.posY + this.searchDistance, this.jens.posZ + this.searchDistance));
}
@Override
public boolean shouldExecute() {
EntityItem getNearbyFood = getNearbyFood();
if(getNearbyFood != null && !this.jens.isChild() && !this.jens.digesting
&& this.jens.isFishItem(getNearbyFood.getItem())) {
execute(this.jens, getNearbyFood);
}
return false;
}
public boolean execute(EntityJens jens, EntityItem item) {
if(jens.getNavigator().tryMoveToXYZ(item.posX, item.posY, item.posZ, 1.25D)) {
if(jens.getDistance(item) < 1.0F) {
eatItem(item);
jens.digestFish();
}
}
return true;
}
public void eatItem(EntityItem item) {
ItemStack stack = item.getItem();
stack.setCount(stack.getCount() - 1);
if(stack.getCount() == 0) {
item.setDead();
}
}
}