diff options
Diffstat (limited to 'src/Java/binnie/craftgui/mod/database/ControlDatabaseIndividualDisplay.java')
-rw-r--r-- | src/Java/binnie/craftgui/mod/database/ControlDatabaseIndividualDisplay.java | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/mod/database/ControlDatabaseIndividualDisplay.java b/src/Java/binnie/craftgui/mod/database/ControlDatabaseIndividualDisplay.java new file mode 100644 index 0000000000..e46cf94df7 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlDatabaseIndividualDisplay.java @@ -0,0 +1,120 @@ +package binnie.craftgui.mod.database; + +import binnie.Binnie; +import binnie.core.genetics.BreedingSystem; +import binnie.core.genetics.ManagerGenetics; +import binnie.craftgui.core.Attribute; +import binnie.craftgui.core.CraftGUI; +import binnie.craftgui.core.ITooltip; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.core.Tooltip; +import binnie.craftgui.core.geometry.IPoint; +import binnie.craftgui.core.renderer.Renderer; +import binnie.craftgui.events.EventMouse.Down; +import binnie.craftgui.events.EventMouse.Down.Handler; +import binnie.craftgui.minecraft.Window; +import binnie.craftgui.minecraft.control.ControlItemDisplay; +import com.mojang.authlib.GameProfile; +import forestry.api.genetics.IAlleleSpecies; +import forestry.api.genetics.IIndividual; +import forestry.api.genetics.ISpeciesRoot; +import net.minecraft.util.IIcon; + +public class ControlDatabaseIndividualDisplay + extends ControlItemDisplay + implements ITooltip +{ + public void setSpecies(IAlleleSpecies species) + { + setSpecies(species, EnumDiscoveryState.Show); + } + + public void setSpecies(IAlleleSpecies species, EnumDiscoveryState state) + { + ISpeciesRoot speciesRoot = Binnie.Genetics.getSpeciesRoot(species); + + BreedingSystem system = Binnie.Genetics.getSystem(speciesRoot.getUID()); + + IIndividual ind = system.getSpeciesRoot().templateAsIndividual(system.getSpeciesRoot().getTemplate(species.getUID())); + + super.setItemStack(system.getSpeciesRoot().getMemberStack(ind, system.getDefaultType())); + this.species = species; + + GameProfile username = Window.get(this).getUsername(); + if (state == EnumDiscoveryState.Undetermined) { + state = system.isSpeciesDiscovered(species, Window.get(this).getWorld(), username) ? EnumDiscoveryState.Discovered : EnumDiscoveryState.Undiscovered; + } + if (((Window.get(this) instanceof WindowAbstractDatabase)) && + (((WindowAbstractDatabase)Window.get(this)).isNEI)) { + state = EnumDiscoveryState.Show; + } + this.discovered = state; + + addAttribute(Attribute.MouseOver); + } + + private IAlleleSpecies species = null; + EnumDiscoveryState discovered = EnumDiscoveryState.Show; + + public ControlDatabaseIndividualDisplay(IWidget parent, float x, float y) + { + this(parent, x, y, 16.0F); + } + + public ControlDatabaseIndividualDisplay(IWidget parent, float x, float y, float size) + { + super(parent, x, y, size); + + + addSelfEventHandler(new EventMouse.Down.Handler() + { + public void onEvent(EventMouse.Down event) + { + if ((event.getButton() == 0) && (ControlDatabaseIndividualDisplay.this.species != null) && (EnumDiscoveryState.Show == ControlDatabaseIndividualDisplay.this.discovered)) { + ((WindowAbstractDatabase)ControlDatabaseIndividualDisplay.this.getSuperParent()).gotoSpeciesDelayed(ControlDatabaseIndividualDisplay.this.species); + } + } + }); + } + + public void onRenderForeground() + { + IIcon icon = null; + if (this.species == null) { + return; + } + BreedingSystem system = Binnie.Genetics.getSystem(this.species.getRoot()); + switch (2.$SwitchMap$binnie$craftgui$mod$database$EnumDiscoveryState[this.discovered.ordinal()]) + { + case 1: + super.onRenderForeground(); + return; + case 2: + icon = system.getDiscoveredIcon(); + break; + case 3: + icon = system.getUndiscoveredIcon(); + break; + } + if (icon != null) { + CraftGUI.Render.iconItem(IPoint.ZERO, icon); + } + } + + public void getTooltip(Tooltip tooltip) + { + if (this.species != null) { + switch (2.$SwitchMap$binnie$craftgui$mod$database$EnumDiscoveryState[this.discovered.ordinal()]) + { + case 1: + tooltip.add(this.species.getName()); + break; + case 2: + tooltip.add("Discovered Species"); + break; + case 3: + tooltip.add("Undiscovered Species"); + } + } + } +} |