From 869c206c4fcc8001bd2e1d66f704290331813835 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Jan 2016 14:24:34 +1000 Subject: Initial Commit --- .../craftgui/mod/database/ControlMutationBox.java | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/Java/binnie/craftgui/mod/database/ControlMutationBox.java (limited to 'src/Java/binnie/craftgui/mod/database/ControlMutationBox.java') 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 +{ + 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 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 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); + } + } + } + } +} -- cgit