package joshie.harvest.buildings.placeable.entities;
import joshie.harvest.buildings.placeable.Placeable;
import net.minecraft.entity.Entity;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public abstract class PlaceableEntity extends Placeable {
public PlaceableEntity() {}
public PlaceableEntity(int x, int y, int z) {
this.pos = new BlockPos(x, y, z);
}
@Override
public boolean canPlace(ConstructionStage stage) {
return stage == ConstructionStage.PAINT;
}
public abstract Entity getEntity(World world, BlockPos pos, Rotation rotation);
@Override
public boolean place (World world, BlockPos pos, Rotation rotation, boolean playSound) {
Entity entity = getEntity(world, pos, rotation);
return entity != null && world.spawnEntityInWorld(entity);
}
public abstract PlaceableEntity getCopyFromEntity(Entity entity, int x, int y, int z);
}