From c65416e03ce0791c4a99e9bdfc18c0fa0863028a Mon Sep 17 00:00:00 2001 From: Lorenz Date: Thu, 14 Jul 2022 11:26:34 +0200 Subject: remove old sbh/skyblockhud code --- src/main/java/at/lorenz/mod/LorenzMod.java | 103 +--- src/main/java/at/lorenz/mod/config/Features.java | 18 +- src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt | 10 +- src/main/java/at/lorenz/mod/utils/GuiRender.kt | 2 +- .../java/com/thatgravyboat/amod/GuiTextures.java | 32 ++ .../com/thatgravyboat/amod/commands/Commands.java | 31 ++ .../thatgravyboat/amod/commands/SimpleCommand.java | 60 ++ .../thatgravyboat/amod/config/ConfigEditor.java | 602 ++++++++++++++++++++ .../thatgravyboat/amod/core/BackgroundBlur.java | 249 +++++++++ .../com/thatgravyboat/amod/core/ChromaColour.java | 93 ++++ .../thatgravyboat/amod/core/GlScissorStack.java | 86 +++ .../com/thatgravyboat/amod/core/GuiElement.java | 12 + .../thatgravyboat/amod/core/GuiElementBoolean.java | 118 ++++ .../thatgravyboat/amod/core/GuiElementColour.java | 370 +++++++++++++ .../amod/core/GuiElementTextField.java | 549 +++++++++++++++++++ .../amod/core/GuiScreenElementWrapper.java | 34 ++ .../com/thatgravyboat/amod/core/config/Config.java | 5 + .../amod/core/config/KeybindHelper.java | 49 ++ .../thatgravyboat/amod/core/config/Position.java | 197 +++++++ .../amod/core/config/annotations/Category.java | 14 + .../core/config/annotations/ConfigAccordionId.java | 12 + .../config/annotations/ConfigEditorAccordion.java | 12 + .../config/annotations/ConfigEditorBoolean.java | 11 + .../config/annotations/ConfigEditorButton.java | 14 + .../config/annotations/ConfigEditorColour.java | 11 + .../annotations/ConfigEditorDraggableList.java | 12 + .../config/annotations/ConfigEditorDropdown.java | 14 + .../config/annotations/ConfigEditorKeybind.java | 12 + .../config/annotations/ConfigEditorSlider.java | 16 + .../core/config/annotations/ConfigEditorStyle.java | 11 + .../core/config/annotations/ConfigEditorText.java | 11 + .../amod/core/config/annotations/ConfigOption.java | 16 + .../amod/core/config/gui/GuiOptionEditor.java | 62 +++ .../core/config/gui/GuiOptionEditorAccordion.java | 80 +++ .../core/config/gui/GuiOptionEditorBoolean.java | 37 ++ .../core/config/gui/GuiOptionEditorButton.java | 60 ++ .../core/config/gui/GuiOptionEditorColour.java | 74 +++ .../config/gui/GuiOptionEditorDraggableList.java | 268 +++++++++ .../core/config/gui/GuiOptionEditorDropdown.java | 145 +++++ .../core/config/gui/GuiOptionEditorKeybind.java | 88 +++ .../core/config/gui/GuiOptionEditorSlider.java | 136 +++++ .../amod/core/config/gui/GuiOptionEditorStyle.java | 42 ++ .../amod/core/config/gui/GuiOptionEditorText.java | 78 +++ .../amod/core/config/gui/GuiPositionEditor.java | 171 ++++++ .../amod/core/config/struct/ConfigProcessor.java | 166 ++++++ .../amod/core/util/GuiElementSlider.java | 120 ++++ .../thatgravyboat/amod/core/util/StringUtils.java | 8 + .../amod/core/util/lerp/LerpUtils.java | 25 + .../amod/core/util/lerp/LerpingFloat.java | 68 +++ .../amod/core/util/lerp/LerpingInteger.java | 76 +++ .../amod/core/util/render/RenderUtils.java | 155 ++++++ .../amod/core/util/render/TextRenderUtils.java | 155 ++++++ .../thatgravyboat/amod/textures/TextureObject.java | 37 ++ .../com/thatgravyboat/amod/textures/Textures.java | 56 ++ .../java/com/thatgravyboat/amod/utils/Utils.java | 374 +++++++++++++ .../skyblockhud_2/ComponentHandler.java | 124 ----- .../skyblockhud_2/DevModeConstants.java | 6 - .../thatgravyboat/skyblockhud_2/GuiTextures.java | 33 -- .../skyblockhud_2/api/KillTracking.java | 61 --- .../skyblockhud_2/api/LeaderboardGetter.java | 65 --- .../api/events/LocationChangeEvent.java | 15 - .../api/events/ProfileJoinedEvent.java | 12 - .../api/events/ProfileSwitchedEvent.java | 12 - .../api/events/SidebarLineUpdateEvent.java | 22 - .../skyblockhud_2/api/events/SidebarPostEvent.java | 21 - .../api/events/SidebarPreGetEvent.java | 18 - .../api/events/SkyBlockEntityKilled.java | 18 - .../skyblockhud_2/api/item/IAbility.java | 7 - .../api/sbentities/EntityTypeHelper.java | 36 -- .../api/sbentities/EntityTypeRegistry.java | 27 - .../api/sbentities/SkyBlockEntity.java | 27 - .../skyblockhud_2/commands/Commands.java | 87 --- .../skyblockhud_2/commands/SimpleCommand.java | 60 -- .../skyblockhud_2/commands/SimpleSubCommand.java | 61 --- .../skyblockhud_2/config/KeyBindings.java | 8 - .../skyblockhud_2/config/SBHConfig.java | 456 ---------------- .../skyblockhud_2/config/SBHConfigEditor.java | 604 --------------------- .../skyblockhud_2/core/BackgroundBlur.java | 249 --------- .../skyblockhud_2/core/ChromaColour.java | 93 ---- .../skyblockhud_2/core/GlScissorStack.java | 86 --- .../skyblockhud_2/core/GuiElement.java | 12 - .../skyblockhud_2/core/GuiElementBoolean.java | 118 ---- .../skyblockhud_2/core/GuiElementColour.java | 370 ------------- .../skyblockhud_2/core/GuiElementTextField.java | 549 ------------------- .../core/GuiScreenElementWrapper.java | 34 -- .../skyblockhud_2/core/config/Config.java | 5 - .../skyblockhud_2/core/config/KeybindHelper.java | 49 -- .../skyblockhud_2/core/config/Position.java | 197 ------- .../core/config/annotations/Category.java | 14 - .../core/config/annotations/ConfigAccordionId.java | 12 - .../config/annotations/ConfigEditorAccordion.java | 12 - .../config/annotations/ConfigEditorBoolean.java | 11 - .../config/annotations/ConfigEditorButton.java | 14 - .../config/annotations/ConfigEditorColour.java | 11 - .../annotations/ConfigEditorDraggableList.java | 12 - .../config/annotations/ConfigEditorDropdown.java | 14 - .../config/annotations/ConfigEditorKeybind.java | 12 - .../config/annotations/ConfigEditorSlider.java | 16 - .../core/config/annotations/ConfigEditorStyle.java | 11 - .../core/config/annotations/ConfigEditorText.java | 11 - .../core/config/annotations/ConfigOption.java | 16 - .../core/config/gui/GuiOptionEditor.java | 62 --- .../core/config/gui/GuiOptionEditorAccordion.java | 80 --- .../core/config/gui/GuiOptionEditorBoolean.java | 37 -- .../core/config/gui/GuiOptionEditorButton.java | 60 -- .../core/config/gui/GuiOptionEditorColour.java | 74 --- .../config/gui/GuiOptionEditorDraggableList.java | 268 --------- .../core/config/gui/GuiOptionEditorDropdown.java | 145 ----- .../core/config/gui/GuiOptionEditorKeybind.java | 88 --- .../core/config/gui/GuiOptionEditorSlider.java | 136 ----- .../core/config/gui/GuiOptionEditorStyle.java | 42 -- .../core/config/gui/GuiOptionEditorText.java | 78 --- .../core/config/gui/GuiPositionEditor.java | 171 ------ .../core/config/struct/ConfigProcessor.java | 166 ------ .../skyblockhud_2/core/util/GuiElementSlider.java | 120 ---- .../skyblockhud_2/core/util/StringUtils.java | 8 - .../skyblockhud_2/core/util/lerp/LerpUtils.java | 25 - .../skyblockhud_2/core/util/lerp/LerpingFloat.java | 68 --- .../core/util/lerp/LerpingInteger.java | 76 --- .../core/util/render/RenderUtils.java | 155 ------ .../core/util/render/TextRenderUtils.java | 155 ------ .../skyblockhud_2/dungeons/Classes.java | 48 -- .../skyblockhud_2/dungeons/DungeonHandler.java | 195 ------- .../skyblockhud_2/dungeons/DungeonPlayer.java | 32 -- .../skyblockhud_2/handlers/BossbarHandler.java | 36 -- .../skyblockhud_2/handlers/CooldownHandler.java | 121 ----- .../skyblockhud_2/handlers/CrystalWaypoints.java | 196 ------- .../skyblockhud_2/handlers/CurrencyHandler.java | 86 --- .../skyblockhud_2/handlers/HeldItemHandler.java | 31 -- .../skyblockhud_2/handlers/MapHandler.java | 206 ------- .../skyblockhud_2/handlers/NpcDialogue.java | 131 ----- .../skyblockhud_2/handlers/SlayerHandler.java | 130 ----- .../skyblockhud_2/handlers/TimeHandler.java | 28 - .../skyblockhud_2/handlers/WarpHandler.java | 179 ------ .../handlers/mapicons/DwarvenIcons.java | 39 -- .../skyblockhud_2/handlers/mapicons/HubIcons.java | 55 -- .../skyblockhud_2/location/EndIslandHandler.java | 53 -- .../skyblockhud_2/location/FarmHouseHandler.java | 41 -- .../location/FarmingIslandHandler.java | 28 - .../skyblockhud_2/location/IslandHandler.java | 67 --- .../skyblockhud_2/location/LocationCategory.java | 54 -- .../skyblockhud_2/location/LocationHandler.java | 44 -- .../skyblockhud_2/location/Locations.java | 161 ------ .../skyblockhud_2/location/MinesHandler.java | 192 ------- .../skyblockhud_2/location/ParkIslandHandler.java | 29 - .../skyblockhud_2/mixins/GuiChestAccessor.java | 12 - .../skyblockhud_2/mixins/MixinEntityArrow.java | 26 - .../skyblockhud_2/mixins/MixinGuiIngameForge.java | 113 ---- .../skyblockhud_2/mixins/MixinItemStack.java | 42 -- .../mixins/MixinNetHandlerPlayClient.java | 67 --- .../skyblockhud_2/mixins/MixinRenderItem.java | 63 --- .../skyblockhud_2/overlay/DungeonOverlay.java | 149 ----- .../skyblockhud_2/overlay/GenericOverlays.java | 42 -- .../skyblockhud_2/overlay/MiningHud.java | 76 --- .../skyblockhud_2/overlay/OverlayHud.java | 331 ----------- .../skyblockhud_2/overlay/RPGHud.java | 112 ---- .../playerstats/ActionBarParsing.java | 152 ------ .../skyblockhud_2/seasons/Season.java | 53 -- .../skyblockhud_2/seasons/SeasonDateHandler.java | 73 --- .../skyblockhud_2/textures/TextureObject.java | 37 -- .../skyblockhud_2/textures/Textures.java | 56 -- .../skyblockhud_2/tracker/TrackerFileLoader.java | 136 ----- .../skyblockhud_2/tracker/TrackerHandler.java | 108 ---- .../skyblockhud_2/tracker/TrackerObject.java | 97 ---- .../skyblockhud_2/utils/ComponentBuilder.java | 54 -- .../skyblockhud_2/utils/SpecialColour.java | 93 ---- .../thatgravyboat/skyblockhud_2/utils/Utils.java | 374 ------------- 167 files changed, 5152 insertions(+), 10285 deletions(-) create mode 100644 src/main/java/com/thatgravyboat/amod/GuiTextures.java create mode 100644 src/main/java/com/thatgravyboat/amod/commands/Commands.java create mode 100644 src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java create mode 100644 src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/BackgroundBlur.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/ChromaColour.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/GlScissorStack.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/GuiElement.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/GuiElementBoolean.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/GuiElementColour.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/GuiElementTextField.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/GuiScreenElementWrapper.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/Config.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/KeybindHelper.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/Position.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/Category.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigAccordionId.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorAccordion.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorBoolean.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorButton.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorColour.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorDraggableList.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorDropdown.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorKeybind.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorSlider.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorStyle.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigEditorText.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/annotations/ConfigOption.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditor.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorAccordion.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorBoolean.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorButton.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorColour.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorDraggableList.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorDropdown.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorKeybind.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorSlider.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorStyle.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiOptionEditorText.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/gui/GuiPositionEditor.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/config/struct/ConfigProcessor.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/util/GuiElementSlider.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/util/StringUtils.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/util/lerp/LerpUtils.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/util/lerp/LerpingFloat.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/util/lerp/LerpingInteger.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/util/render/RenderUtils.java create mode 100644 src/main/java/com/thatgravyboat/amod/core/util/render/TextRenderUtils.java create mode 100644 src/main/java/com/thatgravyboat/amod/textures/TextureObject.java create mode 100644 src/main/java/com/thatgravyboat/amod/textures/Textures.java create mode 100644 src/main/java/com/thatgravyboat/amod/utils/Utils.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/ComponentHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/DevModeConstants.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/GuiTextures.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/KillTracking.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/LeaderboardGetter.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/LocationChangeEvent.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileJoinedEvent.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/ProfileSwitchedEvent.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarLineUpdateEvent.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPostEvent.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SidebarPreGetEvent.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/events/SkyBlockEntityKilled.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/item/IAbility.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeHelper.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/EntityTypeRegistry.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/api/sbentities/SkyBlockEntity.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/commands/Commands.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleCommand.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/commands/SimpleSubCommand.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/config/KeyBindings.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/config/SBHConfig.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/config/SBHConfigEditor.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/BackgroundBlur.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/ChromaColour.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GlScissorStack.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElement.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElementBoolean.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElementColour.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiElementTextField.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/GuiScreenElementWrapper.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/Config.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/KeybindHelper.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/Position.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/Category.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigAccordionId.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorAccordion.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorBoolean.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorButton.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorColour.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorDraggableList.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorDropdown.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorKeybind.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorSlider.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorStyle.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigEditorText.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/annotations/ConfigOption.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditor.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorAccordion.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorBoolean.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorButton.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorColour.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorDraggableList.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorDropdown.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorKeybind.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorSlider.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorStyle.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiOptionEditorText.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/gui/GuiPositionEditor.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/config/struct/ConfigProcessor.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/GuiElementSlider.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/StringUtils.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/lerp/LerpUtils.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/lerp/LerpingFloat.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/lerp/LerpingInteger.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/render/RenderUtils.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/core/util/render/TextRenderUtils.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/dungeons/Classes.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/dungeons/DungeonHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/dungeons/DungeonPlayer.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/BossbarHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/CooldownHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/CrystalWaypoints.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/CurrencyHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/HeldItemHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/MapHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/NpcDialogue.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/SlayerHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/TimeHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/WarpHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/mapicons/DwarvenIcons.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/handlers/mapicons/HubIcons.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/EndIslandHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmHouseHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/FarmingIslandHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/IslandHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationCategory.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/LocationHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/Locations.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/MinesHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/location/ParkIslandHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/GuiChestAccessor.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinEntityArrow.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinGuiIngameForge.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinItemStack.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinNetHandlerPlayClient.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/mixins/MixinRenderItem.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/DungeonOverlay.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/GenericOverlays.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/MiningHud.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/OverlayHud.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/overlay/RPGHud.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/playerstats/ActionBarParsing.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/seasons/Season.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/seasons/SeasonDateHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/textures/TextureObject.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/textures/Textures.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/tracker/TrackerFileLoader.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/tracker/TrackerHandler.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/tracker/TrackerObject.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/utils/ComponentBuilder.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/utils/SpecialColour.java delete mode 100644 src/main/java/com/thatgravyboat/skyblockhud_2/utils/Utils.java (limited to 'src/main/java') diff --git a/src/main/java/at/lorenz/mod/LorenzMod.java b/src/main/java/at/lorenz/mod/LorenzMod.java index 20bf05fb8..c9a8486db 100644 --- a/src/main/java/at/lorenz/mod/LorenzMod.java +++ b/src/main/java/at/lorenz/mod/LorenzMod.java @@ -15,7 +15,7 @@ import at.lorenz.mod.misc.*; import at.lorenz.mod.test.LorenzTest; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.thatgravyboat.skyblockhud_2.commands.Commands; +import com.thatgravyboat.amod.commands.Commands; import java.io.*; import java.nio.charset.StandardCharsets; import net.minecraft.client.Minecraft; @@ -33,13 +33,9 @@ public class LorenzMod { public static final String MODID = "lorenzmod"; public static final String VERSION = "0.6"; - // public static SBHConfig config; //TODO delete - public static Features feature; private File configFile; - // private static final Set SKYBLOCK_IN_ALL_LANGUAGES = Sets.newHashSet("SKYBLOCK", "\u7A7A\u5C9B\u751F\u5B58"); - private final Gson gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create(); public static File configDirectory; @@ -74,35 +70,6 @@ public class LorenzMod { MinecraftForge.EVENT_BUS.register(new LorenzTest()); MinecraftForge.EVENT_BUS.register(new ButtonOnPause()); - // MinecraftForge.EVENT_BUS.register(new LeaderboardGetter()); - // MinecraftForge.EVENT_BUS.register(new SeasonDateHandler()); - // MinecraftForge.EVENT_BUS.register(new LocationHandler()); - // MinecraftForge.EVENT_BUS.register(new IslandHandler()); - // MinecraftForge.EVENT_BUS.register(new TimeHandler()); - // MinecraftForge.EVENT_BUS.register(new CurrencyHandler()); - // MinecraftForge.EVENT_BUS.register(new SlayerHandler()); - // MinecraftForge.EVENT_BUS.register(new DungeonHandler()); - // MinecraftForge.EVENT_BUS.register(new MinesHandler()); - // MinecraftForge.EVENT_BUS.register(new FarmingIslandHandler()); - // - // MinecraftForge.EVENT_BUS.register(new TrackerHandler()); - // MinecraftForge.EVENT_BUS.register(new KillTracking()); - // - // MinecraftForge.EVENT_BUS.register(new HeldItemHandler()); - // - // ClientRegistry.registerKeyBinding(KeyBindings.map); - // - // MinecraftForge.EVENT_BUS.register(new ComponentHandler()); - // MinecraftForge.EVENT_BUS.register(new ActionBarParsing()); - // MinecraftForge.EVENT_BUS.register(new CrystalWaypoints()); - // MinecraftForge.EVENT_BUS.register(new FarmHouseHandler()); - // MinecraftForge.EVENT_BUS.register(new WarpHandler()); - // MinecraftForge.EVENT_BUS.register(new CooldownHandler()); - - // - // ((IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager()).registerReloadListener(new NpcDialogue()); - // ((IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager()).registerReloadListener(new Textures()); - // configDirectory = new File("mods/LorenzMod/config"); try { //noinspection ResultOfMethodCallIgnored @@ -135,74 +102,6 @@ public class LorenzMod { } catch (IOException ignored) {} } - // @EventHandler - // public void postInit(FMLPostInitializationEvent event) { - // MinecraftForge.EVENT_BUS.register(new OverlayHud()); - // MinecraftForge.EVENT_BUS.register(new RPGHud()); - // MinecraftForge.EVENT_BUS.register(new DungeonOverlay()); - // MinecraftForge.EVENT_BUS.register(new BossbarHandler()); - // MinecraftForge.EVENT_BUS.register(new MapHandler()); - // MinecraftForge.EVENT_BUS.register(new MiningHud()); - // MinecraftForge.EVENT_BUS.register(new NpcDialogue()); - // } - - // @EventHandler - // public void loadComplete(FMLLoadCompleteEvent event) { - // TrackerFileLoader.loadTrackersFile(); - // - // if (TrackerFileLoader.loadTrackerStatsFile()) { - // TrackerFileLoader.saveTrackerStatsFile(); - // } - // } - - // @SubscribeEvent - // public void onLeaveServer(FMLNetworkEvent.ClientDisconnectionFromServerEvent event) { - // TrackerFileLoader.saveTrackerStatsFile(); - // } - - public static boolean hasSkyblockScoreboard() { - // Minecraft mc = Minecraft.getMinecraft(); - // - // if (mc != null && mc.theWorld != null) { - // Scoreboard scoreboard = mc.theWorld.getScoreboard(); - // ScoreObjective sidebarObjective = scoreboard.getObjectiveInDisplaySlot(1); - // if (sidebarObjective != null) { - // String objectiveName = sidebarObjective.getDisplayName().replaceAll("(?i)\\u00A7.", ""); - // for (String skyblock : SKYBLOCK_IN_ALL_LANGUAGES) { - // if (objectiveName.startsWith(skyblock)) { - // return true; - // } - // } - // } - // } - - return false; - } - - // @SubscribeEvent - // public void onTooltip(ItemTooltipEvent event) { - // if (event.itemStack != null && Keyboard.isKeyDown(Keyboard.KEY_BACKSLASH)) { - // try { - // StringSelection clipboard = new StringSelection(event.itemStack.serializeNBT().toString()); - // Toolkit.getDefaultToolkit().getSystemClipboard().setContents(clipboard, clipboard); - // } catch (Exception ignored) {} - // } - // } - - // @SubscribeEvent(priority = EventPriority.HIGHEST) - // public void onStatusBar(ClientChatReceivedEvent event) { - // String message = Utils.removeColor(event.message.getUnformattedText()).toLowerCase().trim(); - // - // if (message.startsWith("your profile was changed to:")) { - // String stripped = message.replace("your profile was changed to:", "").replace("(co-op)", "").trim(); - // MinecraftForge.EVENT_BUS.post(new ProfileSwitchedEvent(stripped)); - // } - // if (message.startsWith("you are playing on profile:")) { - // String stripped = message.replace("you are playing on profile:", "").replace("(co-op)", "").trim(); - // MinecraftForge.EVENT_BUS.post(new ProfileJoinedEvent(stripped)); - // } - // } - public static GuiScreen screenToOpen = null; private static int screenTicks = 0; diff --git a/src/main/java/at/lorenz/mod/config/Features.java b/src/main/java/at/lorenz/mod/config/Features.java index 917ab3483..9cb5d9450 100644 --- a/src/main/java/at/lorenz/mod/config/Features.java +++ b/src/main/java/at/lorenz/mod/config/Features.java @@ -2,18 +2,18 @@ package at.lorenz.mod.config; import at.lorenz.mod.LorenzMod; import com.google.gson.annotations.Expose; -import com.thatgravyboat.skyblockhud_2.config.SBHConfigEditor; -import com.thatgravyboat.skyblockhud_2.core.GuiElement; -import com.thatgravyboat.skyblockhud_2.core.GuiScreenElementWrapper; -import com.thatgravyboat.skyblockhud_2.core.config.Position; -import com.thatgravyboat.skyblockhud_2.core.config.annotations.*; -import com.thatgravyboat.skyblockhud_2.core.config.gui.GuiPositionEditor; +import com.thatgravyboat.amod.config.ConfigEditor; +import com.thatgravyboat.amod.core.GuiElement; +import com.thatgravyboat.amod.core.GuiScreenElementWrapper; +import com.thatgravyboat.amod.core.config.Position; +import com.thatgravyboat.amod.core.config.annotations.*; +import com.thatgravyboat.amod.core.config.gui.GuiPositionEditor; import net.minecraft.client.Minecraft; public class Features { private void editOverlay(String activeConfig, int width, int height, Position position) { - Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {}, () -> {}, () -> LorenzMod.screenToOpen = new GuiScreenElementWrapper(new SBHConfigEditor(LorenzMod.feature, activeConfig)))); + Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {}, () -> {}, () -> LorenzMod.screenToOpen = new GuiScreenElementWrapper(new ConfigEditor(LorenzMod.feature, activeConfig)))); } public void executeRunnable(String runnableId) { @@ -21,8 +21,8 @@ public class Features { if (Minecraft.getMinecraft().currentScreen instanceof GuiScreenElementWrapper) { GuiScreenElementWrapper wrapper = (GuiScreenElementWrapper) Minecraft.getMinecraft().currentScreen; GuiElement element = wrapper.element; - if (element instanceof SBHConfigEditor) { - activeConfigCategory = ((SBHConfigEditor) element).getSelectedCategoryName(); + if (element instanceof ConfigEditor) { + activeConfigCategory = ((ConfigEditor) element).getSelectedCategoryName(); } } diff --git a/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt b/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt index c15ce4a44..735f1db99 100644 --- a/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt +++ b/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt @@ -2,8 +2,8 @@ package at.lorenz.mod.misc import at.lorenz.mod.LorenzMod import at.lorenz.mod.utils.LorenzUtils -import com.thatgravyboat.skyblockhud_2.config.SBHConfigEditor -import com.thatgravyboat.skyblockhud_2.core.GuiScreenElementWrapper +import com.thatgravyboat.amod.config.ConfigEditor +import com.thatgravyboat.amod.core.GuiScreenElementWrapper import net.minecraft.client.gui.GuiButton import net.minecraft.client.gui.GuiIngameMenu import net.minecraftforge.client.event.GuiScreenEvent @@ -17,7 +17,11 @@ class ButtonOnPause { if (!LorenzUtils.isOnHypixel) return if (LorenzMod.feature.misc.configButtonOnPause && event.gui is GuiIngameMenu && event.button.id == buttonId) { - LorenzMod.screenToOpen = GuiScreenElementWrapper(SBHConfigEditor(LorenzMod.feature)) + LorenzMod.screenToOpen = GuiScreenElementWrapper( + ConfigEditor( + LorenzMod.feature + ) + ) } } diff --git a/src/main/java/at/lorenz/mod/utils/GuiRender.kt b/src/main/java/at/lorenz/mod/utils/GuiRender.kt index f32b9bdf2..c16cab56f 100644 --- a/src/main/java/at/lorenz/mod/utils/GuiRender.kt +++ b/src/main/java/at/lorenz/mod/utils/GuiRender.kt @@ -1,7 +1,7 @@ package at.lorenz.mod.utils import at.lorenz.mod.utils.LorenzUtils.removeColorCodes -import com.thatgravyboat.skyblockhud_2.core.config.Position +import com.thatgravyboat.amod.core.config.Position import net.minecraft.client.Minecraft import net.minecraft.client.gui.ScaledResolution import net.minecraft.client.renderer.GlStateManager diff --git a/src/main/java/com/thatgravyboat/amod/GuiTextures.java b/src/main/java/com/thatgravyboat/amod/GuiTextures.java new file mode 100644 index 000000000..605fc5c00 --- /dev/null +++ b/src/main/java/com/thatgravyboat/amod/GuiTextures.java @@ -0,0 +1,32 @@ +package com.thatgravyboat.amod; + +import net.minecraft.util.ResourceLocation; + +public class GuiTextures { + + private GuiTextures() {} + + public static final ResourceLocation DISCORD = new ResourceLocation("lorenzmod:discord.png"); + + public static final ResourceLocation button_tex = new ResourceLocation("lorenzmod:button.png"); + + public static final ResourceLocation button_white = new ResourceLocation("lorenzmod:button_white.png"); + + public static final ResourceLocation BAR = new ResourceLocation("lorenzmod:core/bar.png"); + public static final ResourceLocation OFF = new ResourceLocation("lorenzmod:core/toggle_off.png"); + public static final ResourceLocation ONE = new ResourceLocation("lorenzmod:core/toggle_1.png"); + public static final ResourceLocation TWO = new ResourceLocation("lorenzmod:core/toggle_2.png"); + public static final ResourceLocation THREE = new ResourceLocation("lorenzmod:core/toggle_3.png"); + public static final ResourceLocation ON = new ResourceLocation("lorenzmod:core/toggle_on.png"); + public static final ResourceLocation DELETE = new ResourceLocation("lorenzmod:core/delete.png"); + + public static final ResourceLocation slider_off_cap = new ResourceLocation("lorenzmod:core/slider/slider_off_cap.png"); + public static final ResourceLocation slider_off_notch = new ResourceLocation("lorenzmod:core/slider/slider_off_notch.png"); + public static final ResourceLocation slider_off_segment = new ResourceLocation("lorenzmod:core/slider/slider_off_segment.png"); + public static final ResourceLocation slider_on_cap = new ResourceLocation("lorenzmod:core/slider/slider_on_cap.png"); + public static final ResourceLocation slider_on_notch = new ResourceLocation("lorenzmod:core/slider/slider_on_notch.png"); + public static final ResourceLocation slider_on_segment = new ResourceLocation("lorenzmod:core/slider/slider_on_segment.png"); + public static final ResourceLocation slider_button_new = new ResourceLocation("lorenzmod:core/slider/slider_button.png"); + + public static final ResourceLocation mapOverlay = new ResourceLocation("lorenzmod", "maps/map_overlay.png"); +} diff --git a/src/main/java/com/thatgravyboat/amod/commands/Commands.java b/src/main/java/com/thatgravyboat/amod/commands/Commands.java new file mode 100644 index 000000000..97188933a --- /dev/null +++ b/src/main/java/com/thatgravyboat/amod/commands/Commands.java @@ -0,0 +1,31 @@ +package com.thatgravyboat.amod.commands; + +import at.lorenz.mod.LorenzMod; +import com.thatgravyboat.amod.config.ConfigEditor; +import com.thatgravyboat.amod.core.GuiScreenElementWrapper; +import net.minecraft.command.ICommandSender; +import net.minecraftforge.client.ClientCommandHandler; +import org.apache.commons.lang3.StringUtils; + +public class Commands { + + private static final boolean devMode = false; + + private static final SimpleCommand.ProcessCommandRunnable settingsRunnable = new SimpleCommand.ProcessCommandRunnable() { + public void processCommand(ICommandSender sender, String[] args) { + if (args.length > 0) { + LorenzMod.screenToOpen = new GuiScreenElementWrapper(new ConfigEditor(LorenzMod.feature, StringUtils.join(args, " "))); + } else { + LorenzMod.screenToOpen = new GuiScreenElementWrapper(new ConfigEditor(LorenzMod.feature)); + } + } + }; + + private static final SimpleCommand settingsCommand = new SimpleCommand("lm", settingsRunnable); + private static final SimpleCommand settingsCommand2 = new SimpleCommand("lorenzmod", settingsRunnable); + + public static void init() { + ClientCommandHandler.instance.registerCommand(settingsCommand); + ClientCommandHandler.instance.registerCommand(settingsCommand2); + } +} diff --git a/src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java b/src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java new file mode 100644 index 000000000..dc1657976 --- /dev/null +++ b/src/main/java/com/thatgravyboat/amod/commands/SimpleCommand.java @@ -0,0 +1,60 @@ +package com.thatgravyboat.amod.commands; + +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; + +/** + @author Moulberry + **/ +public class SimpleCommand extends CommandBase { + + private final String commandName; + private final ProcessCommandRunnable runnable; + private TabCompleteRunnable tabRunnable; + + public SimpleCommand(String commandName, ProcessCommandRunnable runnable) { + this.commandName = commandName; + this.runnable = runnable; + } + + public SimpleCommand(String commandName, ProcessCommandRunnable runnable, TabCompleteRunnable tabRunnable) { + this.commandName = commandName; + this.runnable = runnable; + this.tabRunnable = tabRunnable; + } + + public abstract static class ProcessCommandRunnable { + + public abstract void processCommand(ICommandSender sender, String[] args); + } + + public abstract static class TabCompleteRunnable { + + public abstract List tabComplete(ICommandSender sender, String[] args, BlockPos pos); + } + + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return true; + } + + public String getCommandName() { + return commandName; + } + + public String getCommandUsage(ICommandSender sender) { + return "/" + commandName; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + runnable.processCommand(sender, args); + } + + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if (tabRunnable != null) return tabRunnable.tabComplete(sender, args, pos); + return null; + } +} diff --git a/src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java b/src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java new file mode 100644 index 000000000..1c22fbbe8 --- /dev/null +++ b/src/main/java/com/thatgravyboat/amod/config/ConfigEditor.java @@ -0,0 +1,602 @@ +package com.thatgravyboat.amod.config; + +import static com.thatgravyboat.amod.GuiTextures.DISCORD; + +import at.lorenz.mod.LorenzMod; +import at.lorenz.mod.config.Features; +import com.google.common.collect.Lists; +import com.thatgravyboat.amod.core.GlScissorStack; +import com.thatgravyboat.amod.core.GuiElement; +import com.thatgravyboat.amod.core.config.gui.GuiOptionEditor; +import com.thatgravyboat.amod.core.config.gui.GuiOptionEditorAccordion; +import com.thatgravyboat.amod.core.config.struct.ConfigProcessor; +import com.thatgravyboat.amod.core.util.lerp.LerpUtils; +import com.thatgravyboat.amod.core.util.lerp.LerpingInteger; +import com.thatgravyboat.amod.core.util.render.RenderUtils; +import com.thatgravyboat.amod.core.util.render.TextRenderUtils; +import java.awt.*; +import java.net.URI; +import java.util.*; +import java.util.List; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +public class ConfigEditor extends GuiElement { + + private static final ResourceLocation[] socialsIco = new ResourceLocation[] { DISCORD }; + private static final String[] socialsLink = new String[] { "https://discord.gg/NcvkPDBA6Y" }; + + private final long openedMillis; + + private String selectedCategory = null; + + private final LerpingInteger optionsScroll = new LerpingInteger(0, 150); + private final LerpingInteger categoryScroll = new LerpingInteger(0, 150); + + private final LinkedHashMap processedConfig; + private final TreeMap> searchOptionMap = new TreeMap<>(); + private final HashMap categoryForOption = new HashMap<>(); + + public ConfigEditor(Features config) { + this(config, null); + } + + public ConfigEditor(Features config, String categoryOpen) { + this.openedMillis = System.currentTimeMillis(); + this.processedConfig = ConfigProcessor.create(config); + + for (ConfigProcessor.ProcessedCategory category : processedConfig.values()) { + for (ConfigProcessor.ProcessedOption option : category.options.values()) { + categoryForOption.put(option, category); + } + } + + if (categoryOpen != null) { + for (Map.Entry category : processedConfig.entrySet()) { + if (category.getValue().name.equalsIgnoreCase(categoryOpen)) { + selectedCategory = category.getKey(); + break; + } + } + if (selectedCategory == null) { + for (Map.Entry category : processedConfig.entrySet()) { + if (category.getValue().name.toLowerCase().startsWith(categoryOpen.toLowerCase())) { + selectedCategory = category.getKey(); + break; + } + } + } + if (selectedCategory == null) { + for (Map.Entry category : processedConfig.entrySet()) { + if (category.getValue().name.toLowerCase().contains(categoryOpen.toLowerCase())) { + selectedCategory = category.getKey(); + break; + } + } + } + } + } + + private LinkedHashMap getCurrentConfigEditing() { + return new LinkedHashMap<>(processedConfig); + } + + private LinkedHashMap getOptionsInCategory(ConfigProcessor.ProcessedCategory cat) { + return new LinkedHashMap<>(cat.options); + } + + public String getSelectedCategory() { + return selectedCategory; + } + + public String getSelectedCategoryName() { + return processedConfig.get(selectedCategory).name; + } + + private void setSelectedCategory(String category) { + selectedCategory = category; + optionsScroll.setValue(0); + } + + public void render() { + optionsScroll.tick(); + categoryScroll.tick(); + + List tooltipToDisplay = null; + + long currentTime = System.currentTimeMillis(); + long delta = currentTime - openedMillis; + + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + int width = scaledResolution.getScaledWidth(); + int height = scaledResolution.getScaledHeight(); + int mouseX = Mouse.getX() * width / Minecraft.getMinecraft().displayWidth; + int mouseY = height - Mouse.getY() * height / Minecraft.getMinecraft().displayHeight - 1; + + float opacityFactor = LerpUtils.sigmoidZeroOne(delta / 500f); + RenderUtils.drawGradientRect(0, 0, 0, width, height, (int) (0x80 * opacityFactor) << 24 | 0x101010, (int) (0x90 * opacityFactor) << 24 | 0x101010); + + int xSize = Math.min(scaledResolution.getScaledWidth() - 100 / scaledResolution.getScaleFactor(), 500); + int ySize = Math.min(scaledResolution.getScaledHeight() - 100 / scaledResolution.getScaleFactor(), 400); + + int x = (scaledResolution.getScaledWidth() - xSize) / 2; + int y = (scaledResolution.getScaledHeight() - ySize) / 2; + + int adjScaleFactor = Math.max(2, scaledResolution.getScaleFactor()); + + int openingXSize = xSize; + int openingYSize = ySize; + if (delta < 150) { + openingXSize = (int) (delta * xSize / 150); + openingYSize = 5; + } else if (delta < 300) { + openingYSize = 5 + (int) (delta - 150) * (ySize - 5) / 150; + } + RenderUtils.drawFloatingRectDark((scaledResolution.getScaledWidth() - openingXSize) / 2, (scaledResolution.getScaledHeight() - openingYSize) / 2, openingXSize, openingYSize); + GlScissorStack.clear(); + GlScissorStack.push((scaledResolution.getScaledWidth() - openingXSize) / 2, (scaledResolution.getScaledHeight() - openingYSize) / 2, (scaledResolution.getScaledWidth() + openingXSize) / 2, (scaledResolution.getScaledHeight() + openingYSize) / 2, scaledResolution); + + RenderUtils.drawFloatingRectDark(x + 5, y + 5, xSize - 10, 20, false); + + FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; + TextRenderUtils.drawStringCenteredScaledMaxWidth("LorenzMod " + LorenzMod.VERSION + " by " + EnumChatFormatting.RED + "hannibal2" + EnumChatFormatting.RESET + ", config by " + EnumChatFormatting.DARK_PURPLE + "Moulberry", fr, x + xSize / 2f, y + 15, false, 200, 0xa0a0a0); + + RenderUtils.drawFloatingRectDark(x + 4, y + 49 - 20, 140, ySize - 54 + 20, false); + + int innerPadding = 20 / adjScaleFactor; + int innerLeft = x + 4 + innerPadding; + int innerRight = x + 144 - innerPadding; + int innerTop = y + 49 + innerPadding; + int innerBottom = y + ySize - 5 - innerPadding; + Gui.drawRect(innerLeft, innerTop, innerLeft + 1, innerBottom, 0xff08080E); //Left + Gui.drawRect(innerLeft + 1, innerTop, innerRight, innerTop + 1, 0xff08080E); //Top + Gui.drawRect(innerRight - 1, innerTop + 1, innerRight, innerBottom, 0xff28282E); //Right + Gui.drawRect(innerLeft + 1, innerBottom - 1, innerRight - 1, innerBottom, 0xff28282E); //Bottom + Gui.drawRect(innerLeft + 1, innerTop + 1, innerRight - 1, innerBottom - 1, 0x6008080E); //Middle + + GlScissorStack.push(0, innerTop + 1, scaledResolution.getScaledWidth(), innerBottom - 1, scaledResolution); + + float catBarSize = 1; + int catY = -categoryScroll.getValue(); + + LinkedHashMap currentConfigEditing = getCurrentConfigEditing(); + for (Map.Entry entry : currentConfigEditing.entrySet()) { + String selectedCategory = getSelectedCategory(); + if (selectedCategory == null || !currentConfigEditing.containsKey(selectedCategory)) { + setSelectedCategory(entry.getKey()); + } + String catName = entry.getValue().name; + if (entry.getKey().equals(getSelectedCategory())) { + catName = EnumChatFormatting.DARK_AQUA.toString() + EnumChatFormatting.UNDERLINE + catName; + } else { + catName = EnumChatFormatting.GRAY + catName; + } + TextRenderUtils.drawStringCenteredScaledMaxWidth(catName, fr, x + 75, y + 70 + catY, false, 100, -1); + catY += 15; + if (catY > 0) { + catBarSize = LerpUtils.clampZeroOne((float) (innerBottom - innerTop - 2) / (catY + 5 + categoryScroll.getValue())); + } + } + + float catBarStart = categoryScroll.getValue() / (float) (catY + categoryScroll.getValue()); + float catBarEnd = catBarStart + catBarSize; + if (catBarEnd > 1) { + catBarEnd = 1; + if (categoryScroll.getTarget() / (float) (catY + categoryScroll.getValue()) + catBarSize < 1) { + int target = optionsScroll.getTarget(); + categoryScroll.setValue((int) Math.ceil((catY + 5 + categoryScroll.getValue()) - catBarSize * (catY + 5 + categoryScroll.getValue()))); + categoryScroll.setTarget(target); + } else { + categoryScroll.setValue((int) Math.ceil((catY + 5 + categoryScroll.getValue()) - catBarSize * (catY + 5 + categoryScroll.getValue()))); + } + } + int catDist = innerBottom - innerTop - 12; + Gui.drawRect(innerLeft + 2, innerTop + 5, innerLeft + 7, innerBottom - 5, 0xff101010); + Gui.drawRect(innerLeft + 3, innerTop + 6 + (int) (catDist * catBarStart), innerLeft + 6, innerTop + 6 + (int) (catDist * catBarEnd), 0xff303030); + + GlScissorStack.pop(scaledResolution); + + TextRenderUtils.drawStringCenteredScaledMaxWidth("Categories", fr, x + 75, y + 44, false, 120, 0xa368ef); + + RenderUtils.drawFloatingRectDark(x + 149, y + 29, xSize - 154, ySize - 34, false); + + innerLeft = x + 149 + innerPadding; + innerRight = x + xSize - 5 - innerPadding; + innerBottom = y + ySize - 5 - innerPadding; + + GlStateManager.color(1, 1, 1, 1); + int rightStuffLen = 20; + + if (getSelectedCategory() != null && currentConfigEditing.containsKey(getSelectedCategory())) { + ConfigProcessor.ProcessedCategory cat = currentConfigEditing.get(getSelectedCategory()); + + TextRenderUtils.drawStringScaledMaxWidth(cat.desc, fr, innerLeft + 5, y + 40, true, innerRight - innerLeft - rightStuffLen - 10, 0xb0b0b0); + } + + Gui.drawRect(innerLeft, innerTop, innerLeft + 1, innerBottom, 0xff08080E); //Left + Gui.drawRect(innerLeft + 1, innerTop, innerRight, innerTop + 1, 0xff08080E); //Top + Gui.drawRect(innerRight - 1, innerTop + 1, innerRight, innerBottom, 0xff303036); //Right + Gui.drawRect(innerLeft + 1, innerBottom - 1, innerRight - 1, innerBottom, 0xff303036); //Bottom + Gui.drawRect(innerLeft + 1, innerTop + 1, innerRight - 1, innerBottom - 1, 0x6008080E); //Middle + + GlScissorStack.push(innerLeft + 1, innerTop + 1, innerRight - 1, innerBottom - 1, scaledResolution); + float barSize = 1; + int optionY = -optionsScroll.getValue(); + if (getSelectedCategory() != null && currentConfigEditing.containsKey(getSelectedCategory())) { + ConfigProcessor.ProcessedCategory cat = currentConfigEditing.get(getSelectedCategory()); + int optionWidthDefault = innerRight - innerLeft - 20; + GlStateManager.enableDepth(); + HashMap activeAccordions = new HashMap<>(); + for (ConfigProcessor.ProcessedOption option : getOptionsInCategory(cat).values()) { + int optionWidth = optionWidthDefault; + if (option.accordionId >= 0) { + if (!activeAccordions.containsKey(option.accordionId)) { + continue; + } + int accordionDepth = activeAccordions.get(option.accordionId); + optionWidth = optionWidthDefault - (2 * innerPadding) * (accordionDepth + 1); + } + + GuiOptionEditor editor = option.editor; + if (editor == null) { + continue; + } + if (editor instanceof GuiOptionEditorAccordion) { + GuiOptionEditorAccordion accordion = (GuiOptionEditorAccordion) editor; + if (accordion.getToggled()) { + int accordionDepth = 0; + if (option.accordionId >= 0) { + accordionDepth = activeAccordions.get(option.accordionId) + 1; + } + activeAccordions.put(accordion.getAccordionId(), accordionDepth); + } + } + int optionHeight = editor.getHeight(); + if (innerTop + 5 + optionY + optionHeight > innerTop + 1 && innerTop + 5 + optionY < innerBottom - 1) { + editor.render((innerLeft + innerRight - optionWidth) / 2 - 5, innerTop + 5 + optionY, optionWidth); + } + optionY += optionHeight + 5; + } + GlStateManager.disableDepth(); + if (optionY > 0) { + barSize = LerpUtils.clampZeroOne((float) (innerBottom - innerTop - 2) / (optionY + 5 + optionsScroll.getValue())); + } + } + + GlScissorStack.pop(scaledResolution); + + GL11.glDisable(GL11.GL_SCISSOR_TEST); + if (getSelectedCategory() != null && currentConfigEditing.containsKey(getSelectedCategory())) { + int optionYOverlay = -optionsScroll.getValue(); + ConfigProcessor.ProcessedCategory cat = currentConfigEditing.get(getSelectedCategory()); + int optionWidthDefault = innerRight - innerLeft - 20; + + GlStateManager.translate(0, 0, 10); + GlStateManager.enableDepth(); + HashMap activeAccordions = new HashMap<>(); + for (ConfigProcessor.ProcessedOption option : getOptionsInCategory(cat).values()) { + int optionWidth = optionWidthDefault; + if (option.accordionId >= 0) { + if (!activeAccordions.containsKey(option.accordionId)) { + continue; + } + int accordionDepth = activeAccordions.get(option.accordionId); + optionWidth = optionWidthDefault - (2 * innerPadding) * (accordionDepth + 1); + } + + GuiOptionEditor editor = option.editor; + if (editor == null) { + continue; + } + if (editor instanceof GuiOptionEditorAccordion) { + GuiOptionEditorAccordion accordion = (GuiOptionEditorAccordion) editor; + if (accordion.getToggled()) { + int accordionDepth = 0; + if (option.accordionId >= 0) { + accordionDepth = activeAccordions.get(option.accordionId) + 1; + } + activeAccordions.put(accordion.getAccordionId(), accordionDepth); + } + } + int optionHeight = editor.getHeight(); + if (innerTop + 5 + optionYOverlay + optionHeight > innerTop + 1 && innerTop + 5 + optionYOverlay < innerBottom - 1) { + editor.renderOverlay((innerLeft + innerRight - optionWidth) / 2 - 5, innerTop + 5 + optionYOverlay, optionWidth); + } + optionYOverlay += optionHeight + 5; + } + GlStateManager.disableDepth(); + GlStateManager.translate(0, 0, -10); + } + GL11.glEnable(GL11.GL_SCISSOR_TEST); + + float barStart = optionsScroll.getValue() / (float) (optionY + optionsScroll.getValue()); + float barEnd = barStart + barSize; + if (barEnd > 1) { + barEnd = 1; + if (optionsScroll.getTarget() / (float) (optionY + optionsScroll.getValue()) + barSize < 1) { + int target = optionsScroll.getTarget(); + optionsScroll.setValue((int) Math.ceil((optionY + 5 + optionsScroll.getValue()) - barSize * (optionY + 5 + optionsScroll.getValue()))); + optionsScroll.setTarget(target); + } else { + optionsScroll.setValue((int) Math.ceil((optionY + 5 + optionsScroll.getValue()) - barSize * (optionY + 5 + optionsScroll.getValue()))); + } + } + int dist = innerBottom - innerTop - 12; + Gui.drawRect(innerRight - 10, innerTop + 5, innerRight - 5, innerBottom - 5, 0xff101010); + Gui.drawRect(innerRight - 9, innerTop + 6 + (int) (dist * barStart), innerRight - 6, innerTop + 6 + (int) (dist * barEnd), 0xff303030); + + for (int socialIndex = 0; socialIndex < socialsIco.length; socialIndex++) { + Minecraft.getMinecraft().getTextureManager().bindTexture(socialsIco[socialIndex]); + GlStateManager.color(1, 1, 1, 1); + int socialLeft = x + xSize - 23 - 18 * socialIndex; + RenderUtils.drawTexturedRect(socialLeft, y + 7, 16, 16, GL11.GL_LINEAR); + + if (mouseX >= socialLeft && mouseX <= socialLeft + 16 && mouseY >= y + 6 && mouseY <= y + 23) { + tooltipToDisplay = Lists.newArrayList(EnumChatFormatting.YELLOW + "Go to: " + EnumChatFormatting.RESET + socialsLink[socialIndex]); + } + } + + GlScissorStack.clear(); + + if (tooltipToDisplay != null) { + TextRenderUtils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); + } + + GlStateManager.translate(0, 0, -2); + } + + public boolean mouseInput(int mouseX, int mouseY) { + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + int width = scaledResolution.getScaledWidth(); + int height = scaledResolution.getScaledHeight(); + + int xSize = Math.min(width - 100 / scaledResolution.getScaleFactor(), 500); + int ySize = Math.min(height - 100 / scaledResolution.getScaleFactor(), 400); + + int x = (scaledResolution.getScaledWidth() - xSize) / 2; + int y = (scaledResolution.getScaledHeight() - ySize) / 2; + + int adjScaleFactor = Math.max(2, scaledResolution.getScaleFactor()); + + int innerPadding = 20 / adjScaleFactor; + int innerTop = y + 49 + innerPadding; + int innerBottom = y + ySize - 5 - innerPadding; + int innerLeft = x + 149 + innerPadding; + int innerRight = x + xSize - 5 - innerPadding; + + int dWheel = Mouse.getEventDWheel(); + if (mouseY > innerTop && mouseY < innerBottom && dWheel != 0) { + if (dWheel < 0) { + dWheel = -1; + } + if (dWheel > 0) { + dWheel = 1; + } + if (mouseX < innerLeft) { + int newTarget = categoryScroll.getTarget() - dWheel * 30; + if (newTarget < 0) { + newTarget = 0; + } + + float catBarSize = 1; + int catY = -newTarget; + for (Map.Entry entry : getCurrentConfigEditing().entrySet()) { + if (getSelectedCategory() == null) { + setSelectedCategory(entry.getKey()); + } + + catY += 15; + if (catY > 0) { + catBarSize = LerpUtils.clampZeroOne((float) (innerBottom - innerTop - 2) / (catY + 5 + newTarget)); + } + } + + int barMax = (int) Math.floor((catY + 5 + newTarget) - catBarSize * (catY + 5 + newTarget)); + if (newTarget > barMax) { + newTarget = barMax; + } + categoryScroll.resetTimer(); + categoryScroll.setTarget(newTarget); + } else { + int newTarget = optionsScroll.getTarget() - dWheel * 30; + if (newTarget < 0) { + newTarget = 0; + } + + float barSize = 1; + int optionY = -newTarget