aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/mod/database/ControlMutationBox.java
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
commit869c206c4fcc8001bd2e1d66f704290331813835 (patch)
tree96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/craftgui/mod/database/ControlMutationBox.java
parentec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff)
downloadGT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip
Initial Commit
Diffstat (limited to 'src/Java/binnie/craftgui/mod/database/ControlMutationBox.java')
-rw-r--r--src/Java/binnie/craftgui/mod/database/ControlMutationBox.java71
1 files changed, 71 insertions, 0 deletions
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);
+ }
+ }
+ }
+ }
+}