semi functional config menu
This commit is contained in:
@@ -149,4 +149,8 @@ public class ConfigManager {
|
|||||||
SaturnClient.LOGGER.error("Error saving the config file", e);
|
SaturnClient.LOGGER.error("Error saving the config file", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, Property<?>> getProperties() {
|
||||||
|
return properties.get(namespace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,77 @@
|
|||||||
|
package org.saturnclient.saturnclient.menus;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||||
|
import org.saturnclient.saturnclient.config.Property;
|
||||||
|
import org.saturnclient.ui.SaturnUi;
|
||||||
|
import org.saturnclient.ui.Textures;
|
||||||
|
import org.saturnclient.ui.animations.Slide;
|
||||||
|
import org.saturnclient.ui.components.SaturnToggle;
|
||||||
|
import org.saturnclient.ui.widgets.SaturnScroll;
|
||||||
|
import org.saturnclient.ui.widgets.SaturnSprite;
|
||||||
|
|
||||||
|
import net.minecraft.text.Text;
|
||||||
|
|
||||||
|
public class ConfigEditor extends SaturnUi {
|
||||||
|
private ConfigManager config;
|
||||||
|
|
||||||
|
public ConfigEditor(ConfigManager config) {
|
||||||
|
super(Text.of("Config editor"));
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
protected void init() {
|
||||||
|
int rectWidth = 330;
|
||||||
|
int rectHeight = 228;
|
||||||
|
int rectX = (width - rectWidth) / 2;
|
||||||
|
int rectY = (height - rectHeight + 15) / 2;
|
||||||
|
|
||||||
|
draw(new SaturnSprite(Textures.SETTINGS_BG)
|
||||||
|
.setX(rectX)
|
||||||
|
.setY(rectY)
|
||||||
|
.setWidth(rectWidth)
|
||||||
|
.setHeight(rectHeight)
|
||||||
|
.setAnimations(new Slide(1, 10)));
|
||||||
|
|
||||||
|
int tabsX = (width - 43) / 2;
|
||||||
|
int tabsY = rectY - 17;
|
||||||
|
|
||||||
|
draw(new SaturnSprite(Textures.TABS)
|
||||||
|
.setX(tabsX)
|
||||||
|
.setY(tabsY)
|
||||||
|
.setWidth(43)
|
||||||
|
.setHeight(15)
|
||||||
|
.setAnimations(new Slide(1, 10)));
|
||||||
|
|
||||||
|
int modX = 0;
|
||||||
|
int modY = 0;
|
||||||
|
int col = 0;
|
||||||
|
|
||||||
|
int propWidth = (rectWidth - 15) / 2;
|
||||||
|
|
||||||
|
SaturnScroll modsScroll = new SaturnScroll();
|
||||||
|
|
||||||
|
for (Map.Entry<String, Property<?>> propEntry : config.getProperties().entrySet()) {
|
||||||
|
Property<?> prop = propEntry.getValue();
|
||||||
|
if (prop.value instanceof Boolean) {
|
||||||
|
draw(new SaturnToggle((Property<Boolean>) prop).setX(modX).setY(modY));
|
||||||
|
}
|
||||||
|
|
||||||
|
col++;
|
||||||
|
if (col < 2) {
|
||||||
|
modX += propWidth + 21;
|
||||||
|
} else {
|
||||||
|
modX = 0;
|
||||||
|
modY += 20 + 20;
|
||||||
|
col = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
draw(modsScroll.setX(rectX + 17).setY(rectY + 10).setWidth(rectWidth - 17).setHeight(rectHeight - 10));
|
||||||
|
|
||||||
|
super.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package org.saturnclient.saturnmods;
|
package org.saturnclient.saturnmods;
|
||||||
|
|
||||||
|
import org.saturnclient.saturnclient.config.ConfigManager;
|
||||||
|
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
public interface SaturnMod {
|
public interface SaturnMod {
|
||||||
@@ -10,4 +12,6 @@ public interface SaturnMod {
|
|||||||
public String getName();
|
public String getName();
|
||||||
|
|
||||||
public Identifier getIconTexture();
|
public Identifier getIconTexture();
|
||||||
|
|
||||||
|
public ConfigManager getConfig();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,4 +110,9 @@ public class ArmorDisplay implements SaturnMod, HudMod {
|
|||||||
public void setEnabled(boolean e) {
|
public void setEnabled(boolean e) {
|
||||||
enabled.value = e;
|
enabled.value = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ConfigManager getConfig() {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,4 +67,9 @@ public class Coordinates implements SaturnMod, HudMod {
|
|||||||
public void setEnabled(boolean e) {
|
public void setEnabled(boolean e) {
|
||||||
enabled.value = e;
|
enabled.value = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ConfigManager getConfig() {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package org.saturnclient.ui.components;
|
package org.saturnclient.ui.components;
|
||||||
|
|
||||||
import org.saturnclient.saturnclient.SaturnClient;
|
import org.saturnclient.saturnclient.SaturnClient;
|
||||||
|
import org.saturnclient.saturnclient.menus.ConfigEditor;
|
||||||
import org.saturnclient.saturnmods.SaturnMod;
|
import org.saturnclient.saturnmods.SaturnMod;
|
||||||
import org.saturnclient.ui.SaturnUi;
|
import org.saturnclient.ui.SaturnUi;
|
||||||
import org.saturnclient.ui.SaturnWidget;
|
import org.saturnclient.ui.SaturnWidget;
|
||||||
import org.saturnclient.ui.Textures;
|
import org.saturnclient.ui.Textures;
|
||||||
|
|
||||||
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
import net.minecraft.client.render.RenderLayer;
|
import net.minecraft.client.render.RenderLayer;
|
||||||
import net.minecraft.util.math.ColorHelper;
|
import net.minecraft.util.math.ColorHelper;
|
||||||
@@ -50,7 +52,7 @@ public class SaturnModComp extends SaturnWidget {
|
|||||||
@Override
|
@Override
|
||||||
public void click(int mouseX, int mouseY) {
|
public void click(int mouseX, int mouseY) {
|
||||||
if (settingsHovering(mouseX, mouseY)) {
|
if (settingsHovering(mouseX, mouseY)) {
|
||||||
// TODO: make a config thingy, and implement it on the mods
|
MinecraftClient.getInstance().setScreen(new ConfigEditor(mod.getConfig()));
|
||||||
} else {
|
} else {
|
||||||
mod.setEnabled(!mod.isEnabled());
|
mod.setEnabled(!mod.isEnabled());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user