add button adds jsonObject to masterCommList
-add getter/setter for masterCommList -addSavedButtons correctly loads buttons from CommList instance
This commit is contained in:
parent
84105c611b
commit
98f84809f8
@ -109,7 +109,6 @@ public class ConfigFile {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: create func initArray to assign commands.json to global array<CommandObjects> masterCommList
|
|
||||||
public static ArrayList<JSONObject> initArray() {
|
public static ArrayList<JSONObject> initArray() {
|
||||||
ArrayList<JSONObject> commandObjects = new ArrayList<>();
|
ArrayList<JSONObject> commandObjects = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
|
@ -10,11 +10,12 @@ import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
|
|||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.options.KeyBinding;
|
import net.minecraft.client.options.KeyBinding;
|
||||||
import net.minecraft.client.util.InputUtil;
|
import net.minecraft.client.util.InputUtil;
|
||||||
import org.json.simple.JSONArray;
|
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
public class MacroButtons implements ModInitializer {
|
public class MacroButtons implements ModInitializer {
|
||||||
|
|
||||||
@ -24,14 +25,10 @@ public class MacroButtons implements ModInitializer {
|
|||||||
@Override
|
@Override
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
assignGuiToKey();
|
assignGuiToKey();
|
||||||
// TODO: call initArray(); here
|
|
||||||
initArray();
|
initArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onQuit() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void assignGuiToKey() {
|
private void assignGuiToKey() {
|
||||||
|
|
||||||
@ -47,8 +44,9 @@ public class MacroButtons implements ModInitializer {
|
|||||||
|
|
||||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||||
while (keyBinding.wasPressed()) {
|
while (keyBinding.wasPressed()) {
|
||||||
// client.player.sendMessage(new LiteralText("Key 1 was pressed!"), false);
|
System.out.println("Key 1 was pressed!");
|
||||||
MinecraftClient.getInstance().openScreen(new ButtonGUIScreen(new ButtonGUI()));
|
MinecraftClient.getInstance().openScreen(new ButtonGUIScreen(new ButtonGUI()));
|
||||||
|
//client.player.closeScreen();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -62,7 +60,6 @@ public class MacroButtons implements ModInitializer {
|
|||||||
MinecraftClient.getInstance().player.sendChatMessage(message);
|
MinecraftClient.getInstance().player.sendChatMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: create func initArray to assign global JSONArray masterCommList to commands.json
|
|
||||||
private void initArray() {
|
private void initArray() {
|
||||||
masterCommList = ConfigFile.initArray();
|
masterCommList = ConfigFile.initArray();
|
||||||
if (masterCommList == null) {
|
if (masterCommList == null) {
|
||||||
@ -70,5 +67,13 @@ public class MacroButtons implements ModInitializer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ArrayList<JSONObject> getMasterCommList() {
|
||||||
|
return masterCommList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setMasterCommList(ArrayList<JSONObject> commList) {
|
||||||
|
masterCommList = commList;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.josyf.macrobuttons.gui;
|
package com.josyf.macrobuttons.gui;
|
||||||
|
|
||||||
|
import com.josyf.macrobuttons.CommandObject;
|
||||||
import com.josyf.macrobuttons.ConfigFile;
|
import com.josyf.macrobuttons.ConfigFile;
|
||||||
import com.josyf.macrobuttons.MacroButtons;
|
import com.josyf.macrobuttons.MacroButtons;
|
||||||
import io.github.cottonmc.cotton.gui.client.BackgroundPainter;
|
import io.github.cottonmc.cotton.gui.client.BackgroundPainter;
|
||||||
@ -11,6 +12,8 @@ import net.minecraft.text.TranslatableText;
|
|||||||
import org.json.simple.JSONArray;
|
import org.json.simple.JSONArray;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class ButtonGUI extends LightweightGuiDescription {
|
public class ButtonGUI extends LightweightGuiDescription {
|
||||||
|
|
||||||
int xValue = 0;
|
int xValue = 0;
|
||||||
@ -48,13 +51,22 @@ public class ButtonGUI extends LightweightGuiDescription {
|
|||||||
ConfigFile.readFile();
|
ConfigFile.readFile();
|
||||||
});
|
});
|
||||||
root.add(button3, xValue + 10, yValue + 9, 6, 1);
|
root.add(button3, xValue + 10, yValue + 9, 6, 1);
|
||||||
|
|
||||||
|
|
||||||
|
// read mastercommlist
|
||||||
|
// read json file button
|
||||||
|
WButton button4 = new WButton(new TranslatableText("Read master list"));
|
||||||
|
button4.setOnClick(() -> {
|
||||||
|
System.out.println(MacroButtons.getMasterCommList());
|
||||||
|
});
|
||||||
|
root.add(button4, xValue + 10, yValue + 8, 6, 1);
|
||||||
|
|
||||||
// ######### DEBUG BUTTONS ############
|
// ######### DEBUG BUTTONS ############
|
||||||
|
|
||||||
// Text GUI, not needed yet
|
// Text GUI, not needed yet
|
||||||
// WLabel label = new WLabel(new LiteralText("Test"), 0xFFFFFF);
|
// WLabel label = new WLabel(new LiteralText("Test"), 0xFFFFFF);
|
||||||
// root.add(label, 0, 4, 2, 1);
|
// root.add(label, 0, 4, 2, 1);
|
||||||
|
|
||||||
// TODO: addSavedButtons();
|
|
||||||
addSavedButtons(root);
|
addSavedButtons(root);
|
||||||
|
|
||||||
addCommandSection(root);
|
addCommandSection(root);
|
||||||
@ -90,7 +102,7 @@ public class ButtonGUI extends LightweightGuiDescription {
|
|||||||
// Only add the button if there are contents in both
|
// Only add the button if there are contents in both
|
||||||
if (!name.getText().equals("") && !command.getText().equals("")) {
|
if (!name.getText().equals("") && !command.getText().equals("")) {
|
||||||
|
|
||||||
System.out.println("Here, command is " + command.getText());
|
//System.out.println("Here, command is " + command.getText());
|
||||||
String instancedString = command.getText();
|
String instancedString = command.getText();
|
||||||
|
|
||||||
WButton button = new WButton(new TranslatableText(name.getText()));
|
WButton button = new WButton(new TranslatableText(name.getText()));
|
||||||
@ -99,11 +111,24 @@ public class ButtonGUI extends LightweightGuiDescription {
|
|||||||
System.out.println("Command was " + instancedString);
|
System.out.println("Command was " + instancedString);
|
||||||
});
|
});
|
||||||
// int newX = incrementNumber(x, 4);
|
// int newX = incrementNumber(x, 4);
|
||||||
System.out.println("x val: " + xValue);
|
//System.out.println("x val: " + xValue);
|
||||||
System.out.println("y val: " + yValue);
|
//System.out.println("y val: " + yValue);
|
||||||
|
|
||||||
root.add(button, xValue, yValue, 4, 1);
|
root.add(button, xValue, yValue, 4, 1);
|
||||||
|
|
||||||
|
// Create a new Json command object & append to masterCommList
|
||||||
|
JSONObject newJsonObject = new JSONObject();
|
||||||
|
newJsonObject.put("name", name.getText());
|
||||||
|
newJsonObject.put("command", command.getText());
|
||||||
|
System.out.println(newJsonObject);
|
||||||
|
|
||||||
|
ArrayList<JSONObject> commListCopy = MacroButtons.getMasterCommList();
|
||||||
|
|
||||||
|
commListCopy.add(newJsonObject);
|
||||||
|
System.out.println(MacroButtons.masterCommList);
|
||||||
|
|
||||||
|
MacroButtons.setMasterCommList(commListCopy);
|
||||||
|
|
||||||
adjustBounds();
|
adjustBounds();
|
||||||
|
|
||||||
name.setText("");
|
name.setText("");
|
||||||
@ -117,10 +142,11 @@ public class ButtonGUI extends LightweightGuiDescription {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// function to load buttons from commands.json
|
||||||
private void addGUIButton(WGridPanel root, int x, String name, String command) {
|
private void addGUIButton(WGridPanel root, int x, String name, String command) {
|
||||||
if (!name.equals("") && !command.equals("")) {
|
if (!name.equals("") && !command.equals("")) {
|
||||||
|
|
||||||
System.out.println("Here, command is " + command);
|
//System.out.println("Here, command is " + command);
|
||||||
String instancedString = command;
|
String instancedString = command;
|
||||||
|
|
||||||
WButton button = new WButton(new TranslatableText(name));
|
WButton button = new WButton(new TranslatableText(name));
|
||||||
@ -129,11 +155,14 @@ public class ButtonGUI extends LightweightGuiDescription {
|
|||||||
System.out.println("Command was " + instancedString);
|
System.out.println("Command was " + instancedString);
|
||||||
});
|
});
|
||||||
// int newX = incrementNumber(x, 4);
|
// int newX = incrementNumber(x, 4);
|
||||||
System.out.println("x val: " + xValue);
|
//System.out.println("x val: " + xValue);
|
||||||
System.out.println("y val: " + yValue);
|
//System.out.println("y val: " + yValue);
|
||||||
|
|
||||||
|
|
||||||
root.add(button, xValue, yValue, 4, 1);
|
root.add(button, xValue, yValue, 4, 1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
adjustBounds();
|
adjustBounds();
|
||||||
|
|
||||||
root.validate(this);
|
root.validate(this);
|
||||||
@ -143,18 +172,17 @@ public class ButtonGUI extends LightweightGuiDescription {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: addSavedButtons
|
|
||||||
// TODO: Iterate over masterCommList to add corresponding buttons
|
|
||||||
// Array will contain String class types. Convert these to objects.
|
// Array will contain String class types. Convert these to objects.
|
||||||
private void addSavedButtons(WGridPanel root) {
|
private void addSavedButtons(WGridPanel root) {
|
||||||
//JSONArray stringCommList = MacroButtons.masterCommList;
|
//JSONArray stringCommList = MacroButtons.masterCommList;
|
||||||
JSONArray objCommList;
|
ArrayList<JSONObject> commListCopy = MacroButtons.getMasterCommList();
|
||||||
// Array will contain String class types. Convert these to objects
|
// Array will contain String class types. Convert these to objects
|
||||||
System.out.println("I be doin my thing here");
|
System.out.println("I be doin my thing here");
|
||||||
// Then convert the objects to buttons
|
// Then convert the objects to buttons
|
||||||
for (int i = 0; i < MacroButtons.masterCommList.size(); i++) {
|
for (int i = 0; i < commListCopy.size(); i++) {
|
||||||
String name = MacroButtons.masterCommList.get(i).get("name").toString();
|
String name = commListCopy.get(i).get("name").toString();
|
||||||
String command = MacroButtons.masterCommList.get(i).get("command").toString();
|
String command = commListCopy.get(i).get("command").toString();
|
||||||
addGUIButton(root, xValue, name, command);
|
addGUIButton(root, xValue, name, command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.josyf.macrobuttons.gui;
|
package com.josyf.macrobuttons.gui;
|
||||||
|
|
||||||
import io.github.cottonmc.cotton.gui.GuiDescription;
|
import io.github.cottonmc.cotton.gui.GuiDescription;
|
||||||
import io.github.cottonmc.cotton.gui.client.BackgroundPainter;
|
|
||||||
import io.github.cottonmc.cotton.gui.client.CottonClientScreen;
|
import io.github.cottonmc.cotton.gui.client.CottonClientScreen;
|
||||||
|
|
||||||
public class ButtonGUIScreen extends CottonClientScreen {
|
public class ButtonGUIScreen extends CottonClientScreen {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user