mirror of
https://github.com/GTNewHorizons/Binnie.git
synced 2026-11-15 09:44:50 +00:00
98 lines
4.0 KiB
Java
98 lines
4.0 KiB
Java
package binnie.botany.craftgui;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
|
|
import binnie.Binnie;
|
|
import binnie.botany.Botany;
|
|
import binnie.botany.api.IFlowerColour;
|
|
import binnie.botany.genetics.EnumFlowerColor;
|
|
import binnie.core.AbstractMod;
|
|
import binnie.core.craftgui.IWidget;
|
|
import binnie.core.craftgui.controls.listbox.ControlListBox;
|
|
import binnie.core.craftgui.database.DatabaseTab;
|
|
import binnie.core.craftgui.database.IDatabaseMode;
|
|
import binnie.core.craftgui.database.PageBranchOverview;
|
|
import binnie.core.craftgui.database.PageBranchSpecies;
|
|
import binnie.core.craftgui.database.PageBreeder;
|
|
import binnie.core.craftgui.database.PageSpeciesClassification;
|
|
import binnie.core.craftgui.database.PageSpeciesMutations;
|
|
import binnie.core.craftgui.database.PageSpeciesOverview;
|
|
import binnie.core.craftgui.database.PageSpeciesResultant;
|
|
import binnie.core.craftgui.database.WindowAbstractDatabase;
|
|
import binnie.core.craftgui.geometry.Area;
|
|
import binnie.core.craftgui.minecraft.Window;
|
|
import binnie.core.util.I18N;
|
|
|
|
public class WindowBotanistDatabase extends WindowAbstractDatabase {
|
|
ControlListBox<EnumFlowerColor> selectionBoxColors;
|
|
|
|
public WindowBotanistDatabase(final EntityPlayer player, final Side side, final boolean nei) {
|
|
super(player, side, nei, Binnie.GENETICS.flowerBreedingSystem, 130);
|
|
}
|
|
|
|
public static Window create(final EntityPlayer player, final Side side, final boolean nei) {
|
|
return new WindowBotanistDatabase(player, side, nei);
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
protected void addTabs() {
|
|
new PageSpeciesOverview(this.getInfoPages(Mode.SPECIES), new DatabaseTab(Botany.instance, "species.overview", 0));
|
|
new PageSpeciesFlowerGenome(this.getInfoPages(Mode.SPECIES), new DatabaseTab(Botany.instance, "species.genome", 0));
|
|
new PageSpeciesClassification(this.getInfoPages(Mode.SPECIES), new DatabaseTab(Botany.instance, "species.classification", 0));
|
|
new PageSpeciesResultant(this.getInfoPages(Mode.SPECIES), new DatabaseTab(Botany.instance, "species.resultant", 0));
|
|
new PageSpeciesMutations(this.getInfoPages(Mode.SPECIES), new DatabaseTab(Botany.instance, "species.further", 0));
|
|
new PageBranchOverview(this.getInfoPages(Mode.BRANCHES), new DatabaseTab(Botany.instance, "branches.overview", 0));
|
|
new PageBranchSpecies(this.getInfoPages(Mode.BRANCHES), new DatabaseTab(Botany.instance, "branches.species", 0));
|
|
this.createMode(FlowerMode.Colour, new FlowerColourModeWidgets());
|
|
new PageColourMixResultant(this.getInfoPages(FlowerMode.Colour), new DatabaseTab(Botany.instance, "colour.resultant", 0));
|
|
new PageColourMix(this.getInfoPages(FlowerMode.Colour), new DatabaseTab(Botany.instance, "colour.further", 0));
|
|
new PageBreeder(this.getInfoPages(Mode.BREEDER), this.getUsername(), new DatabaseTab(Botany.instance, "breeder", 0));
|
|
}
|
|
|
|
@Override
|
|
protected AbstractMod getMod() {
|
|
return Botany.instance;
|
|
}
|
|
|
|
@Override
|
|
protected String getBackgroundTextureName() {
|
|
return "FlowerDatabase";
|
|
}
|
|
|
|
enum FlowerMode implements IDatabaseMode {
|
|
Colour;
|
|
|
|
@Override
|
|
public String getName() {
|
|
return I18N.localise("botany.gui.database.mode." + this.name().toLowerCase());
|
|
}
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private class FlowerColourModeWidgets extends ModeWidgets {
|
|
public FlowerColourModeWidgets() {
|
|
super(FlowerMode.Colour, WindowBotanistDatabase.this);
|
|
}
|
|
|
|
@Override
|
|
public void createListBox(final Area area) {
|
|
this.listBox = new ControlListBox<IFlowerColour>(this.modePage, area.xPos(), area.yPos(), area.width(), area.height(), 12) {
|
|
@Override
|
|
public IWidget createOption(final IFlowerColour value, final int y) {
|
|
return new ControlColourOption(this.getContent(), value, y);
|
|
}
|
|
};
|
|
final List<IFlowerColour> colors = Arrays.stream(EnumFlowerColor.values()).map( c -> c.getFlowerColorAllele()).collect(Collectors.toList());
|
|
this.listBox.setOptions(colors);
|
|
}
|
|
}
|
|
}
|