From 869c206c4fcc8001bd2e1d66f704290331813835 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Jan 2016 14:24:34 +1000 Subject: Initial Commit --- .../binnie/craftgui/binniecore/WindowFieldKit.java | 334 ++++++++++++ .../binnie/craftgui/binniecore/WindowGenesis.java | 264 +++++++++ .../craftgui/botany/ControlColourDisplay.java | 47 ++ .../craftgui/botany/ControlColourMixBox.java | 31 ++ .../craftgui/botany/ControlColourMixItem.java | 37 ++ .../craftgui/botany/ControlColourMixSymbol.java | 58 ++ .../craftgui/botany/ControlColourOption.java | 38 ++ src/Java/binnie/craftgui/botany/PageColourMix.java | 40 ++ .../craftgui/botany/PageColourMixResultant.java | 40 ++ .../craftgui/botany/PageSpeciesFlowerGenome.java | 137 +++++ .../craftgui/botany/WindowBotanistDatabase.java | 103 ++++ .../binnie/craftgui/controls/ControlCheckbox.java | 75 +++ src/Java/binnie/craftgui/controls/ControlText.java | 50 ++ .../craftgui/controls/ControlTextCentered.java | 15 + .../binnie/craftgui/controls/ControlTextEdit.java | 154 ++++++ .../craftgui/controls/IControlSelection.java | 10 + .../craftgui/controls/IControlSelectionOption.java | 6 + .../craftgui/controls/button/ControlButton.java | 70 +++ .../controls/button/ControlEnumButton.java | 61 +++ .../controls/button/ControlToggleButton.java | 21 + .../binnie/craftgui/controls/core/Control.java | 85 +++ .../craftgui/controls/core/IControlIndexed.java | 8 + .../craftgui/controls/core/IControlValue.java | 11 + .../craftgui/controls/core/IControlValues.java | 11 + .../craftgui/controls/listbox/ControlList.java | 146 +++++ .../craftgui/controls/listbox/ControlListBox.java | 76 +++ .../craftgui/controls/listbox/ControlOption.java | 73 +++ .../controls/listbox/ControlTextOption.java | 37 ++ .../binnie/craftgui/controls/page/ControlPage.java | 36 ++ .../craftgui/controls/page/ControlPages.java | 57 ++ .../craftgui/controls/scroll/ControlScroll.java | 22 + .../craftgui/controls/scroll/ControlScrollBar.java | 94 ++++ .../controls/scroll/ControlScrollableContent.java | 134 +++++ .../controls/scroll/IControlScrollable.java | 17 + .../binnie/craftgui/controls/tab/ControlTab.java | 128 +++++ .../craftgui/controls/tab/ControlTabBar.java | 86 +++ src/Java/binnie/craftgui/core/Attribute.java | 9 + src/Java/binnie/craftgui/core/CraftGUI.java | 10 + src/Java/binnie/craftgui/core/ITooltip.java | 6 + src/Java/binnie/craftgui/core/ITooltipHelp.java | 6 + src/Java/binnie/craftgui/core/ITopLevelWidget.java | 29 + src/Java/binnie/craftgui/core/IWidget.java | 138 +++++ .../binnie/craftgui/core/IWidgetAttribute.java | 3 + src/Java/binnie/craftgui/core/RenderStage.java | 8 + src/Java/binnie/craftgui/core/Tooltip.java | 84 +++ src/Java/binnie/craftgui/core/TopLevelWidget.java | 248 +++++++++ src/Java/binnie/craftgui/core/Widget.java | 499 +++++++++++++++++ .../craftgui/core/geometry/CraftGUIUtil.java | 77 +++ src/Java/binnie/craftgui/core/geometry/IArea.java | 143 +++++ .../binnie/craftgui/core/geometry/IBorder.java | 126 +++++ src/Java/binnie/craftgui/core/geometry/IPoint.java | 83 +++ .../binnie/craftgui/core/geometry/Position.java | 41 ++ .../craftgui/core/geometry/TextJustification.java | 25 + .../binnie/craftgui/core/renderer/Renderer.java | 252 +++++++++ .../binnie/craftgui/core/renderer/TextureType.java | 8 + src/Java/binnie/craftgui/events/Event.java | 23 + .../binnie/craftgui/events/EventButtonClicked.java | 21 + .../binnie/craftgui/events/EventCycleChanged.java | 20 + src/Java/binnie/craftgui/events/EventHandler.java | 53 ++ src/Java/binnie/craftgui/events/EventKey.java | 63 +++ src/Java/binnie/craftgui/events/EventMouse.java | 156 ++++++ src/Java/binnie/craftgui/events/EventTextEdit.java | 21 + .../craftgui/events/EventToggleButtonClicked.java | 20 + .../binnie/craftgui/events/EventValueChanged.java | 29 + .../binnie/craftgui/events/EventValuesChanged.java | 20 + src/Java/binnie/craftgui/events/EventWidget.java | 272 +++++++++ .../dictionary/ControlBlockIconDisplay.java | 25 + .../dictionary/ControlBreweryProgress.java | 115 ++++ .../dictionary/ControlDistilleryProgress.java | 104 ++++ .../dictionary/ControlFruitPressProgress.java | 90 +++ .../dictionary/ControlLumbermillProgress.java | 96 ++++ .../extratrees/dictionary/ControlRecipeSlot.java | 42 ++ .../extratrees/dictionary/ControlTileSelect.java | 197 +++++++ .../extratrees/dictionary/DialogBreweryRecipe.java | 17 + .../craftgui/extratrees/dictionary/PageFruit.java | 47 ++ .../extratrees/dictionary/PagePlanksOverview.java | 103 ++++ .../extratrees/dictionary/PagePlanksTrees.java | 40 ++ .../extratrees/dictionary/PageSpeciesImage.java | 31 ++ .../dictionary/PageSpeciesTreeGenome.java | 175 ++++++ .../craftgui/extratrees/dictionary/PageWood.java | 40 ++ .../dictionary/WindowArboristDatabase.java | 133 +++++ .../extratrees/dictionary/WindowBrewery.java | 61 +++ .../extratrees/dictionary/WindowDistillery.java | 59 ++ .../dictionary/WindowLepidopteristDatabase.java | 57 ++ .../extratrees/dictionary/WindowLumbermill.java | 56 ++ .../extratrees/dictionary/WindowPress.java | 77 +++ .../extratrees/dictionary/WindowSetSquare.java | 35 ++ .../extratrees/dictionary/WindowWoodworker.java | 110 ++++ .../extratrees/kitchen/ControlDropDownMenu.java | 18 + .../extratrees/kitchen/ControlDropdownButton.java | 36 ++ .../extratrees/kitchen/ControlFluidDisplay.java | 103 ++++ .../extratrees/kitchen/ControlSlotFluid.java | 77 +++ .../extratrees/kitchen/ControlSlotGlassware.java | 35 ++ .../extratrees/kitchen/ControlTankSlot.java | 49 ++ .../extratrees/kitchen/WindowBottleRack.java | 48 ++ .../craftgui/genetics/machine/ControlGene.java | 101 ++++ .../genetics/machine/ControlGeneScroll.java | 97 ++++ .../genetics/machine/ControlProcessTemporary.java | 27 + .../genetics/machine/ControlSequencerProgress.java | 64 +++ .../genetics/machine/ControlSplicerProgress.java | 60 ++ .../genetics/machine/WindowAcclimatiser.java | 80 +++ .../craftgui/genetics/machine/WindowAnalyser.java | 110 ++++ .../craftgui/genetics/machine/WindowGeneBank.java | 256 +++++++++ .../genetics/machine/WindowGeneBankNEI.java | 14 + .../genetics/machine/WindowGeneProject.java | 32 ++ .../craftgui/genetics/machine/WindowGenepool.java | 96 ++++ .../genetics/machine/WindowGenomeAssembler.java | 37 ++ .../craftgui/genetics/machine/WindowIncubator.java | 99 ++++ .../genetics/machine/WindowInoculator.java | 107 ++++ .../craftgui/genetics/machine/WindowIsolator.java | 116 ++++ .../craftgui/genetics/machine/WindowMachine.java | 22 + .../genetics/machine/WindowPolymeriser.java | 101 ++++ .../craftgui/genetics/machine/WindowSequencer.java | 116 ++++ .../craftgui/genetics/machine/WindowSplicer.java | 93 ++++ .../craftgui/minecraft/ContainerCraftGUI.java | 549 +++++++++++++++++++ src/Java/binnie/craftgui/minecraft/CustomSlot.java | 54 ++ src/Java/binnie/craftgui/minecraft/Dialog.java | 53 ++ src/Java/binnie/craftgui/minecraft/EnumColor.java | 32 ++ src/Java/binnie/craftgui/minecraft/GUIIcon.java | 30 + .../binnie/craftgui/minecraft/GuiCraftGUI.java | 605 +++++++++++++++++++++ .../craftgui/minecraft/IMachineInformation.java | 6 + .../craftgui/minecraft/IMinecraftTooltip.java | 9 + .../minecraft/IWindowAffectsShiftClick.java | 8 + .../binnie/craftgui/minecraft/InventoryType.java | 8 + src/Java/binnie/craftgui/minecraft/ListMap.java | 149 +++++ .../binnie/craftgui/minecraft/MinecraftGUI.java | 14 + .../craftgui/minecraft/MinecraftTooltip.java | 63 +++ .../binnie/craftgui/minecraft/ModuleCraftGUI.java | 18 + src/Java/binnie/craftgui/minecraft/Window.java | 338 ++++++++++++ .../binnie/craftgui/minecraft/WindowInventory.java | 144 +++++ .../minecraft/control/ControlEnergyBar.java | 161 ++++++ .../minecraft/control/ControlErrorState.java | 113 ++++ .../craftgui/minecraft/control/ControlHelp.java | 41 ++ .../minecraft/control/ControlIconDisplay.java | 25 + .../craftgui/minecraft/control/ControlImage.java | 25 + .../craftgui/minecraft/control/ControlInfo.java | 38 ++ .../minecraft/control/ControlItemDisplay.java | 98 ++++ .../minecraft/control/ControlLiquidTank.java | 223 ++++++++ .../minecraft/control/ControlMachineProgress.java | 14 + .../minecraft/control/ControlPlayerInventory.java | 108 ++++ .../minecraft/control/ControlPowerSystem.java | 39 ++ .../minecraft/control/ControlProgress.java | 30 + .../minecraft/control/ControlProgressBase.java | 100 ++++ .../craftgui/minecraft/control/ControlSlide.java | 113 ++++ .../craftgui/minecraft/control/ControlSlot.java | 221 ++++++++ .../minecraft/control/ControlSlotArray.java | 76 +++ .../minecraft/control/ControlSlotBase.java | 77 +++ .../minecraft/control/ControlSlotCharge.java | 43 ++ .../craftgui/minecraft/control/ControlTabIcon.java | 47 ++ .../craftgui/minecraft/control/ControlUser.java | 41 ++ .../minecraft/control/EnumHighlighting.java | 28 + .../minecraft/render/MinecraftTexture.java | 10 + .../craftgui/minecraft/render/RenderCommand.java | 16 + .../craftgui/mod/database/ControlBranchBox.java | 20 + .../mod/database/ControlBranchBoxOption.java | 14 + .../mod/database/ControlBreedingProgress.java | 41 ++ .../database/ControlDatabaseIndividualDisplay.java | 120 ++++ .../mod/database/ControlItemStackOption.java | 38 ++ .../craftgui/mod/database/ControlMutationBox.java | 71 +++ .../craftgui/mod/database/ControlMutationItem.java | 51 ++ .../mod/database/ControlMutationSymbol.java | 80 +++ .../craftgui/mod/database/ControlSpeciesBox.java | 55 ++ .../mod/database/ControlSpeciexBoxOption.java | 42 ++ .../binnie/craftgui/mod/database/DatabaseTab.java | 32 ++ .../craftgui/mod/database/EnumDiscoveryState.java | 8 + .../craftgui/mod/database/IDatabaseMode.java | 6 + .../binnie/craftgui/mod/database/PageAbstract.java | 16 + .../binnie/craftgui/mod/database/PageBranch.java | 13 + .../craftgui/mod/database/PageBranchOverview.java | 67 +++ .../craftgui/mod/database/PageBranchSpecies.java | 43 ++ .../binnie/craftgui/mod/database/PageBreeder.java | 51 ++ .../craftgui/mod/database/PageBreederStats.java | 23 + .../binnie/craftgui/mod/database/PageSpecies.java | 13 + .../mod/database/PageSpeciesClassification.java | 54 ++ .../mod/database/PageSpeciesMutations.java | 27 + .../craftgui/mod/database/PageSpeciesOverview.java | 88 +++ .../mod/database/PageSpeciesResultant.java | 27 + .../mod/database/WindowAbstractDatabase.java | 314 +++++++++++ src/Java/binnie/craftgui/resource/IStyleSheet.java | 6 + src/Java/binnie/craftgui/resource/StyleSheet.java | 18 + .../craftgui/resource/StyleSheetManager.java | 28 + src/Java/binnie/craftgui/resource/Texture.java | 128 +++++ .../minecraft/CraftGUIResourceManager.java | 155 ++++++ .../resource/minecraft/CraftGUITexture.java | 18 + .../resource/minecraft/CraftGUITextureSheet.java | 33 ++ .../craftgui/resource/minecraft/PaddedTexture.java | 21 + .../resource/minecraft/ParsedTextureSheet.java | 25 + .../resource/minecraft/StandardTexture.java | 36 ++ src/Java/binnie/craftgui/window/Panel.java | 58 ++ 189 files changed, 14416 insertions(+) create mode 100644 src/Java/binnie/craftgui/binniecore/WindowFieldKit.java create mode 100644 src/Java/binnie/craftgui/binniecore/WindowGenesis.java create mode 100644 src/Java/binnie/craftgui/botany/ControlColourDisplay.java create mode 100644 src/Java/binnie/craftgui/botany/ControlColourMixBox.java create mode 100644 src/Java/binnie/craftgui/botany/ControlColourMixItem.java create mode 100644 src/Java/binnie/craftgui/botany/ControlColourMixSymbol.java create mode 100644 src/Java/binnie/craftgui/botany/ControlColourOption.java create mode 100644 src/Java/binnie/craftgui/botany/PageColourMix.java create mode 100644 src/Java/binnie/craftgui/botany/PageColourMixResultant.java create mode 100644 src/Java/binnie/craftgui/botany/PageSpeciesFlowerGenome.java create mode 100644 src/Java/binnie/craftgui/botany/WindowBotanistDatabase.java create mode 100644 src/Java/binnie/craftgui/controls/ControlCheckbox.java create mode 100644 src/Java/binnie/craftgui/controls/ControlText.java create mode 100644 src/Java/binnie/craftgui/controls/ControlTextCentered.java create mode 100644 src/Java/binnie/craftgui/controls/ControlTextEdit.java create mode 100644 src/Java/binnie/craftgui/controls/IControlSelection.java create mode 100644 src/Java/binnie/craftgui/controls/IControlSelectionOption.java create mode 100644 src/Java/binnie/craftgui/controls/button/ControlButton.java create mode 100644 src/Java/binnie/craftgui/controls/button/ControlEnumButton.java create mode 100644 src/Java/binnie/craftgui/controls/button/ControlToggleButton.java create mode 100644 src/Java/binnie/craftgui/controls/core/Control.java create mode 100644 src/Java/binnie/craftgui/controls/core/IControlIndexed.java create mode 100644 src/Java/binnie/craftgui/controls/core/IControlValue.java create mode 100644 src/Java/binnie/craftgui/controls/core/IControlValues.java create mode 100644 src/Java/binnie/craftgui/controls/listbox/ControlList.java create mode 100644 src/Java/binnie/craftgui/controls/listbox/ControlListBox.java create mode 100644 src/Java/binnie/craftgui/controls/listbox/ControlOption.java create mode 100644 src/Java/binnie/craftgui/controls/listbox/ControlTextOption.java create mode 100644 src/Java/binnie/craftgui/controls/page/ControlPage.java create mode 100644 src/Java/binnie/craftgui/controls/page/ControlPages.java create mode 100644 src/Java/binnie/craftgui/controls/scroll/ControlScroll.java create mode 100644 src/Java/binnie/craftgui/controls/scroll/ControlScrollBar.java create mode 100644 src/Java/binnie/craftgui/controls/scroll/ControlScrollableContent.java create mode 100644 src/Java/binnie/craftgui/controls/scroll/IControlScrollable.java create mode 100644 src/Java/binnie/craftgui/controls/tab/ControlTab.java create mode 100644 src/Java/binnie/craftgui/controls/tab/ControlTabBar.java create mode 100644 src/Java/binnie/craftgui/core/Attribute.java create mode 100644 src/Java/binnie/craftgui/core/CraftGUI.java create mode 100644 src/Java/binnie/craftgui/core/ITooltip.java create mode 100644 src/Java/binnie/craftgui/core/ITooltipHelp.java create mode 100644 src/Java/binnie/craftgui/core/ITopLevelWidget.java create mode 100644 src/Java/binnie/craftgui/core/IWidget.java create mode 100644 src/Java/binnie/craftgui/core/IWidgetAttribute.java create mode 100644 src/Java/binnie/craftgui/core/RenderStage.java create mode 100644 src/Java/binnie/craftgui/core/Tooltip.java create mode 100644 src/Java/binnie/craftgui/core/TopLevelWidget.java create mode 100644 src/Java/binnie/craftgui/core/Widget.java create mode 100644 src/Java/binnie/craftgui/core/geometry/CraftGUIUtil.java create mode 100644 src/Java/binnie/craftgui/core/geometry/IArea.java create mode 100644 src/Java/binnie/craftgui/core/geometry/IBorder.java create mode 100644 src/Java/binnie/craftgui/core/geometry/IPoint.java create mode 100644 src/Java/binnie/craftgui/core/geometry/Position.java create mode 100644 src/Java/binnie/craftgui/core/geometry/TextJustification.java create mode 100644 src/Java/binnie/craftgui/core/renderer/Renderer.java create mode 100644 src/Java/binnie/craftgui/core/renderer/TextureType.java create mode 100644 src/Java/binnie/craftgui/events/Event.java create mode 100644 src/Java/binnie/craftgui/events/EventButtonClicked.java create mode 100644 src/Java/binnie/craftgui/events/EventCycleChanged.java create mode 100644 src/Java/binnie/craftgui/events/EventHandler.java create mode 100644 src/Java/binnie/craftgui/events/EventKey.java create mode 100644 src/Java/binnie/craftgui/events/EventMouse.java create mode 100644 src/Java/binnie/craftgui/events/EventTextEdit.java create mode 100644 src/Java/binnie/craftgui/events/EventToggleButtonClicked.java create mode 100644 src/Java/binnie/craftgui/events/EventValueChanged.java create mode 100644 src/Java/binnie/craftgui/events/EventValuesChanged.java create mode 100644 src/Java/binnie/craftgui/events/EventWidget.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/ControlBlockIconDisplay.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/ControlBreweryProgress.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/ControlDistilleryProgress.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/ControlFruitPressProgress.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/ControlLumbermillProgress.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/ControlRecipeSlot.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/ControlTileSelect.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/DialogBreweryRecipe.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/PageFruit.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/PagePlanksOverview.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/PagePlanksTrees.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/PageSpeciesImage.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/PageSpeciesTreeGenome.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/PageWood.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowArboristDatabase.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowBrewery.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowDistillery.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowLepidopteristDatabase.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowLumbermill.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowPress.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowSetSquare.java create mode 100644 src/Java/binnie/craftgui/extratrees/dictionary/WindowWoodworker.java create mode 100644 src/Java/binnie/craftgui/extratrees/kitchen/ControlDropDownMenu.java create mode 100644 src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java create mode 100644 src/Java/binnie/craftgui/extratrees/kitchen/ControlFluidDisplay.java create mode 100644 src/Java/binnie/craftgui/extratrees/kitchen/ControlSlotFluid.java create mode 100644 src/Java/binnie/craftgui/extratrees/kitchen/ControlSlotGlassware.java create mode 100644 src/Java/binnie/craftgui/extratrees/kitchen/ControlTankSlot.java create mode 100644 src/Java/binnie/craftgui/extratrees/kitchen/WindowBottleRack.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/ControlGene.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/ControlGeneScroll.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/ControlProcessTemporary.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/ControlSequencerProgress.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/ControlSplicerProgress.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowAcclimatiser.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowAnalyser.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowGeneBank.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowGeneBankNEI.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowGeneProject.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowGenepool.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowGenomeAssembler.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowIncubator.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowInoculator.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowIsolator.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowMachine.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowPolymeriser.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowSequencer.java create mode 100644 src/Java/binnie/craftgui/genetics/machine/WindowSplicer.java create mode 100644 src/Java/binnie/craftgui/minecraft/ContainerCraftGUI.java create mode 100644 src/Java/binnie/craftgui/minecraft/CustomSlot.java create mode 100644 src/Java/binnie/craftgui/minecraft/Dialog.java create mode 100644 src/Java/binnie/craftgui/minecraft/EnumColor.java create mode 100644 src/Java/binnie/craftgui/minecraft/GUIIcon.java create mode 100644 src/Java/binnie/craftgui/minecraft/GuiCraftGUI.java create mode 100644 src/Java/binnie/craftgui/minecraft/IMachineInformation.java create mode 100644 src/Java/binnie/craftgui/minecraft/IMinecraftTooltip.java create mode 100644 src/Java/binnie/craftgui/minecraft/IWindowAffectsShiftClick.java create mode 100644 src/Java/binnie/craftgui/minecraft/InventoryType.java create mode 100644 src/Java/binnie/craftgui/minecraft/ListMap.java create mode 100644 src/Java/binnie/craftgui/minecraft/MinecraftGUI.java create mode 100644 src/Java/binnie/craftgui/minecraft/MinecraftTooltip.java create mode 100644 src/Java/binnie/craftgui/minecraft/ModuleCraftGUI.java create mode 100644 src/Java/binnie/craftgui/minecraft/Window.java create mode 100644 src/Java/binnie/craftgui/minecraft/WindowInventory.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlEnergyBar.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlErrorState.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlHelp.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlIconDisplay.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlImage.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlInfo.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlItemDisplay.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlLiquidTank.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlMachineProgress.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlPlayerInventory.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlPowerSystem.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlProgress.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlProgressBase.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlSlide.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlSlot.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlSlotArray.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlSlotBase.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlSlotCharge.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlTabIcon.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/ControlUser.java create mode 100644 src/Java/binnie/craftgui/minecraft/control/EnumHighlighting.java create mode 100644 src/Java/binnie/craftgui/minecraft/render/MinecraftTexture.java create mode 100644 src/Java/binnie/craftgui/minecraft/render/RenderCommand.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlBranchBox.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlBranchBoxOption.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlBreedingProgress.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlDatabaseIndividualDisplay.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlItemStackOption.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlMutationBox.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlMutationItem.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlMutationSymbol.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlSpeciesBox.java create mode 100644 src/Java/binnie/craftgui/mod/database/ControlSpeciexBoxOption.java create mode 100644 src/Java/binnie/craftgui/mod/database/DatabaseTab.java create mode 100644 src/Java/binnie/craftgui/mod/database/EnumDiscoveryState.java create mode 100644 src/Java/binnie/craftgui/mod/database/IDatabaseMode.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageAbstract.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageBranch.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageBranchOverview.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageBranchSpecies.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageBreeder.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageBreederStats.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageSpecies.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageSpeciesClassification.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageSpeciesMutations.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageSpeciesOverview.java create mode 100644 src/Java/binnie/craftgui/mod/database/PageSpeciesResultant.java create mode 100644 src/Java/binnie/craftgui/mod/database/WindowAbstractDatabase.java create mode 100644 src/Java/binnie/craftgui/resource/IStyleSheet.java create mode 100644 src/Java/binnie/craftgui/resource/StyleSheet.java create mode 100644 src/Java/binnie/craftgui/resource/StyleSheetManager.java create mode 100644 src/Java/binnie/craftgui/resource/Texture.java create mode 100644 src/Java/binnie/craftgui/resource/minecraft/CraftGUIResourceManager.java create mode 100644 src/Java/binnie/craftgui/resource/minecraft/CraftGUITexture.java create mode 100644 src/Java/binnie/craftgui/resource/minecraft/CraftGUITextureSheet.java create mode 100644 src/Java/binnie/craftgui/resource/minecraft/PaddedTexture.java create mode 100644 src/Java/binnie/craftgui/resource/minecraft/ParsedTextureSheet.java create mode 100644 src/Java/binnie/craftgui/resource/minecraft/StandardTexture.java create mode 100644 src/Java/binnie/craftgui/window/Panel.java (limited to 'src/Java/binnie/craftgui') diff --git a/src/Java/binnie/craftgui/binniecore/WindowFieldKit.java b/src/Java/binnie/craftgui/binniecore/WindowFieldKit.java new file mode 100644 index 0000000000..d52a6cde31 --- /dev/null +++ b/src/Java/binnie/craftgui/binniecore/WindowFieldKit.java @@ -0,0 +1,334 @@ +package binnie.craftgui.binniecore; + +import binnie.Binnie; +import binnie.core.AbstractMod; +import binnie.core.BinnieCore; +import binnie.core.genetics.BreedingSystem; +import binnie.core.genetics.ManagerGenetics; +import binnie.core.language.ManagerLanguage; +import binnie.core.machines.inventory.SlotValidator; +import binnie.core.machines.inventory.ValidatorIcon; +import binnie.craftgui.controls.ControlText; +import binnie.craftgui.controls.core.Control; +import binnie.craftgui.core.CraftGUI; +import binnie.craftgui.core.geometry.IArea; +import binnie.craftgui.core.geometry.IPoint; +import binnie.craftgui.core.geometry.TextJustification; +import binnie.craftgui.core.renderer.Renderer; +import binnie.craftgui.events.EventHandler.Origin; +import binnie.craftgui.events.EventValueChanged; +import binnie.craftgui.events.EventValueChanged.Handler; +import binnie.craftgui.minecraft.InventoryType; +import binnie.craftgui.minecraft.Window; +import binnie.craftgui.minecraft.WindowInventory; +import binnie.craftgui.minecraft.control.ControlImage; +import binnie.craftgui.minecraft.control.ControlPlayerInventory; +import binnie.craftgui.minecraft.control.ControlSlot; +import binnie.craftgui.resource.StyleSheet; +import binnie.craftgui.resource.minecraft.CraftGUITexture; +import binnie.craftgui.resource.minecraft.PaddedTexture; +import binnie.craftgui.resource.minecraft.StandardTexture; +import binnie.extrabees.core.ExtraBeeTexture; +import binnie.extrabees.gui.punnett.ExtraBeeGUITexture; +import binnie.genetics.gui.ControlChromosome; +import binnie.genetics.machine.Analyser; +import cpw.mods.fml.relauncher.Side; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IAlleleRegistry; +import forestry.api.genetics.IChromosomeType; +import forestry.api.genetics.IGenome; +import forestry.api.genetics.IIndividual; +import forestry.api.genetics.ISpeciesRoot; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class WindowFieldKit + extends Window +{ + public WindowFieldKit(EntityPlayer player, IInventory inventory, Side side) + { + super(280.0F, 230.0F, player, inventory, side); + } + + protected AbstractMod getMod() + { + return BinnieCore.instance; + } + + protected String getName() + { + return "Field Kit"; + } + + private void setupValidators() + { + getWindowInventory().setValidator(0, new SlotValidator(null) + { + public boolean isValid(ItemStack object) + { + return (AlleleManager.alleleRegistry.isIndividual(object)) || (Binnie.Genetics.getConversion(object) != null); + } + + public String getTooltip() + { + return "Individual"; + } + }); + getWindowInventory().setValidator(1, new SlotValidator(null) + { + public boolean isValid(ItemStack object) + { + return object.getItem() == Items.paper; + } + + public String getTooltip() + { + return "Paper"; + } + }); + getWindowInventory().disableAutoDispense(1); + } + + public void initialiseClient() + { + setTitle("Field Kit"); + + CraftGUI.Render.stylesheet(new StyleSheetPunnett()); + + getWindowInventory().createSlot(0); + getWindowInventory().createSlot(1); + + setupValidators(); + + new ControlPlayerInventory(this); + + IPoint handGlass = new IPoint(16.0F, 32.0F); + this.GlassControl = new ControlImage(this, handGlass.x(), handGlass.y(), new StandardTexture(0, 160, 96, 96, ExtraBeeTexture.GUIPunnett)); + new ControlSlot(this, handGlass.x() + 54.0F, handGlass.y() + 26.0F).assign(InventoryType.Window, 0); + + new ControlSlot(this, 208.0F, 8.0F).assign(InventoryType.Window, 1); + + this.text = new ControlText(this, new IPoint(232.0F, 13.0F), "Paper"); + this.text.setColour(2236962); + + this.text = new ControlText(this, new IArea(0.0F, 120.0F, w(), 24.0F), "", TextJustification.MiddleCenter); + this.text.setColour(2236962); + + this.chromo = new ControlChromosome(this, 150.0F, 24.0F); + + addEventHandler(new EventValueChanged.Handler() + { + public void onEvent(EventValueChanged event) + { + IChromosomeType type = (IChromosomeType)event.getValue(); + if ((type != null) && (WindowFieldKit.this.info.containsKey(type))) + { + String t = (String)WindowFieldKit.this.info.get(type); + WindowFieldKit.this.text.setValue(t); + } + else + { + WindowFieldKit.this.text.setValue(""); + } + } + }.setOrigin(EventHandler.Origin.DirectChild, this.chromo)); + } + + public void initialiseServer() + { + ItemStack kit = getPlayer().getHeldItem(); + int sheets = 64 - kit.getItemDamage(); + if (sheets != 0) { + getWindowInventory().setInventorySlotContents(1, new ItemStack(Items.paper, sheets)); + } + setupValidators(); + } + + private float glassOffsetX = 0.0F; + private float glassOffsetY = 0.0F; + private float glassVX = 0.0F; + private float glassVY = 0.0F; + private Random glassRand = new Random(); + private Control GlassControl; + private ControlChromosome chromo; + private ControlText text; + private float analyseProgress = 1.0F; + private boolean isAnalysing = false; + + public void onUpdateClient() + { + super.onUpdateClient(); + if (this.isAnalysing) + { + this.analyseProgress += 0.01F; + if (this.analyseProgress >= 1.0F) + { + this.isAnalysing = false; + this.analyseProgress = 1.0F; + ItemStack stack = getWindowInventory().getStackInSlot(0); + if (stack != null) { + sendClientAction("analyse", new NBTTagCompound()); + } + refreshSpecies(); + } + } + this.glassVX += this.glassRand.nextFloat() - 0.5F - this.glassOffsetX * 0.2F; + this.glassVY += this.glassRand.nextFloat() - 0.5F - this.glassOffsetY * 0.2F; + + this.glassOffsetX += this.glassVX; + this.glassOffsetX *= (1.0F - this.analyseProgress); + this.glassOffsetY += this.glassVY; + this.glassOffsetY *= (1.0F - this.analyseProgress); + + this.GlassControl.setOffset(new IPoint(this.glassOffsetX, this.glassOffsetY)); + } + + private Map info = new HashMap(); + + private void refreshSpecies() + { + ItemStack item = getWindowInventory().getStackInSlot(0); + if ((item == null) || (!AlleleManager.alleleRegistry.isIndividual(item))) { + return; + } + IIndividual ind = AlleleManager.alleleRegistry.getIndividual(item); + if (ind == null) { + return; + } + ISpeciesRoot root = AlleleManager.alleleRegistry.getSpeciesRoot(item); + this.chromo.setRoot(root); + Random rand = new Random(); + this.info.clear(); + for (IChromosomeType type : root.getKaryotype()) { + if (!Binnie.Genetics.isInvalidChromosome(type)) + { + IAllele allele = ind.getGenome().getActiveAllele(type); + List infos = new ArrayList(); + int i = 0; + String pref = root.getUID() + ".fieldkit." + type.getName().toLowerCase() + "."; + while (Binnie.Language.canLocalise(pref + i)) + { + infos.add(Binnie.Language.localise(pref + i)); + i++; + } + String text = Binnie.Genetics.getSystem(root).getAlleleName(type, allele); + if (!infos.isEmpty()) { + text = (String)infos.get(rand.nextInt(infos.size())); + } + this.info.put(type, text); + this.chromo.setRoot(root); + } + } + } + + private ItemStack prev = null; + + public void onWindowInventoryChanged() + { + super.onWindowInventoryChanged(); + if (isServer()) + { + ItemStack kit = getPlayer().getHeldItem(); + int sheets = 64 - kit.getItemDamage(); + int size = getWindowInventory().getStackInSlot(1) == null ? 0 : getWindowInventory().getStackInSlot(1).stackSize; + if (sheets != size) { + kit.setItemDamage(64 - size); + } + ((EntityPlayerMP)getPlayer()).updateHeldItem(); + } + if (isClient()) + { + ItemStack item = getWindowInventory().getStackInSlot(0); + this.prev = item; + this.text.setValue(""); + if ((item != null) && (!Analyser.isAnalysed(item))) + { + if (getWindowInventory().getStackInSlot(1) == null) + { + this.text.setValue("No Paper!"); + this.isAnalysing = false; + this.analyseProgress = 1.0F; + } + else + { + startAnalysing(); + this.chromo.setRoot(null); + if (!damageKit()) {} + } + } + else if (item != null) + { + this.isAnalysing = false; + this.analyseProgress = 1.0F; + refreshSpecies(); + if (!damageKit()) {} + } + else + { + this.isAnalysing = false; + this.analyseProgress = 1.0F; + + this.chromo.setRoot(null); + } + } + } + + private boolean damageKit() + { + return false; + } + + private void startAnalysing() + { + this.glassVX = 0.0F; + this.glassVY = 0.0F; + this.glassOffsetX = 0.0F; + this.glassOffsetY = 0.0F; + this.isAnalysing = true; + this.analyseProgress = 0.0F; + } + + public boolean showHelpButton() + { + return true; + } + + public String showInfoButton() + { + return "The Field Kit analyses bees, trees, flowers and butterflies. All that is required is a piece of paper to jot notes"; + } + + public void recieveGuiNBT(Side side, EntityPlayer player, String name, NBTTagCompound action) + { + super.recieveGuiNBT(side, player, name, action); + if ((side == Side.SERVER) && (name.equals("analyse"))) + { + getWindowInventory().setInventorySlotContents(0, Analyser.analyse(getWindowInventory().getStackInSlot(0))); + getWindowInventory().decrStackSize(1, 1); + } + } + + static class StyleSheetPunnett + extends StyleSheet + { + public StyleSheetPunnett() + { + this.textures.put(CraftGUITexture.Window, new PaddedTexture(0, 0, 160, 160, 0, ExtraBeeTexture.GUIPunnett, 32, 32, 32, 32)); + this.textures.put(CraftGUITexture.Slot, new StandardTexture(160, 0, 18, 18, 0, ExtraBeeTexture.GUIPunnett)); + this.textures.put(ExtraBeeGUITexture.Chromosome, new StandardTexture(160, 36, 16, 16, 0, ExtraBeeTexture.GUIPunnett)); + this.textures.put(ExtraBeeGUITexture.Chromosome2, new StandardTexture(160, 52, 16, 16, 0, ExtraBeeTexture.GUIPunnett)); + this.textures.put(CraftGUITexture.HelpButton, new StandardTexture(178, 0, 16, 16, 0, ExtraBeeTexture.GUIPunnett)); + this.textures.put(CraftGUITexture.InfoButton, new StandardTexture(178, 16, 16, 16, 0, ExtraBeeTexture.GUIPunnett)); + } + } +} diff --git a/src/Java/binnie/craftgui/binniecore/WindowGenesis.java b/src/Java/binnie/craftgui/binniecore/WindowGenesis.java new file mode 100644 index 0000000000..8295645f5a --- /dev/null +++ b/src/Java/binnie/craftgui/binniecore/WindowGenesis.java @@ -0,0 +1,264 @@ +package binnie.craftgui.binniecore; + +import binnie.Binnie; +import binnie.core.AbstractMod; +import binnie.core.BinnieCore; +import binnie.core.genetics.BreedingSystem; +import binnie.core.genetics.Gene; +import binnie.core.genetics.ManagerGenetics; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlListBox; +import binnie.craftgui.controls.listbox.ControlTextOption; +import binnie.craftgui.controls.tab.ControlTab; +import binnie.craftgui.controls.tab.ControlTabBar; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.core.geometry.IArea; +import binnie.craftgui.core.geometry.Position; +import binnie.craftgui.events.EventHandler.Origin; +import binnie.craftgui.events.EventMouse.Down; +import binnie.craftgui.events.EventMouse.Down.Handler; +import binnie.craftgui.events.EventValueChanged; +import binnie.craftgui.events.EventValueChanged.Handler; +import binnie.craftgui.minecraft.MinecraftGUI.PanelType; +import binnie.craftgui.minecraft.Window; +import binnie.craftgui.minecraft.control.ControlItemDisplay; +import binnie.craftgui.minecraft.control.ControlPlayerInventory; +import binnie.craftgui.minecraft.control.ControlTabIcon; +import binnie.craftgui.window.Panel; +import binnie.genetics.gui.ControlGenesisOption; +import cpw.mods.fml.relauncher.Side; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IChromosomeType; +import forestry.api.genetics.IIndividual; +import forestry.api.genetics.ISpeciesRoot; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class WindowGenesis + extends Window +{ + private ISpeciesRoot root; + private IAllele[] template; + private ControlListBox geneList; + private ControlListBox geneOptions; + private Panel panelPickup; + + public WindowGenesis(EntityPlayer player, IInventory inventory, Side side) + { + super(342.0F, 228.0F, player, inventory, side); + } + + protected AbstractMod getMod() + { + return BinnieCore.instance; + } + + protected String getName() + { + return "Genesis"; + } + + public void initialiseClient() + { + new ControlPlayerInventory(this); + setTitle("Genesis"); + + ControlTabBar tabSystems = new ControlTabBar(this, 8.0F, 28.0F, 23.0F, 100.0F, Position.Left) + { + public ControlTab createTab(float x, float y, float w, float h, BreedingSystem value) + { + new ControlTabIcon(this, x, y, w, h, value) + { + public ItemStack getItemStack() + { + int type = ((BreedingSystem)this.value).getDefaultType(); + IIndividual ind = ((BreedingSystem)this.value).getDefaultIndividual(); + return ((BreedingSystem)this.value).getSpeciesRoot().getMemberStack(ind, type); + } + + public String getName() + { + return ((BreedingSystem)this.value).getName(); + } + + public int getOutlineColour() + { + return ((BreedingSystem)this.value).getColour(); + } + + public boolean hasOutline() + { + return true; + } + }; + } + }; + tabSystems.setValues(Binnie.Genetics.getActiveSystems()); + + this.root = ((BreedingSystem)Binnie.Genetics.getActiveSystems().iterator().next()).getSpeciesRoot(); + this.template = this.root.getDefaultTemplate(); + + IArea one = new IArea(32.0F, 28.0F, 170.0F, 100.0F); + IArea two = new IArea(214.0F, 28.0F, 100.0F, 100.0F); + + new Panel(this, one.outset(1), MinecraftGUI.PanelType.Black); + new Panel(this, two.outset(1), MinecraftGUI.PanelType.Black); + + this.geneList = new ControlListBox(this, one.x(), one.y(), one.w(), one.h(), 10.0F) + { + public IWidget createOption(Gene value, int y) + { + return new ControlGenesisOption((ControlList)getContent(), value, y); + } + }; + this.geneOptions = new ControlListBox(this, two.x(), two.y(), two.w(), two.h(), 10.0F) + { + public IWidget createOption(Gene value, int y) + { + return new ControlTextOption((ControlList)getContent(), value, y); + } + }; + tabSystems.addEventHandler(new EventValueChanged.Handler() + { + public void onEvent(EventValueChanged event) + { + WindowGenesis.this.root = ((BreedingSystem)event.getValue()).getSpeciesRoot(); + WindowGenesis.this.template = WindowGenesis.this.root.getDefaultTemplate(); + WindowGenesis.this.refreshTemplate(null); + } + }.setOrigin(EventHandler.Origin.Self, tabSystems)); + + + + this.geneList.addEventHandler(new EventValueChanged.Handler() + { + public void onEvent(EventValueChanged event) + { + Map> map = Binnie.Genetics.getChromosomeMap(WindowGenesis.this.root); + List opts = new ArrayList(); + IChromosomeType chromo = ((Gene)event.value).getChromosome(); + for (IAllele allele : (List)map.get(chromo)) { + opts.add(new Gene(allele, chromo, WindowGenesis.this.root)); + } + WindowGenesis.this.geneOptions.setOptions(opts); + } + }.setOrigin(EventHandler.Origin.Self, this.geneList)); + + + + this.geneOptions.addEventHandler(new EventValueChanged.Handler() + { + public void onEvent(EventValueChanged event) + { + if (event.value == null) { + return; + } + IChromosomeType chromo = ((Gene)event.value).getChromosome(); + WindowGenesis.this.template[chromo.ordinal()] = ((Gene)event.value).getAllele(); + if (chromo == ((Gene)event.value).getSpeciesRoot().getKaryotypeKey()) { + WindowGenesis.this.template = ((Gene)event.value).getSpeciesRoot().getTemplate(((Gene)event.value).getAllele().getUID()); + } + WindowGenesis.this.refreshTemplate(chromo); + } + }.setOrigin(EventHandler.Origin.Self, this.geneOptions)); + + + + + this.panelPickup = new Panel(this, 16.0F, 140.0F, 60.0F, 42.0F, MinecraftGUI.PanelType.Black); + + refreshTemplate(null); + } + + private void refreshTemplate(IChromosomeType selection) + { + List genes = new ArrayList(); + IChromosomeType[] chromos = (IChromosomeType[])Binnie.Genetics.getChromosomeMap(this.root).keySet().toArray(new IChromosomeType[0]); + for (IChromosomeType type : chromos) + { + IAllele allele = this.template[type.ordinal()]; + if (allele == null) { + throw new NullPointerException("Allele missing for Chromosome " + type.getName()); + } + genes.add(new Gene(allele, type, this.root)); + } + Map> map = Binnie.Genetics.getChromosomeMap(this.root); + this.geneList.setOptions(genes); + if (selection != null) { + this.geneList.setValue(new Gene(this.template[selection.ordinal()], selection, this.root)); + } else { + this.geneOptions.setOptions(new ArrayList()); + } + refreshPickup(); + } + + private void refreshPickup() + { + this.panelPickup.deleteAllChildren(); + int i = 0; + for (int type : Binnie.Genetics.getSystem(this.root).getActiveTypes()) + { + IIndividual ind = this.root.templateAsIndividual(this.template); + ind.analyze(); + final ItemStack stack = this.root.getMemberStack(ind, type); + ControlItemDisplay display = new ControlItemDisplay(this.panelPickup, 4 + i % 3 * 18, 4 + i / 3 * 18); + display.setItemStack(stack); + display.setTooltip(); + display.addEventHandler(new EventMouse.Down.Handler() + { + public void onEvent(EventMouse.Down event) + { + NBTTagCompound nbt = new NBTTagCompound(); + stack.writeToNBT(nbt); + Window.get(event.getOrigin()).sendClientAction("genesis", nbt); + } + }.setOrigin(EventHandler.Origin.Self, display)); + + + + i++; + } + } + + public void recieveGuiNBT(Side side, EntityPlayer player, String name, NBTTagCompound action) + { + super.recieveGuiNBT(side, player, name, action); + if ((side == Side.SERVER) && (name.equals("genesis"))) + { + ItemStack stack = ItemStack.loadItemStackFromNBT(action); + InventoryPlayer playerInv = player.inventory; + if (stack == null) { + return; + } + if (playerInv.getItemStack() == null) + { + playerInv.setItemStack(stack); + } + else if ((playerInv.getItemStack().isItemEqual(stack)) && (ItemStack.areItemStackTagsEqual(playerInv.getItemStack(), stack))) + { + int fit = stack.getMaxStackSize() - (stack.stackSize + playerInv.getItemStack().stackSize); + if (fit >= 0) + { + ItemStack rec = stack; + rec.stackSize += playerInv.getItemStack().stackSize; + playerInv.setItemStack(rec); + } + } + player.openContainer.detectAndSendChanges(); + if ((player instanceof EntityPlayerMP)) { + ((EntityPlayerMP)player).updateHeldItem(); + } + } + } +} diff --git a/src/Java/binnie/craftgui/botany/ControlColourDisplay.java b/src/Java/binnie/craftgui/botany/ControlColourDisplay.java new file mode 100644 index 0000000000..21408ec4ad --- /dev/null +++ b/src/Java/binnie/craftgui/botany/ControlColourDisplay.java @@ -0,0 +1,47 @@ +package binnie.craftgui.botany; + +import binnie.botany.api.IFlowerColour; +import binnie.craftgui.controls.core.Control; +import binnie.craftgui.controls.core.IControlValue; +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.IArea; +import binnie.craftgui.core.renderer.Renderer; + +public class ControlColourDisplay + extends Control + implements IControlValue, ITooltip +{ + IFlowerColour value; + + public ControlColourDisplay(IWidget parent, float x, float y) + { + super(parent, x, y, 16.0F, 16.0F); + addAttribute(Attribute.MouseOver); + } + + public IFlowerColour getValue() + { + return this.value; + } + + public void setValue(IFlowerColour value) + { + this.value = value; + } + + public void onRenderBackground() + { + CraftGUI.Render.solid(getArea(), -1); + CraftGUI.Render.solid(getArea().inset(1), -16777216 + getValue().getColor(false)); + } + + public void getTooltip(Tooltip tooltip) + { + super.getTooltip(tooltip); + tooltip.add(this.value.getName()); + } +} diff --git a/src/Java/binnie/craftgui/botany/ControlColourMixBox.java b/src/Java/binnie/craftgui/botany/ControlColourMixBox.java new file mode 100644 index 0000000000..7ca4fa98f2 --- /dev/null +++ b/src/Java/binnie/craftgui/botany/ControlColourMixBox.java @@ -0,0 +1,31 @@ +package binnie.craftgui.botany; + +import binnie.botany.api.IColourMix; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlListBox; +import binnie.craftgui.core.IWidget; + +public class ControlColourMixBox + extends ControlListBox +{ + private int index; + private Type type; + + public IWidget createOption(IColourMix value, int y) + { + return new ControlColourMixItem((ControlList)getContent(), value, y); + } + + static enum Type + { + Resultant, Further; + + private Type() {} + } + + public ControlColourMixBox(IWidget parent, int x, int y, int width, int height, Type type) + { + super(parent, x, y, width, height, 12.0F); + this.type = type; + } +} diff --git a/src/Java/binnie/craftgui/botany/ControlColourMixItem.java b/src/Java/binnie/craftgui/botany/ControlColourMixItem.java new file mode 100644 index 0000000000..cf519b9a8e --- /dev/null +++ b/src/Java/binnie/craftgui/botany/ControlColourMixItem.java @@ -0,0 +1,37 @@ +package binnie.craftgui.botany; + +import binnie.botany.api.IColourMix; +import binnie.core.genetics.BreedingSystem; +import binnie.craftgui.controls.listbox.ControlList; +import binnie.craftgui.controls.listbox.ControlOption; +import binnie.craftgui.mod.database.WindowAbstractDatabase; + +public class ControlColourMixItem + extends ControlOption +{ + ControlColourDisplay itemWidget1; + ControlColourDisplay itemWidget2; + ControlColourDisplay itemWidget3; + ControlColourMixSymbol addSymbol; + ControlColourMixSymbol arrowSymbol; + + public ControlColourMixItem(ControlList controlList, IColourMix option, int y) + { + super(controlList, option, y); + this.itemWidget1 = new ControlColourDisplay(this, 4.0F, 4.0F); + this.itemWidget2 = new ControlColourDisplay(this, 44.0F, 4.0F); + this.itemWidget3 = new ControlColourDisplay(this, 104.0F, 4.0F); + this.addSymbol = new ControlColourMixSymbol(this, 24, 4, 0); + this.arrowSymbol = new ControlColourMixSymbol(this, 64, 4, 1); + + BreedingSystem system = ((WindowAbstractDatabase)getSuperParent()).getBreedingSystem(); + if (getValue() != null) + { + this.itemWidget1.setValue(((IColourMix)getValue()).getColour1()); + this.itemWidget2.setValue(((IColourMix)getValue()).getColour2()); + this.itemWidget3.setValue(((IColourMix)getValue()).getResult()); + this.addSymbol.setValue((IColourMix)getValue()); + this.arrowSymbol.setValue((IColourMix)getValue()); + } + } +} diff --git a/src/Java/binnie/craftgui/botany/ControlColourMixSymbol.java b/src/Java/binnie/craftgui/botany/ControlColourMixSymbol.java new file mode 100644 index 0000000000..5afb98d54f --- /dev/null +++ b/src/Java/binnie/craftgui/botany/ControlColourMixSymbol.java @@ -0,0 +1,58 @@ +package binnie.craftgui.botany; + +import binnie.botany.api.IColourMix; +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.resource.Texture; +import binnie.craftgui.resource.minecraft.CraftGUITextureSheet; +import binnie.craftgui.resource.minecraft.StandardTexture; + +public class ControlColourMixSymbol + extends Control + implements ITooltip +{ + static Texture MutationPlus = new StandardTexture(2, 94, 16, 16, CraftGUITextureSheet.Controls2); + static Texture MutationArrow = new StandardTexture(20, 94, 32, 16, CraftGUITextureSheet.Controls2); + IColourMix value; + 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 ControlColourMixSymbol(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(IColourMix value) + { + this.value = value; + + setColour(16777215); + } + + public void getTooltip(Tooltip tooltip) + { + if (this.type == 1) + { + float chance = this.value.getChance(); + tooltip.add("Current Chance - " + chance + "%"); + } + } +} diff --git a/src/Java/binnie/craftgui/botany/ControlColourOption.java b/src/Java/binnie/craftgui/botany/ControlColourOption.java new file mode 100644 index 0000000000..0a94e5690f --- /dev/null +++ b/src/Java/binnie/craftgui/botany/ControlColourOption.java @@ -0,0 +1,38 @@ +package binnie.craftgui.botany; + +import binnie.botany.api.IFlowerColour; +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; + +public class ControlColourOption + extends ControlTextOption +{ + ControlColourDisplay controlBee; + IPoint boxPosition; + + public ControlColourOption(ControlList controlList, IFlowerColour option, int y) + { + super(controlList, option, option.getName(), y); + setSize(new IPoint(getSize().x(), 20.0F)); + + this.controlBee = new ControlColourDisplay(this, 2.0F, 2.0F); + this.controlBee.setValue(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.boxPosition = new IPoint(2.0F, (height - 18) / 2); + } +} diff --git a/src/Java/binnie/craftgui/botany/PageColourMix.java b/src/Java/binnie/craftgui/botany/PageColourMix.java new file mode 100644 index 0000000000..5fc7e335db --- /dev/null +++ b/src/Java/binnie/craftgui/botany/PageColourMix.java @@ -0,0 +1,40 @@ +package binnie.craftgui.botany; + +import binnie.botany.api.IColourMix; +import binnie.botany.api.IFlowerColour; +import binnie.botany.api.IFlowerRoot; +import binnie.botany.core.BotanyCore; +import binnie.craftgui.controls.ControlText; +import binnie.craftgui.controls.ControlTextCentered; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.mod.database.DatabaseTab; +import binnie.craftgui.mod.database.PageAbstract; +import java.util.ArrayList; +import java.util.List; + +public class PageColourMix + extends PageAbstract +{ + ControlText pageSpeciesFurther_Title; + ControlColourMixBox pageSpeciesFurther_List; + + public PageColourMix(IWidget parent, DatabaseTab tab) + { + super(parent, tab); + + this.pageSpeciesFurther_Title = new ControlTextCentered(this, 8.0F, "Further Mixes"); + + this.pageSpeciesFurther_List = new ControlColourMixBox(this, 4, 20, 136, 152, ControlColourMixBox.Type.Further); + } + + public void onValueChanged(IFlowerColour colour) + { + List mixes = new ArrayList(); + for (IColourMix mix : BotanyCore.getFlowerRoot().getColourMixes(false)) { + if ((mix.getColour1() == colour) || (mix.getColour2() == colour)) { + mixes.add(mix); + } + } + this.pageSpeciesFurther_List.setOptions(mixes); + } +} diff --git a/src/Java/binnie/craftgui/botany/PageColourMixResultant.java b/src/Java/binnie/craftgui/botany/PageColourMixResultant.java new file mode 100644 index 0000000000..a8a50f2cb7 --- /dev/null +++ b/src/Java/binnie/craftgui/botany/PageColourMixResultant.java @@ -0,0 +1,40 @@ +package binnie.craftgui.botany; + +import binnie.botany.api.IColourMix; +import binnie.botany.api.IFlowerColour; +import binnie.botany.api.IFlowerRoot; +import binnie.botany.core.BotanyCore; +import binnie.craftgui.controls.ControlText; +import binnie.craftgui.controls.ControlTextCentered; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.mod.database.DatabaseTab; +import binnie.craftgui.mod.database.PageAbstract; +import java.util.ArrayList; +import java.util.List; + +public class PageColourMixResultant + extends PageAbstract +{ + ControlText pageSpeciesFurther_Title; + ControlColourMixBox pageSpeciesFurther_List; + + public PageColourMixResultant(IWidget parent, DatabaseTab tab) + { + super(parent, tab); + + this.pageSpeciesFurther_Title = new ControlTextCentered(this, 8.0F, "Resultant Mixes"); + + this.pageSpeciesFurther_List = new ControlColourMixBox(this, 4, 20, 136, 152, ControlColourMixBox.Type.Resultant); + } + + public void onValueChanged(IFlowerColour colour) + { + List mixes = new ArrayList(); + for (IColourMix mix : BotanyCore.getFlowerRoot().getColourMixes(false)) { + if (mix.getResult() == colour) { + mixes.add(mix); + } + } + this.pageSpeciesFurther_List.setOptions(mixes); + } +} diff --git a/src/Java/binnie/craftgui/botany/PageSpeciesFlowerGenome.java b/src/Java/binnie/craftgui/botany/PageSpeciesFlowerGenome.java new file mode 100644 index 0000000000..dece27f306 --- /dev/null +++ b/src/Java/binnie/craftgui/botany/PageSpeciesFlowerGenome.java @@ -0,0 +1,137 @@ +package binnie.craftgui.botany; + +import binnie.Binnie; +import binnie.botany.api.EnumFlowerChromosome; +import binnie.botany.api.EnumFlowerStage; +import binnie.botany.api.IAlleleFlowerSpecies; +import binnie.botany.api.IFlower; +import binnie.botany.api.IFlowerGenome; +import binnie.botany.api.IFlowerRoot; +import binnie.botany.core.BotanyCore; +import binnie.core.genetics.ManagerGenetics; +import binnie.core.language.ManagerLanguage; +import binnie.craftgui.controls.ControlText; +import binnie.craftgui.controls.core.Control; +import binnie.craftgui.controls.scroll.ControlScrollableContent; +import binnie.craftgui.core.IWidget; +import binnie.craftgui.core.geometry.IArea; +import binnie.craftgui.core.geometry.IPoint; +import binnie.craftgui.core.geometry.TextJustification; +import binnie.craftgui.minecraft.control.ControlItemDisplay; +import binnie.craftgui.mod.database.DatabaseTab; +import binnie.craftgui.mod.database.PageSpecies; +import forestry.api.core.EnumTemperature; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IAlleleSpecies; +import forestry.api.genetics.IGenome; +import forestry.api.genetics.IIndividual; +import net.minecraft.item.ItemStack; + +public class PageSpeciesFlowerGenome + extends PageSpecies +{ + public PageSpeciesFlowerGenome(IWidget parent, DatabaseTab tab) + { + super(parent, tab); + } + + public void onValueChanged(IAlleleSpecies species) + { + deleteAllChildren(); + IAllele[] template = Binnie.Genetics.getFlowerRoot().getTemplate(species.getUID()); + if (template == null) { + return; + } + IFlower tree = Binnie.Genetics.getFlowerRoot().templateAsIndividual(template); + if (tree == null) { + return; + } + IFlowerGenome genome = tree.getGenome(); + IAlleleFlowerSpecies treeSpecies = genome.getPrimary(); + + int w = 144; + int h = 176; + + new ControlText(this, new IArea(0.0F, 4.0F, w, 16.0F), "Genome", TextJustification.MiddleCenter); + + ControlScrollableContent scrollable = new ControlScrollableContent(this, 4.0F, 20.0F, w - 8, h - 8 - 16, 12.0F); + + Control contents = new Control(scrollable, 0.0F, 0.0F, w - 8 - 12, h - 8 - 16); + + int tw = w - 8 - 12; + int w1 = 55; + int w2 = tw - 50; + int y = 0; + int th = 14; + int th2 = 18; + + new ControlText(contents, new IArea(0.0F, y, w1, th), "Temp. : ", TextJustification.MiddleRight); + new ControlText(contents, new IArea(w1, y, w2, th), treeSpecies.getTemperature().getName(), TextJustification.MiddleLeft); + + y += th; + + new ControlText(contents, new IArea(0.0F, y, w1, th), "Moist. : ", TextJustification.MiddleRight); + new ControlText(contents, new IArea(w1, y, w2, th), Binnie.Language.localise(treeSpecies.getMoisture()), TextJustification.MiddleLeft); + + + y += th; + + new ControlText(contents, new IArea(0.0F, y, w1, th), "pH. : ", TextJustification.MiddleRight); + new ControlText(contents, new IArea(w1, y, w2, th), Binnie.Language.localise(treeSpecies.getPH()), TextJustification.MiddleLeft); + + y += th; + + new ControlText(contents, new IArea(0.0F, y, w1, th), "Fertility : ", TextJustification.MiddleRight); + new ControlText(contents, new IArea(w1, y, w2, th), genome.getFertility() + "x", TextJustification.MiddleLeft); + y += th; + + float lifespan = genome.getLifespan() * 68.269997F / genome.getAgeChance() / 24000.0F; + + new ControlText(contents, new IArea(0.0F, y, w1, th), "Lifespan : ", TextJustification.MiddleRight); + new ControlText(contents, new IArea(w1, y, w2, th), "" + String.format("%.2f", new Object[] { Float.valueOf(lifespan) }) + " days", TextJustification.MiddleLeft); + + y += th; + + new ControlText(contents, new IArea(0.0F, y, w1, th), "Nectar : ", TextJustification.MiddleRight); + new ControlText(contents, new IArea(w1, y, w2, th), genome.getActiveAllele(EnumFlowerChromosome.SAPPINESS).getName(), TextJustification.MiddleLeft); + + + y += th; + + int x = w1; + int tot = 0; + for (IIndividual vid : BotanyCore.getFlowerRoot().getIndividualTemplates()) { + if (vid.getGenome().getPrimary() == treeSpecies) + { + if ((tot > 0) && (tot % 3 == 0)) + { + x -= 54; + y += 18; + } + ItemStack stack = BotanyCore.getFlowerRoot().getMemberStack((IFlower)vid, EnumFlowerStage.FLOWER.ordinal()); + ControlItemDisplay display = new ControlItemDisplay(contents, x, y); + display.setItemStack(stack); + tot++; + x += 18; + } + } + int numOfLines = 1 + (tot - 1) / 3; + + new ControlText(contents, new IArea(0.0F, y - (numOfLines - 1) * 18, w1, 4 + 18 * numOfLines), "Varieties : ", TextJustification.MiddleRight); + + + y += th; + + contents.setSize(new IPoint(contents.size().x(), y)); + + scrollable.setScrollableContent(contents); + } + + public static String tolerated(boolean t) + { + if (t) { + return "Tolerated"; + } + return "Not Tolerated"; + } +} diff --git a/src/Java/binnie/craftgui/botany/WindowBotanistDatabase.java b/src/Java/binnie/craftgui/botany/WindowBotanistDatabase.ja