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 --- README.md | 10 +- 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 ------------- src/main/resources/assets/lorenzmod/discord.png | Bin 0 -> 6690 bytes 169 files changed, 5154 insertions(+), 10293 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 create mode 100644 src/main/resources/assets/lorenzmod/discord.png diff --git a/README.md b/README.md index d255fe8ad..d1131d9f7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- SBHud: HUD mod for hypixel + Lorenz Mod: Mod for hypixel skyblock

@@ -7,12 +7,6 @@ [![discord badge](https://img.shields.io/discord/516977525906341928?label=discord&color=9089DA&logo=discord&style=for-the-badge)](https://discord.gg/moulberry) [![made with java](https://img.shields.io/badge/Made%20With-Java-orange?style=for-the-badge&logo=java&logocolor=white)](https://www.java.com/) -
-SBHud is a beta mod developed by ThatGravyBoat to add a better HUD to hypixel skyblock. It is in beta so expect bugs. - -This project has been discontinued and is now open source for anyone to fork and work on it but as of right now it wont be worked on by the original developer ThatGravyBoat +Lorenz Mod is a beta mod developed by hannibal2 to add new features to hypixel skyblock. It is in beta so expect bugs. 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 >