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/database/ControlMutationBox.java | |
| 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/database/ControlMutationBox.java')
| -rw-r--r-- | src/Java/binnie/craftgui/mod/database/ControlMutationBox.java | 71 |
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); + } + } + } + } +} |
