add file sync
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
package com.kasetoatz.dumbassconfig.ui;
|
||||
|
||||
import com.kasetoatz.dumbassconfig.options.ButtonOption;
|
||||
import com.kasetoatz.dumbassconfig.options.InputOption;
|
||||
import com.kasetoatz.dumbassconfig.options.Option;
|
||||
import com.kasetoatz.dumbassconfig.options.AbstractButtonOption;
|
||||
import com.kasetoatz.dumbassconfig.options.AbstractInputOption;
|
||||
import com.kasetoatz.dumbassconfig.options.AbstractOption;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.widget.*;
|
||||
@@ -51,15 +51,15 @@ public class ConfigEntryList extends ElementListWidget<ConfigEntry>
|
||||
super.renderWidget(context, mouseX, mouseY, delta);
|
||||
}
|
||||
|
||||
public void add(Option<?> option)
|
||||
public void add(AbstractOption<?> option)
|
||||
{
|
||||
ConfigEntry entry = new ConfigEntry();
|
||||
entry.add(new TextWidget(option.getText(), this.client.textRenderer));
|
||||
if (option instanceof ButtonOption<?> buttonOption)
|
||||
if (option instanceof AbstractButtonOption<?> buttonOption)
|
||||
{
|
||||
entry.add(ButtonWidget.builder(buttonOption.getButtonText(), buttonOption::onClick).build());
|
||||
}
|
||||
else if (option instanceof InputOption<?> inputOption)
|
||||
else if (option instanceof AbstractInputOption<?> inputOption)
|
||||
{
|
||||
inputOption.textField = new InputField(this.client.textRenderer, inputOption.getText());
|
||||
inputOption.textField.setText(inputOption.getValue().toString());
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.kasetoatz.dumbassconfig.ui;
|
||||
|
||||
import com.kasetoatz.dumbassconfig.options.Option;
|
||||
import com.kasetoatz.dumbassconfig.options.AbstractOption;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.ThreePartsLayoutWidget;
|
||||
@@ -15,11 +15,12 @@ import static com.kasetoatz.dumbassconfig.DumbassConfig.ENTRY_HEIGHT;
|
||||
public class ConfigScreen extends Screen
|
||||
{
|
||||
private Screen parent;
|
||||
private final List<Option<?>> options;
|
||||
private final List<AbstractOption<?>> options;
|
||||
private final ThreePartsLayoutWidget layout = new ThreePartsLayoutWidget(this);
|
||||
private ConfigEntryList body;
|
||||
private Runnable saveCallback;
|
||||
|
||||
public ConfigScreen(Text title, List<Option<?>> options)
|
||||
public ConfigScreen(Text title, List<AbstractOption<?>> options)
|
||||
{
|
||||
super(title);
|
||||
this.options = options;
|
||||
@@ -30,12 +31,17 @@ public class ConfigScreen extends Screen
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
public void setSaveCallback(Runnable callback)
|
||||
{
|
||||
this.saveCallback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init()
|
||||
{
|
||||
this.layout.addHeader(this.title, this.textRenderer);
|
||||
this.body = new ConfigEntryList(this.client, this.layout.getWidth(), this.layout.getContentHeight(), this.layout.getHeaderHeight(), ENTRY_HEIGHT);
|
||||
for (Option<?> option : this.options)
|
||||
for (AbstractOption<?> option : this.options)
|
||||
{
|
||||
this.body.add(option);
|
||||
}
|
||||
@@ -58,6 +64,7 @@ public class ConfigScreen extends Screen
|
||||
@Override
|
||||
public void close()
|
||||
{
|
||||
this.saveCallback.run();
|
||||
if (this.client != null)
|
||||
{
|
||||
this.client.setScreen(this.parent);
|
||||
|
||||
Reference in New Issue
Block a user