From c35f42e4860f3f319896a4581822cb371bf25548 Mon Sep 17 00:00:00 2001 From: janeptrv Date: Thu, 8 Oct 2020 00:58:13 -0400 Subject: [PATCH] Button (mostly) persists between closing and re-opening. does not persist between restarts. also refactored ModuleBase & related out of module --- .../java/pm/j4/petroleum/PetroleumMod.java | 9 +++-- .../pm/j4/petroleum/gui/PModMenuScreen.java | 10 ++++-- .../j4/petroleum/gui/PModuleConfigEntry.java | 2 +- .../gui/PModuleConfigurationWidget.java | 2 +- .../pm/j4/petroleum/gui/PMovableButton.java | 28 ++++++++++++--- .../pm/j4/petroleum/gui/POptionEntry.java | 2 +- .../pm/j4/petroleum/gui/POptionsScreen.java | 2 +- .../pm/j4/petroleum/mixin/ModListMixin.java | 2 +- .../j4/petroleum/modules/ExampleModule.java | 12 ++++--- .../modules/base/option/DummyValue.java | 9 ----- .../modules/bindings/BindingManager.java | 7 ++-- .../pm/j4/petroleum/modules/list/ModList.java | 3 +- .../pm/j4/petroleum/modules/menu/ModMenu.java | 36 ++++++++++++++++++- .../petroleum/modules/splash/SplashText.java | 3 +- .../pm/j4/petroleum/util/config/Config.java | 2 +- .../petroleum/util/config/ConfigHolder.java | 2 +- .../petroleum/util/config/GlobalConfig.java | 6 ++-- .../pm/j4/petroleum/util/data/Category.java | 31 ++++++++++++++++ .../pm/j4/petroleum/util/data/Coordinate.java | 11 ++++++ .../module}/ConfigurationOption.java | 2 +- .../base => util/module}/ModuleBase.java | 9 +++-- .../base => util/module}/StringWritable.java | 2 +- .../module}/option/BooleanValue.java | 4 +-- .../util/module/option/DummyValue.java | 9 +++++ .../module}/option/IntegerValue.java | 4 +-- .../module}/option/KeybindValue.java | 4 +-- .../module}/option/OptionTypeMatcher.java | 4 +-- .../module}/option/StringValue.java | 4 +-- 28 files changed, 167 insertions(+), 54 deletions(-) delete mode 100644 src/main/java/pm/j4/petroleum/modules/base/option/DummyValue.java create mode 100644 src/main/java/pm/j4/petroleum/util/data/Category.java create mode 100644 src/main/java/pm/j4/petroleum/util/data/Coordinate.java rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/ConfigurationOption.java (96%) rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/ModuleBase.java (94%) rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/StringWritable.java (93%) rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/option/BooleanValue.java (86%) create mode 100644 src/main/java/pm/j4/petroleum/util/module/option/DummyValue.java rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/option/IntegerValue.java (87%) rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/option/KeybindValue.java (89%) rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/option/OptionTypeMatcher.java (83%) rename src/main/java/pm/j4/petroleum/{modules/base => util/module}/option/StringValue.java (81%) diff --git a/src/main/java/pm/j4/petroleum/PetroleumMod.java b/src/main/java/pm/j4/petroleum/PetroleumMod.java index 1481139..975e8a6 100644 --- a/src/main/java/pm/j4/petroleum/PetroleumMod.java +++ b/src/main/java/pm/j4/petroleum/PetroleumMod.java @@ -13,7 +13,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.options.KeyBinding; import net.minecraft.server.integrated.IntegratedServer; import pm.j4.petroleum.modules.ExampleModule; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; import pm.j4.petroleum.modules.bindings.BindingManager; import pm.j4.petroleum.modules.list.ModList; import pm.j4.petroleum.modules.menu.ModMenu; @@ -136,13 +136,13 @@ public class PetroleumMod implements ModInitializer { @Override public void onInitialize() { ConfigManager.initConfig(); + //initialize any keybinds, data, etc. + activeMods.forEach(ModuleBase::init); + // always update mod data Optional modContainer = FabricLoader.getInstance().getModContainer("petroleum"); modContainer.ifPresent(container -> modData = container.getMetadata()); - //initialize any keybinds, data, etc. - activeMods.forEach(ModuleBase::init); - Optional conf = ConfigManager.getConfig(); //initialize keybind handler conf.ifPresent(configHolder -> ClientTickEvents.END_CLIENT_TICK.register(client -> { @@ -154,7 +154,6 @@ public class PetroleumMod implements ModInitializer { configHolder.globalConfig.bindings.get(b).activate(client); } } - //System.out.println(getServerAddress()); })); } } diff --git a/src/main/java/pm/j4/petroleum/gui/PModMenuScreen.java b/src/main/java/pm/j4/petroleum/gui/PModMenuScreen.java index 5d1919d..6ce01af 100644 --- a/src/main/java/pm/j4/petroleum/gui/PModMenuScreen.java +++ b/src/main/java/pm/j4/petroleum/gui/PModMenuScreen.java @@ -1,6 +1,7 @@ package pm.j4.petroleum.gui; import com.mojang.blaze3d.systems.RenderSystem; +import java.util.Map; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.Tessellator; @@ -8,8 +9,10 @@ import net.minecraft.client.render.VertexFormats; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.LiteralText; import net.minecraft.text.TranslatableText; -import pm.j4.petroleum.PetroleumMod; +import pm.j4.petroleum.modules.menu.ModMenu; import pm.j4.petroleum.util.config.ConfigManager; +import pm.j4.petroleum.util.data.Category; +import pm.j4.petroleum.util.data.Coordinate; /** * The type P mod menu screen. @@ -31,7 +34,10 @@ public class PModMenuScreen extends Screen { @Override protected void init() { - this.addButton(new PMovableButton(10, 10, "Test", PetroleumMod.getActiveMods())); + Map coordinateMap = ModMenu.getButtons(); + coordinateMap.forEach((category, coord) -> { + this.addButton(new PMovableButton((int)(coord.x * this.width), (int)(coord.y * this.height), category, Category.getByCategory(category), this)); + }); } @Override diff --git a/src/main/java/pm/j4/petroleum/gui/PModuleConfigEntry.java b/src/main/java/pm/j4/petroleum/gui/PModuleConfigEntry.java index cbbd0a3..58dc4f3 100644 --- a/src/main/java/pm/j4/petroleum/gui/PModuleConfigEntry.java +++ b/src/main/java/pm/j4/petroleum/gui/PModuleConfigEntry.java @@ -5,7 +5,7 @@ import net.minecraft.client.gui.widget.EntryListWidget; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import pm.j4.petroleum.modules.base.ConfigurationOption; +import pm.j4.petroleum.util.module.ConfigurationOption; /** * The type P module config entry. diff --git a/src/main/java/pm/j4/petroleum/gui/PModuleConfigurationWidget.java b/src/main/java/pm/j4/petroleum/gui/PModuleConfigurationWidget.java index cd24a72..495da1c 100644 --- a/src/main/java/pm/j4/petroleum/gui/PModuleConfigurationWidget.java +++ b/src/main/java/pm/j4/petroleum/gui/PModuleConfigurationWidget.java @@ -14,7 +14,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Matrix4f; import pm.j4.petroleum.mixin.EntryListWidgetAccessor; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; /** * The type P module configuration widget. diff --git a/src/main/java/pm/j4/petroleum/gui/PMovableButton.java b/src/main/java/pm/j4/petroleum/gui/PMovableButton.java index df07fff..18e3b21 100644 --- a/src/main/java/pm/j4/petroleum/gui/PMovableButton.java +++ b/src/main/java/pm/j4/petroleum/gui/PMovableButton.java @@ -10,9 +10,12 @@ import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormats; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.LiteralText; +import net.minecraft.text.TranslatableText; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Matrix4f; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.modules.menu.ModMenu; +import pm.j4.petroleum.util.data.Coordinate; +import pm.j4.petroleum.util.module.ModuleBase; /** * The type P movable button. @@ -60,6 +63,10 @@ public class PMovableButton extends AbstractButtonWidget { */ private final int padding = 5; + private String category; + + private PModMenuScreen parent; + /** * Instantiates a new P movable button. * @@ -68,8 +75,9 @@ public class PMovableButton extends AbstractButtonWidget { * @param categoryName the category name * @param modules the modules */ - public PMovableButton(int x, int y, String categoryName, List modules) { - super(x, y, 0, 0, new LiteralText(categoryName)); + public PMovableButton(int x, int y, String categoryName, List modules, PModMenuScreen parent) { + super(x, y, 0, 0, new TranslatableText(categoryName)); + this.category = categoryName; int w = MinecraftClient.getInstance().textRenderer.getWidth(categoryName) + 8; int h = MinecraftClient.getInstance().textRenderer.fontHeight + 8; this.width = w; @@ -80,6 +88,7 @@ public class PMovableButton extends AbstractButtonWidget { this.expandedHeight = 0; this.moduleHeight = h; this.modules = modules; + this.parent = parent; } @Override @@ -89,6 +98,11 @@ public class PMovableButton extends AbstractButtonWidget { super.onClick(mouseX, mouseY); } + private void onExtraClick(double mouseX, double mouseY) { + System.out.println("extra click"); + //TODO module things + } + @Override public void onRelease(double mouseX, double mouseY) { int mx = (int) mouseX; @@ -103,6 +117,8 @@ public class PMovableButton extends AbstractButtonWidget { protected void onDrag(double mouseX, double mouseY, double deltaX, double deltaY) { this.x += (int) deltaX; this.y += (int) deltaY; + // i really hate to do it but nowhere else will it properly save + ModMenu.updateCoord(this.category, new Coordinate((this.x / (double)parent.width), (this.y / (double)parent.height))); } // fuck click sounds @@ -111,7 +127,11 @@ public class PMovableButton extends AbstractButtonWidget { if (this.active && this.visible) { if (this.isValidClickButton(button)) { boolean bl = this.clicked(mouseX, mouseY); - if (bl) { + if (bl && mouseY > this.y + this.collapsedHeight && mouseY < this.y + this.expandedHeight) { + this.onExtraClick(mouseX, mouseY); + return true; + } + else if (bl) { this.onClick(mouseX, mouseY); return true; } diff --git a/src/main/java/pm/j4/petroleum/gui/POptionEntry.java b/src/main/java/pm/j4/petroleum/gui/POptionEntry.java index ad5fdb7..4132848 100644 --- a/src/main/java/pm/j4/petroleum/gui/POptionEntry.java +++ b/src/main/java/pm/j4/petroleum/gui/POptionEntry.java @@ -9,7 +9,7 @@ import net.minecraft.text.StringVisitable; import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; import net.minecraft.util.Language; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; /** * The type P option entry. diff --git a/src/main/java/pm/j4/petroleum/gui/POptionsScreen.java b/src/main/java/pm/j4/petroleum/gui/POptionsScreen.java index 1f3ee35..a7d1467 100644 --- a/src/main/java/pm/j4/petroleum/gui/POptionsScreen.java +++ b/src/main/java/pm/j4/petroleum/gui/POptionsScreen.java @@ -19,7 +19,7 @@ import net.minecraft.text.StringVisitable; import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; import pm.j4.petroleum.PetroleumMod; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; import pm.j4.petroleum.util.config.ConfigManager; /** diff --git a/src/main/java/pm/j4/petroleum/mixin/ModListMixin.java b/src/main/java/pm/j4/petroleum/mixin/ModListMixin.java index 06aabac..1d662af 100644 --- a/src/main/java/pm/j4/petroleum/mixin/ModListMixin.java +++ b/src/main/java/pm/j4/petroleum/mixin/ModListMixin.java @@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; import pm.j4.petroleum.modules.list.ModList; import pm.j4.petroleum.util.config.ConfigHolder; import pm.j4.petroleum.util.config.ConfigManager; diff --git a/src/main/java/pm/j4/petroleum/modules/ExampleModule.java b/src/main/java/pm/j4/petroleum/modules/ExampleModule.java index e3ace8e..ead9f11 100644 --- a/src/main/java/pm/j4/petroleum/modules/ExampleModule.java +++ b/src/main/java/pm/j4/petroleum/modules/ExampleModule.java @@ -3,9 +3,9 @@ package pm.j4.petroleum.modules; import java.util.HashMap; import java.util.Map; import net.minecraft.client.MinecraftClient; -import pm.j4.petroleum.modules.base.ConfigurationOption; -import pm.j4.petroleum.modules.base.ModuleBase; -import pm.j4.petroleum.modules.base.option.BooleanValue; +import pm.j4.petroleum.util.module.ConfigurationOption; +import pm.j4.petroleum.util.module.ModuleBase; +import pm.j4.petroleum.util.module.option.BooleanValue; /** * The type Example module. @@ -15,7 +15,11 @@ public class ExampleModule extends ModuleBase { * example mod */ public ExampleModule() { - super("petroleum.example", true, false, true); + super("petroleum.example", + "petroleum.misc", + true, + false, + true); } @Override diff --git a/src/main/java/pm/j4/petroleum/modules/base/option/DummyValue.java b/src/main/java/pm/j4/petroleum/modules/base/option/DummyValue.java deleted file mode 100644 index fd26c81..0000000 --- a/src/main/java/pm/j4/petroleum/modules/base/option/DummyValue.java +++ /dev/null @@ -1,9 +0,0 @@ -package pm.j4.petroleum.modules.base.option; - -import pm.j4.petroleum.modules.base.StringWritable; - -/** - * The type Dummy value. - */ -public class DummyValue extends StringWritable { -} diff --git a/src/main/java/pm/j4/petroleum/modules/bindings/BindingManager.java b/src/main/java/pm/j4/petroleum/modules/bindings/BindingManager.java index 3dbc6bc..5d726c6 100644 --- a/src/main/java/pm/j4/petroleum/modules/bindings/BindingManager.java +++ b/src/main/java/pm/j4/petroleum/modules/bindings/BindingManager.java @@ -9,9 +9,9 @@ import net.minecraft.text.TranslatableText; import org.lwjgl.glfw.GLFW; import pm.j4.petroleum.PetroleumMod; import pm.j4.petroleum.gui.PModuleConfigEntry; -import pm.j4.petroleum.modules.base.ConfigurationOption; -import pm.j4.petroleum.modules.base.ModuleBase; -import pm.j4.petroleum.modules.base.option.KeybindValue; +import pm.j4.petroleum.util.module.ConfigurationOption; +import pm.j4.petroleum.util.module.ModuleBase; +import pm.j4.petroleum.util.module.option.KeybindValue; import pm.j4.petroleum.util.config.ConfigManager; import pm.j4.petroleum.util.config.GlobalConfig; @@ -25,6 +25,7 @@ public class BindingManager extends ModuleBase { */ public BindingManager() { super("petroleum.bindings", + "petroleum.misc", false, true, true); diff --git a/src/main/java/pm/j4/petroleum/modules/list/ModList.java b/src/main/java/pm/j4/petroleum/modules/list/ModList.java index 44f4573..a6933d3 100644 --- a/src/main/java/pm/j4/petroleum/modules/list/ModList.java +++ b/src/main/java/pm/j4/petroleum/modules/list/ModList.java @@ -3,7 +3,7 @@ package pm.j4.petroleum.modules.list; import java.util.ArrayList; import java.util.List; import pm.j4.petroleum.PetroleumMod; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; /** * The type Mod list. @@ -14,6 +14,7 @@ public class ModList extends ModuleBase { */ public ModList() { super("petroleum.modlist", + "petroleum.misc", true, true, true); diff --git a/src/main/java/pm/j4/petroleum/modules/menu/ModMenu.java b/src/main/java/pm/j4/petroleum/modules/menu/ModMenu.java index fd87943..cc444ce 100644 --- a/src/main/java/pm/j4/petroleum/modules/menu/ModMenu.java +++ b/src/main/java/pm/j4/petroleum/modules/menu/ModMenu.java @@ -1,25 +1,55 @@ package pm.j4.petroleum.modules.menu; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import net.minecraft.client.MinecraftClient; import pm.j4.petroleum.gui.PModMenuScreen; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.data.Category; +import pm.j4.petroleum.util.module.ModuleBase; import pm.j4.petroleum.util.config.ConfigManager; +import pm.j4.petroleum.util.data.Coordinate; /** * The type Mod menu. */ public class ModMenu extends ModuleBase { + private static Map coordinates = new HashMap<>(); + /** * Instantiates a new Mod menu. */ public ModMenu() { super("petroleum.modmenu", + "petroleum.misc", true, true, true); } + @Override + public void init() { + Map> categories = Category.getCategoryMap(); + final double[] h = {.1}; + categories.forEach((category, moduleList) -> { + System.out.println("category: " + category); + Coordinate coord = new Coordinate(.1, h[0]); + h[0] += .01; + coordinates.put(category, coord); + }); + } + + public static void updateCoord(String b, Coordinate c) { + if (coordinates.containsKey(b)) { + coordinates.replace(b, c); + } + else { + System.out.println("issue! no matching coordinate found"); + System.out.println(b); + } + } + @Override public void activate(MinecraftClient client) { this.toggle(); @@ -29,4 +59,8 @@ public class ModMenu extends ModuleBase { client.openScreen(null); } } + + public static Map getButtons() { + return coordinates; + } } \ No newline at end of file diff --git a/src/main/java/pm/j4/petroleum/modules/splash/SplashText.java b/src/main/java/pm/j4/petroleum/modules/splash/SplashText.java index d998642..e018387 100644 --- a/src/main/java/pm/j4/petroleum/modules/splash/SplashText.java +++ b/src/main/java/pm/j4/petroleum/modules/splash/SplashText.java @@ -1,7 +1,7 @@ package pm.j4.petroleum.modules.splash; import pm.j4.petroleum.PetroleumMod; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; /** * The type Splash text. @@ -12,6 +12,7 @@ public class SplashText extends ModuleBase { */ public SplashText() { super("petroleum.splashtext", + "petroleum.misc", true, true, false); diff --git a/src/main/java/pm/j4/petroleum/util/config/Config.java b/src/main/java/pm/j4/petroleum/util/config/Config.java index c2697d3..695be65 100644 --- a/src/main/java/pm/j4/petroleum/util/config/Config.java +++ b/src/main/java/pm/j4/petroleum/util/config/Config.java @@ -3,7 +3,7 @@ package pm.j4.petroleum.util.config; import java.util.ArrayList; import java.util.List; import pm.j4.petroleum.PetroleumMod; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; /** * The type Config. diff --git a/src/main/java/pm/j4/petroleum/util/config/ConfigHolder.java b/src/main/java/pm/j4/petroleum/util/config/ConfigHolder.java index 8b214f9..a59fcc4 100644 --- a/src/main/java/pm/j4/petroleum/util/config/ConfigHolder.java +++ b/src/main/java/pm/j4/petroleum/util/config/ConfigHolder.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; import pm.j4.petroleum.PetroleumMod; -import pm.j4.petroleum.modules.base.ModuleBase; +import pm.j4.petroleum.util.module.ModuleBase; /** * The type Config holder. diff --git a/src/main/java/pm/j4/petroleum/util/config/GlobalConfig.java b/src/main/java/pm/j4/petroleum/util/config/GlobalConfig.java index 0d38215..5c70af0 100644 --- a/src/main/java/pm/j4/petroleum/util/config/GlobalConfig.java +++ b/src/main/java/pm/j4/petroleum/util/config/GlobalConfig.java @@ -5,9 +5,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import net.minecraft.client.options.KeyBinding; import net.minecraft.client.util.InputUtil; import pm.j4.petroleum.PetroleumMod; -import pm.j4.petroleum.modules.base.ConfigurationOption; -import pm.j4.petroleum.modules.base.ModuleBase; -import pm.j4.petroleum.modules.base.option.OptionTypeMatcher; +import pm.j4.petroleum.util.module.ConfigurationOption; +import pm.j4.petroleum.util.module.ModuleBase; +import pm.j4.petroleum.util.module.option.OptionTypeMatcher; import pm.j4.petroleum.modules.bindings.BindingInfo; /** diff --git a/src/main/java/pm/j4/petroleum/util/data/Category.java b/src/main/java/pm/j4/petroleum/util/data/Category.java new file mode 100644 index 0000000..6880bc3 --- /dev/null +++ b/src/main/java/pm/j4/petroleum/util/data/Category.java @@ -0,0 +1,31 @@ +package pm.j4.petroleum.util.data; + +import java.util.*; +import pm.j4.petroleum.PetroleumMod; +import pm.j4.petroleum.util.module.ModuleBase; + +public class Category { + public static Map> getCategoryMap() { + List modules = PetroleumMod.getActiveMods(); + Map> categoryMap = new HashMap<>(); + modules.forEach(module -> { + if(!categoryMap.containsKey(module.getCategory())) { + List m = new ArrayList<>(); + m.add(module); + categoryMap.put(module.getCategory(), m); + } + else { + List m = categoryMap.get(module.getCategory()); + List nm = new ArrayList<>(); + nm.addAll(m); + m.add(module); + categoryMap.replace(module.getCategory(), nm); + } + }); + return categoryMap; + } + + public static List getByCategory(String category) { + return getCategoryMap().containsKey(category) ? getCategoryMap().get(category) : new ArrayList<>(); + } +} diff --git a/src/main/java/pm/j4/petroleum/util/data/Coordinate.java b/src/main/java/pm/j4/petroleum/util/data/Coordinate.java new file mode 100644 index 0000000..8321bda --- /dev/null +++ b/src/main/java/pm/j4/petroleum/util/data/Coordinate.java @@ -0,0 +1,11 @@ +package pm.j4.petroleum.util.data; + +public class Coordinate { + public double x; + public double y; + + public Coordinate(double x, double y) { + this.x = x; + this.y = y; + } +} diff --git a/src/main/java/pm/j4/petroleum/modules/base/ConfigurationOption.java b/src/main/java/pm/j4/petroleum/util/module/ConfigurationOption.java similarity index 96% rename from src/main/java/pm/j4/petroleum/modules/base/ConfigurationOption.java rename to src/main/java/pm/j4/petroleum/util/module/ConfigurationOption.java index 8216dfe..f103d62 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/ConfigurationOption.java +++ b/src/main/java/pm/j4/petroleum/util/module/ConfigurationOption.java @@ -1,4 +1,4 @@ -package pm.j4.petroleum.modules.base; +package pm.j4.petroleum.util.module; /** * The type Configuration option. diff --git a/src/main/java/pm/j4/petroleum/modules/base/ModuleBase.java b/src/main/java/pm/j4/petroleum/util/module/ModuleBase.java similarity index 94% rename from src/main/java/pm/j4/petroleum/modules/base/ModuleBase.java rename to src/main/java/pm/j4/petroleum/util/module/ModuleBase.java index 03c7df9..1164040 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/ModuleBase.java +++ b/src/main/java/pm/j4/petroleum/util/module/ModuleBase.java @@ -1,4 +1,4 @@ -package pm.j4.petroleum.modules.base; +package pm.j4.petroleum.util.module; import java.util.*; import net.minecraft.client.MinecraftClient; @@ -21,8 +21,9 @@ public abstract class ModuleBase { * @param hidden Whether the module will show up in @link pm.j4.petroleum.modules.menu.ModMenu or the active module list * @param hasConfigMenu whether a button in the configuration menu will show */ - public ModuleBase(String name, boolean activatable, boolean hidden, boolean hasConfigMenu) { + public ModuleBase(String name, String category, boolean activatable, boolean hidden, boolean hasConfigMenu) { this.moduleName = name; + this.category = category; this.readableName = new TranslatableText(name); this.activatable = activatable; this.hidden = hidden; @@ -67,6 +68,10 @@ public abstract class ModuleBase { return this.moduleName; } + private final String category; + + public String getCategory() { return this.category; } + /** * The Readable name. */ diff --git a/src/main/java/pm/j4/petroleum/modules/base/StringWritable.java b/src/main/java/pm/j4/petroleum/util/module/StringWritable.java similarity index 93% rename from src/main/java/pm/j4/petroleum/modules/base/StringWritable.java rename to src/main/java/pm/j4/petroleum/util/module/StringWritable.java index 73ff278..4a63652 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/StringWritable.java +++ b/src/main/java/pm/j4/petroleum/util/module/StringWritable.java @@ -1,4 +1,4 @@ -package pm.j4.petroleum.modules.base; +package pm.j4.petroleum.util.module; /** * The type String writable. diff --git a/src/main/java/pm/j4/petroleum/modules/base/option/BooleanValue.java b/src/main/java/pm/j4/petroleum/util/module/option/BooleanValue.java similarity index 86% rename from src/main/java/pm/j4/petroleum/modules/base/option/BooleanValue.java rename to src/main/java/pm/j4/petroleum/util/module/option/BooleanValue.java index e262a6c..1bec235 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/option/BooleanValue.java +++ b/src/main/java/pm/j4/petroleum/util/module/option/BooleanValue.java @@ -1,6 +1,6 @@ -package pm.j4.petroleum.modules.base.option; +package pm.j4.petroleum.util.module.option; -import pm.j4.petroleum.modules.base.StringWritable; +import pm.j4.petroleum.util.module.StringWritable; /** * The type Boolean value. diff --git a/src/main/java/pm/j4/petroleum/util/module/option/DummyValue.java b/src/main/java/pm/j4/petroleum/util/module/option/DummyValue.java new file mode 100644 index 0000000..336a5c6 --- /dev/null +++ b/src/main/java/pm/j4/petroleum/util/module/option/DummyValue.java @@ -0,0 +1,9 @@ +package pm.j4.petroleum.util.module.option; + +import pm.j4.petroleum.util.module.StringWritable; + +/** + * The type Dummy value. + */ +public class DummyValue extends StringWritable { +} diff --git a/src/main/java/pm/j4/petroleum/modules/base/option/IntegerValue.java b/src/main/java/pm/j4/petroleum/util/module/option/IntegerValue.java similarity index 87% rename from src/main/java/pm/j4/petroleum/modules/base/option/IntegerValue.java rename to src/main/java/pm/j4/petroleum/util/module/option/IntegerValue.java index 450e605..90a0b42 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/option/IntegerValue.java +++ b/src/main/java/pm/j4/petroleum/util/module/option/IntegerValue.java @@ -1,6 +1,6 @@ -package pm.j4.petroleum.modules.base.option; +package pm.j4.petroleum.util.module.option; -import pm.j4.petroleum.modules.base.StringWritable; +import pm.j4.petroleum.util.module.StringWritable; /** * The type Integer value. diff --git a/src/main/java/pm/j4/petroleum/modules/base/option/KeybindValue.java b/src/main/java/pm/j4/petroleum/util/module/option/KeybindValue.java similarity index 89% rename from src/main/java/pm/j4/petroleum/modules/base/option/KeybindValue.java rename to src/main/java/pm/j4/petroleum/util/module/option/KeybindValue.java index b54723e..d4641ea 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/option/KeybindValue.java +++ b/src/main/java/pm/j4/petroleum/util/module/option/KeybindValue.java @@ -1,7 +1,7 @@ -package pm.j4.petroleum.modules.base.option; +package pm.j4.petroleum.util.module.option; import net.minecraft.client.options.KeyBinding; -import pm.j4.petroleum.modules.base.StringWritable; +import pm.j4.petroleum.util.module.StringWritable; /** * The type Keybind value. diff --git a/src/main/java/pm/j4/petroleum/modules/base/option/OptionTypeMatcher.java b/src/main/java/pm/j4/petroleum/util/module/option/OptionTypeMatcher.java similarity index 83% rename from src/main/java/pm/j4/petroleum/modules/base/option/OptionTypeMatcher.java rename to src/main/java/pm/j4/petroleum/util/module/option/OptionTypeMatcher.java index d388449..0afc684 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/option/OptionTypeMatcher.java +++ b/src/main/java/pm/j4/petroleum/util/module/option/OptionTypeMatcher.java @@ -1,6 +1,6 @@ -package pm.j4.petroleum.modules.base.option; +package pm.j4.petroleum.util.module.option; -import pm.j4.petroleum.modules.base.StringWritable; +import pm.j4.petroleum.util.module.StringWritable; /** * The type Option type matcher. diff --git a/src/main/java/pm/j4/petroleum/modules/base/option/StringValue.java b/src/main/java/pm/j4/petroleum/util/module/option/StringValue.java similarity index 81% rename from src/main/java/pm/j4/petroleum/modules/base/option/StringValue.java rename to src/main/java/pm/j4/petroleum/util/module/option/StringValue.java index 17bffff..39fb3b3 100644 --- a/src/main/java/pm/j4/petroleum/modules/base/option/StringValue.java +++ b/src/main/java/pm/j4/petroleum/util/module/option/StringValue.java @@ -1,6 +1,6 @@ -package pm.j4.petroleum.modules.base.option; +package pm.j4.petroleum.util.module.option; -import pm.j4.petroleum.modules.base.StringWritable; +import pm.j4.petroleum.util.module.StringWritable; /** * The type String value.