package joshie.harvest.knowledge.gui.stats.relations.page; import joshie.harvest.animals.HFAnimals; import joshie.harvest.animals.item.ItemAnimalSpawner.Spawner; import joshie.harvest.api.animals.AnimalStats; import joshie.harvest.core.base.gui.BookPage; import joshie.harvest.knowledge.gui.stats.GuiStats; import joshie.harvest.knowledge.gui.stats.button.ButtonNext; import joshie.harvest.knowledge.gui.stats.button.ButtonPrevious; import joshie.harvest.knowledge.gui.stats.relations.button.ButtonRelationsAnimal; import joshie.harvest.core.helpers.EntityHelper; import joshie.harvest.core.helpers.MCClientHelper; import joshie.harvest.knowledge.gui.stats.relations.button.ButtonRelationsAnimalNull; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiLabel; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.util.math.BlockPos; import java.util.Iterator; import java.util.List; public class PageAnimals extends PageRelationship { public static final BookPage INSTANCE = new PageAnimals(); private PageAnimals() { super("animals", HFAnimals.ANIMAL.getStackFromEnum(Spawner.COW)); } @Override public void initGui(GuiStats gui, List<GuiButton> buttonList, List<GuiLabel> labelList) { super.initGui(gui, buttonList, labelList); //Build the list List<EntityAnimal> list = EntityHelper.getEntities(EntityAnimal.class, MCClientHelper.getWorld(), new BlockPos(MCClientHelper.getPlayer()), 128D, 128D); Iterator<EntityAnimal> it = list.iterator(); while (it.hasNext()) { EntityAnimal animal = it.next(); AnimalStats stats = EntityHelper.getStats(animal); if (stats == null) { it.remove(); } } int x = 0; int y = 0; for (int i = start * 12; i < 12 + start * 12 && i < list.size(); i++) { EntityAnimal animal = list.get(i); buttonList.add(new ButtonRelationsAnimal(gui, animal, EntityHelper.getStats(animal), buttonList.size(), 16 + x * 144, 26 + y * 25)); y++; if (y >= 6) { y = 0; x++; } } if (buttonList.size() == 2) buttonList.add(new ButtonRelationsAnimalNull(gui, buttonList.size(), 16 + x * 144, 26 + y * 25)); if (start < (list.size() / 12)) buttonList.add(new ButtonNext(gui, buttonList.size(), 273, 172)); if (start != 0) buttonList.add(new ButtonPrevious(gui, buttonList.size(), 20, 172)); } }