package joshie.harvest.animals.type; import joshie.harvest.api.animals.AnimalAction; import joshie.harvest.api.animals.AnimalFoodType; import joshie.harvest.api.animals.AnimalStats; import joshie.harvest.api.animals.IAnimalType; import joshie.harvest.api.calendar.CalendarDate; import net.minecraft.entity.passive.EntityAnimal; import java.util.Random; public abstract class AnimalAbstract implements IAnimalType { protected static final Random rand = new Random(); private final AnimalFoodType[] types; private final String name; private final int min; private final int max; public AnimalAbstract(String name, int min, int max, AnimalFoodType... types) { this.name = name; this.types = types; this.min = min * (CalendarDate.DAYS_PER_SEASON * 4); this.max = max * (CalendarDate.DAYS_PER_SEASON * 4); } @Override public String getName() { return name; } @Override public AnimalFoodType[] getFoodTypes() { return types; } @Override public int getMinLifespan() { return min; } @Override public int getMaxLifespan() { return max; } @Override public int getDaysBetweenProduction() { return 0; } @Override public int getRelationshipBonus(AnimalAction action) { switch (action) { case PETTED: return 100; case FEED: return 70; case TREAT_SPECIAL: return 30; case TREAT_GENERIC: return 20; case HEAL: return -100; case TREAT_INCORRECT: return -50; case HURT: return -10; default: return 0; } } @Override public void refreshProduct(AnimalStats stats, EntityAnimal entity) {} }