diff options
| author | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
|---|---|---|
| committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
| commit | 869c206c4fcc8001bd2e1d66f704290331813835 (patch) | |
| tree | 96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/craftgui/mod | |
| parent | ec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff) | |
| download | GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2 GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip | |
Initial Commit
Diffstat (limited to 'src/Java/binnie/craftgui/mod')
25 files changed, 1314 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/mod/database/ControlBranchBox.java b/src/Java/binnie/craftgui/mod/database/ControlBranchBox.java new file mode 100644 index 0000000000..3aaf90d53a --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlBranchBox.java @@ -0,0 +1,20 @@ +package binnie.craftgui.mod.database; + +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlListBox; +import binnie.craftgui.core.IWidget; +import forestry.api.genetics.IClassification; + +class ControlBranchBox + extends ControlListBox<IClassification> +{ + public IWidget createOption(IClassification value, int y) + { + return new ControlBranchBoxOption((ControlList)getContent(), value, y); + } + + public ControlBranchBox(IWidget parent, float x, float y, float width, float height) + { + super(parent, x, y, width, height, 12.0F); + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlBranchBoxOption.java b/src/Java/binnie/craftgui/mod/database/ControlBranchBoxOption.java new file mode 100644 index 0000000000..a3f83f403f --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlBranchBoxOption.java @@ -0,0 +1,14 @@ +package binnie.craftgui.mod.database; + +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlTextOption; +import forestry.api.genetics.IClassification; + +class ControlBranchBoxOption + extends ControlTextOption<IClassification> +{ + public ControlBranchBoxOption(ControlList<IClassification> controlList, IClassification option, int y) + { + super(controlList, option, option.getName().contains(".") ? option.getScientific() : option.getName() == null ? option.getScientific() : option.getName(), y); + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlBreedingProgress.java b/src/Java/binnie/craftgui/mod/database/ControlBreedingProgress.java new file mode 100644 index 0000000000..9340a66752 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlBreedingProgress.java @@ -0,0 +1,41 @@ +package binnie.craftgui.mod.database; + +import binnie.core.genetics.BreedingSystem; +import binnie.craftgui.controls.core.Control; +import binnie.craftgui.core.CraftGUI; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.core.geometry.IArea; +import binnie.craftgui.core.geometry.IPoint; +import binnie.craftgui.core.renderer.Renderer; +import binnie.craftgui.resource.Texture; +import binnie.craftgui.resource.minecraft.CraftGUITexture; +import binnie.craftgui.resource.minecraft.CraftGUITextureSheet; +import binnie.craftgui.resource.minecraft.StandardTexture; + +class ControlBreedingProgress + extends Control +{ + private static Texture Progress = new StandardTexture(80, 22, 4, 4, CraftGUITextureSheet.Controls2); + private float percentage; + private int colour; + + public ControlBreedingProgress(IWidget parent, int x, int y, int width, int height, BreedingSystem system, float percentage) + { + super(parent, x, y, width, height); + this.percentage = percentage; + this.colour = system.getColour(); + } + + public void onRenderBackground() + { + CraftGUI.Render.texture(CraftGUITexture.PanelBlack, getArea()); + + IArea area = getArea().inset(1); + + area.setSize(new IPoint(area.size().x() * this.percentage, area.size().y())); + + CraftGUI.Render.colour(this.colour); + + CraftGUI.Render.texture(Progress, area); + } +} 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"); + } + } + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlItemStackOption.java b/src/Java/binnie/craftgui/mod/database/ControlItemStackOption.java new file mode 100644 index 0000000000..2dfa33b083 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlItemStackOption.java @@ -0,0 +1,38 @@ +package binnie.craftgui.mod.database; + +import binnie.craftgui.controls.ControlText; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlTextOption; +import binnie.craftgui.core.Attribute; +import binnie.craftgui.core.CraftGUI; +import binnie.craftgui.core.geometry.CraftGUIUtil; +import binnie.craftgui.core.geometry.IPoint; +import binnie.craftgui.core.renderer.Renderer; +import binnie.craftgui.minecraft.control.ControlItemDisplay; +import net.minecraft.item.ItemStack; + +public class ControlItemStackOption + extends ControlTextOption<ItemStack> +{ + private ControlItemDisplay controlBee; + + public ControlItemStackOption(ControlList<ItemStack> controlList, ItemStack option, int y) + { + super(controlList, option, option.getDisplayName(), y); + setSize(new IPoint(getSize().x(), 20.0F)); + + this.controlBee = new ControlItemDisplay(this, 2.0F, 2.0F); + this.controlBee.setItemStack(option); + + addAttribute(Attribute.MouseOver); + + CraftGUIUtil.moveWidget(this.textWidget, new IPoint(22.0F, 0.0F)); + this.textWidget.setSize(this.textWidget.getSize().sub(new IPoint(24.0F, 0.0F))); + + int th = (int)CraftGUI.Render.textHeight(this.textWidget.getValue(), this.textWidget.getSize().x()); + int height = Math.max(20, th + 6); + setSize(new IPoint(size().x(), height)); + this.textWidget.setSize(new IPoint(this.textWidget.getSize().x(), height)); + this.controlBee.setPosition(new IPoint(this.controlBee.pos().x(), (height - 18) / 2)); + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlMutationBox.java b/src/Java/binnie/craftgui/mod/database/ControlMutationBox.java new file mode 100644 index 0000000000..62cdda8dcf --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlMutationBox.java @@ -0,0 +1,71 @@ +package binnie.craftgui.mod.database; + +import binnie.core.genetics.BreedingSystem; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlListBox; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.minecraft.Window; +import forestry.api.genetics.IAlleleSpecies; +import forestry.api.genetics.IMutation; +import java.util.List; + +class ControlMutationBox + extends ControlListBox<IMutation> +{ + private int index; + private Type type; + + public IWidget createOption(IMutation value, int y) + { + return new ControlMutationItem((ControlList)getContent(), value, this.species, y); + } + + static enum Type + { + Resultant, Further; + + private Type() {} + } + + public ControlMutationBox(IWidget parent, int x, int y, int width, int height, Type type) + { + super(parent, x, y, width, height, 12.0F); + this.type = type; + } + + private IAlleleSpecies species = null; + + public void setSpecies(IAlleleSpecies species) + { + if (species != this.species) + { + this.species = species; + this.index = 0; + movePercentage(-100.0F); + + BreedingSystem system = ((WindowAbstractDatabase)getSuperParent()).getBreedingSystem(); + + List<IMutation> discovered = system.getDiscoveredMutations(Window.get(this).getWorld(), Window.get(this).getUsername()); + if (species != null) { + if (this.type == Type.Resultant) + { + setOptions(system.getResultantMutations(species)); + } + else + { + List<IMutation> mutations = system.getFurtherMutations(species); + for (int i = 0; i < mutations.size();) + { + IMutation mutation = (IMutation)mutations.get(i); + if ((!discovered.contains(mutations)) && (!((IAlleleSpecies)mutation.getTemplate()[0]).isCounted())) { + mutations.remove(i); + } else { + i++; + } + } + setOptions(mutations); + } + } + } + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlMutationItem.java b/src/Java/binnie/craftgui/mod/database/ControlMutationItem.java new file mode 100644 index 0000000000..630294e458 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlMutationItem.java @@ -0,0 +1,51 @@ +package binnie.craftgui.mod.database; + +import binnie.core.genetics.BreedingSystem; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlOption; +import binnie.craftgui.minecraft.Window; +import forestry.api.genetics.IAlleleSpecies; +import forestry.api.genetics.IMutation; + +class ControlMutationItem + extends ControlOption<IMutation> +{ + private ControlDatabaseIndividualDisplay itemWidget1; + private ControlDatabaseIndividualDisplay itemWidget2; + private ControlDatabaseIndividualDisplay itemWidget3; + private ControlMutationSymbol addSymbol; + private ControlMutationSymbol arrowSymbol; + + public ControlMutationItem(ControlList<IMutation> controlList, IMutation option, IAlleleSpecies species, int y) + { + super(controlList, option, y); + this.itemWidget1 = new ControlDatabaseIndividualDisplay(this, 4.0F, 4.0F); + this.itemWidget2 = new ControlDatabaseIndividualDisplay(this, 44.0F, 4.0F); + this.itemWidget3 = new ControlDatabaseIndividualDisplay(this, 104.0F, 4.0F); + this.addSymbol = new ControlMutationSymbol(this, 24, 4, 0); + this.arrowSymbol = new ControlMutationSymbol(this, 64, 4, 1); + + boolean isNEI = ((WindowAbstractDatabase)getSuperParent()).isNEI(); + BreedingSystem system = ((WindowAbstractDatabase)getSuperParent()).getBreedingSystem(); + if (getValue() != null) + { + boolean isMutationDiscovered = system.isMutationDiscovered((IMutation)getValue(), Window.get(this).getWorld(), Window.get(this).getUsername()); + + + IAlleleSpecies allele = null; + EnumDiscoveryState state = null; + + allele = (IAlleleSpecies)((IMutation)getValue()).getAllele0(); + state = species == allele ? EnumDiscoveryState.Show : (isNEI) || (isMutationDiscovered) ? EnumDiscoveryState.Show : EnumDiscoveryState.Undetermined; + this.itemWidget1.setSpecies(allele, state); + allele = (IAlleleSpecies)((IMutation)getValue()).getAllele1(); + state = species == allele ? EnumDiscoveryState.Show : (isNEI) || (isMutationDiscovered) ? EnumDiscoveryState.Show : EnumDiscoveryState.Undetermined; + this.itemWidget2.setSpecies(allele, state); + allele = (IAlleleSpecies)((IMutation)getValue()).getTemplate()[0]; + state = species == allele ? EnumDiscoveryState.Show : (isNEI) || (isMutationDiscovered) ? EnumDiscoveryState.Show : EnumDiscoveryState.Undetermined; + this.itemWidget3.setSpecies(allele, state); + this.addSymbol.setValue((IMutation)getValue()); + this.arrowSymbol.setValue((IMutation)getValue()); + } + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlMutationSymbol.java b/src/Java/binnie/craftgui/mod/database/ControlMutationSymbol.java new file mode 100644 index 0000000000..5c8bdc0aed --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlMutationSymbol.java @@ -0,0 +1,80 @@ +package binnie.craftgui.mod.database; + +import binnie.core.genetics.BreedingSystem; +import binnie.craftgui.controls.core.Control; +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.minecraft.Window; +import binnie.craftgui.resource.Texture; +import binnie.craftgui.resource.minecraft.CraftGUITextureSheet; +import binnie.craftgui.resource.minecraft.StandardTexture; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IMutation; + +class ControlMutationSymbol + extends Control + implements ITooltip +{ + private static Texture MutationPlus = new StandardTexture(2, 94, 16, 16, CraftGUITextureSheet.Controls2); + private static Texture MutationArrow = new StandardTexture(20, 94, 32, 16, CraftGUITextureSheet.Controls2); + private IMutation value; + private boolean discovered; + private int type; + + public void onRenderBackground() + { + super.onRenderBackground(); + if (this.type == 0) { + CraftGUI.Render.texture(MutationPlus, IPoint.ZERO); + } else { + CraftGUI.Render.texture(MutationArrow, IPoint.ZERO); + } + } + + protected ControlMutationSymbol(IWidget parent, int x, int y, int type) + { + super(parent, x, y, 16 + type * 16, 16.0F); + this.value = null; + this.type = type; + addAttribute(Attribute.MouseOver); + } + + public void setValue(IMutation value) + { + this.value = value; + + boolean isNEI = ((WindowAbstractDatabase)getSuperParent()).isNEI(); + BreedingSystem system = ((WindowAbstractDatabase)getSuperParent()).getBreedingSystem(); + + this.discovered = (isNEI ? true : system.isMutationDiscovered(value, Window.get(this).getWorld(), Window.get(this).getUsername())); + if (this.discovered) { + setColour(16777215); + } else { + setColour(7829367); + } + } + + public void getTooltip(Tooltip tooltip) + { + if ((this.type == 1) && (this.discovered)) + { + IAllele species1 = this.value.getAllele0(); + IAllele species2 = this.value.getAllele1(); + + BreedingSystem system = ((WindowAbstractDatabase)getSuperParent()).getBreedingSystem(); + + float chance = system.getChance(this.value, Window.get(this).getPlayer(), species1, species2); + tooltip.add("Current Chance - " + chance + "%"); + if (this.value.getSpecialConditions() != null) { + for (String string : this.value.getSpecialConditions()) { + tooltip.add(string); + } + } + } + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlSpeciesBox.java b/src/Java/binnie/craftgui/mod/database/ControlSpeciesBox.java new file mode 100644 index 0000000000..4f184b0064 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlSpeciesBox.java @@ -0,0 +1,55 @@ +package binnie.craftgui.mod.database; + +import binnie.core.genetics.BreedingSystem; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlListBox; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.minecraft.Window; +import com.mojang.authlib.GameProfile; +import forestry.api.genetics.IAlleleSpecies; +import forestry.api.genetics.IClassification; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import net.minecraft.entity.player.EntityPlayer; + +public class ControlSpeciesBox + extends ControlListBox<IAlleleSpecies> +{ + public IWidget createOption(IAlleleSpecies value, int y) + { + return new ControlSpeciexBoxOption((ControlList)getContent(), value, y); + } + + public ControlSpeciesBox(IWidget parent, float x, float y, float width, float height) + { + super(parent, x, y, width, height, 12.0F); + } + + private IClassification branch = null; + + public void setBranch(IClassification branch) + { + if (branch != this.branch) + { + this.branch = branch; + List<IAlleleSpecies> speciesList2 = new ArrayList(); + movePercentage(-100.0F); + setOptions(speciesList2); + + EntityPlayer player = Window.get(this).getPlayer(); + GameProfile playerName = Window.get(this).getUsername(); + WindowAbstractDatabase db = (WindowAbstractDatabase)Window.get(this); + + Collection<IAlleleSpecies> speciesList = !db.isNEI ? db.getBreedingSystem().getDiscoveredSpecies(db.getWorld(), playerName) : db.getBreedingSystem().getAllSpecies(); + if (branch != null) { + for (IAlleleSpecies species : branch.getMemberSpecies()) { + if (speciesList.contains(species)) { + speciesList2.add(species); + } + } + } + setOptions(speciesList2); + } + } +} diff --git a/src/Java/binnie/craftgui/mod/database/ControlSpeciexBoxOption.java b/src/Java/binnie/craftgui/mod/database/ControlSpeciexBoxOption.java new file mode 100644 index 0000000000..36ac5446b2 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/ControlSpeciexBoxOption.java @@ -0,0 +1,42 @@ +package binnie.craftgui.mod.database; + +import binnie.craftgui.controls.ControlText; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlTextOption; +import binnie.craftgui.core.Attribute; +import binnie.craftgui.core.CraftGUI; +import binnie.craftgui.core.geometry.CraftGUIUtil; +import binnie.craftgui.core.geometry.IPoint; +import binnie.craftgui.core.renderer.Renderer; +import forestry.api.genetics.IAlleleSpecies; + +class ControlSpeciexBoxOption + extends ControlTextOption<IAlleleSpecies> +{ + private ControlDatabaseIndividualDisplay controlBee; + + public ControlSpeciexBoxOption(ControlList<IAlleleSpecies> controlList, IAlleleSpecies option, int y) + { + super(controlList, option, option.getName(), y); + setSize(new IPoint(getSize().x(), 20.0F)); + + this.controlBee = new ControlDatabaseIndividualDisplay(this, 2.0F, 2.0F); + + this.controlBee.setSpecies((IAlleleSpecies)getValue(), EnumDiscoveryState.Undetermined); + if (this.controlBee.discovered == EnumDiscoveryState.Discovered) { + this.controlBee.discovered = EnumDiscoveryState.Show; + } + this.textWidget.setValue(this.controlBee.discovered == EnumDiscoveryState.Show ? option.getName() : "Undiscovered"); + if (this.controlBee.discovered == EnumDiscoveryState.Show) { + addAttribute(Attribute.MouseOver); + } + CraftGUIUtil.moveWidget(this.textWidget, new IPoint(22.0F, 0.0F)); + this.textWidget.setSize(this.textWidget.getSize().sub(new IPoint(24.0F, 0.0F))); + + int th = (int)CraftGUI.Render.textHeight(this.textWidget.getValue(), this.textWidget.getSize().x()); + int height = Math.max(20, th + 6); + setSize(new IPoint(size().x(), height)); + this.textWidget.setSize(new IPoint(this.textWidget.getSize().x(), height)); + this.controlBee.setPosition(new IPoint(this.controlBee.pos().x(), (height - 18) / 2)); + } +} diff --git a/src/Java/binnie/craftgui/mod/database/DatabaseTab.java b/src/Java/binnie/craftgui/mod/database/DatabaseTab.java new file mode 100644 index 0000000000..aee8ea5bf2 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/DatabaseTab.java @@ -0,0 +1,32 @@ +package binnie.craftgui.mod.database; + +import binnie.Binnie; +import binnie.core.AbstractMod; +import binnie.core.language.ManagerLanguage; +import binnie.craftgui.core.ITooltipHelp; +import binnie.craftgui.core.Tooltip; + +public class DatabaseTab + implements ITooltipHelp +{ + private AbstractMod mod; + private String unloc; + private int colour; + + public DatabaseTab(AbstractMod mod, String unloc, int colour) + { + this.mod = mod; + this.unloc = unloc; + this.colour = colour; + } + + public String toString() + { + return Binnie.Language.localise(this.mod, "gui.database.tab." + this.unloc); + } + + public void getHelpTooltip(Tooltip tooltip) + { + tooltip.add(Binnie.Language.localiseOrBlank(this.mod, "gui.database.tab." + this.unloc + ".help")); + } +} diff --git a/src/Java/binnie/craftgui/mod/database/EnumDiscoveryState.java b/src/Java/binnie/craftgui/mod/database/EnumDiscoveryState.java new file mode 100644 index 0000000000..fe98cff136 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/EnumDiscoveryState.java @@ -0,0 +1,8 @@ +package binnie.craftgui.mod.database; + +public enum EnumDiscoveryState +{ + Show, Undetermined, Discovered, Undiscovered; + + private EnumDiscoveryState() {} +} diff --git a/src/Java/binnie/craftgui/mod/database/IDatabaseMode.java b/src/Java/binnie/craftgui/mod/database/IDatabaseMode.java new file mode 100644 index 0000000000..8744a2f0b7 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/IDatabaseMode.java @@ -0,0 +1,6 @@ +package binnie.craftgui.mod.database; + +public abstract interface IDatabaseMode +{ + public abstract String getName(); +} diff --git a/src/Java/binnie/craftgui/mod/database/PageAbstract.java b/src/Java/binnie/craftgui/mod/database/PageAbstract.java new file mode 100644 index 0000000000..9219dca0a7 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/PageAbstract.java @@ -0,0 +1,16 @@ +package binnie.craftgui.mod.database; + +import binnie.craftgui.controls.page.ControlPage; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.core.geometry.IPoint; + +public abstract class PageAbstract<T> + extends ControlPage<DatabaseTab> +{ + public PageAbstract(IWidget parent, DatabaseTab tab) + { + super(parent, 0.0F, 0.0F, parent.getSize().x(), parent.getSize().y(), tab); + } + + public abstract void onValueChanged(T paramT); +} diff --git a/src/Java/binnie/craftgui/mod/database/PageBranch.java b/src/Java/binnie/craftgui/mod/database/PageBranch.java new file mode 100644 index 0000000000..57af5128e5 --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/PageBranch.java @@ -0,0 +1,13 @@ +package binnie.craftgui.mod.database; + +import binnie.craftgui.core.IWidget; +import forestry.api.genetics.IClassification; + +abstract class PageBranch + extends PageAbstract<IClassification> +{ + public PageBranch(IWidget parent, DatabaseTab tab) + { + super(parent, tab); + } +} diff --git a/src/Java/binnie/craftgui/mod/database/PageBranchOverview.java b/src/Java/binnie/craftgui/mod/database/PageBranchOverview.java new file mode 100644 index 0000000000..57ddc63fab --- /dev/null +++ b/src/Java/binnie/craftgui/mod/database/PageBranchOverview.java @@ -0,0 +1,67 @@ +package binnie.craftgui.mod.database; + +import binnie.craftgui.controls.ControlText; +import binnie.craftgui.controls.ControlTextCentered; +import binnie.craftgui.core.CraftGUI; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.core.renderer.Renderer; +import forestry.api.genetics.IAlleleSpecies; +import forestry.api.genetics.IClassification; +import java.util.ArrayList; +import java.util.List; + +public class PageBranchOverview + extends PageBranch +{ + private ControlText pageBranchOverview_branchName; + private ControlText pageBranchOverview_branchScientific; + private ControlText pageBranchOverview_branchAuthority; + + public PageBranchOverview(IWidget parent, DatabaseTab tab) + { + super(parent, tab); + + this.pageBranchOverview_branchName = new ControlTextCentered(this, 8.0F, ""); + + this.pageBranchOverview_branchScientific = new ControlTextCentered(this, 32.0F, ""); + this.pageBranchOverview_branchAuthority = new ControlTextCentered(this, 44.0F, ""); + } + + private List<ControlText> pageBranchOverview_branchDescription = new ArrayList(); + + public void onValueChanged(IClassification branch) + { + this.pageBranchOverview_branchName.setValue("§n" + branch.getName() + " Branch§r"); + + this.pageBranchOverview_branchScientific.setValue("§oApidae " + branch.getScientific() + "§r"); + + this.pageBranchOverview_branchAuthority.setValue("Discovered by §l" + branch.getMemberSpecies()[0].getAuthority() + "§r"); + for (IWidget widget : this.pageBranchOverview_branchDescription) { + deleteChild(widget); + } + this.pageBranchOverview_branchDescription.clear(); + + String desc = branch.getDescription(); + if ((desc == null) || (desc == "")) { + desc = "No Description Provided."; + } + String line = ""; + + List<String> descLines = new ArrayList(); + |
