diff --git a/.gradle/7.4/checksums/checksums.lock b/.gradle/7.4/checksums/checksums.lock index 22b93cb..4f17f95 100644 Binary files a/.gradle/7.4/checksums/checksums.lock and b/.gradle/7.4/checksums/checksums.lock differ diff --git a/.gradle/7.4/executionHistory/executionHistory.bin b/.gradle/7.4/executionHistory/executionHistory.bin index 970e5d8..38d80c4 100644 Binary files a/.gradle/7.4/executionHistory/executionHistory.bin and b/.gradle/7.4/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.4/executionHistory/executionHistory.lock b/.gradle/7.4/executionHistory/executionHistory.lock index 907ea32..15c8c0b 100644 Binary files a/.gradle/7.4/executionHistory/executionHistory.lock and b/.gradle/7.4/executionHistory/executionHistory.lock differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index ccb6e9a..5a282b2 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/production/MinecraftArduinoControls.main/arduinoctrls.mixins.json b/production/MinecraftArduinoControls.main/arduinoctrls.mixins.json index 688d95f..1a00171 100644 --- a/production/MinecraftArduinoControls.main/arduinoctrls.mixins.json +++ b/production/MinecraftArduinoControls.main/arduinoctrls.mixins.json @@ -6,7 +6,8 @@ "mixins": [ ], "client": [ - "ArduinoMixin" + "ArduinoMixin", + "GameMenuScreenMixin" ], "injectors": { "defaultRequire": 1 diff --git a/production/MinecraftArduinoControls.main/assets/arduinoctrls/gui/arduino_original.png b/production/MinecraftArduinoControls.main/assets/arduinoctrls/gui/arduino_original.png new file mode 100644 index 0000000..6c676a8 Binary files /dev/null and b/production/MinecraftArduinoControls.main/assets/arduinoctrls/gui/arduino_original.png differ diff --git a/production/MinecraftArduinoControls.main/assets/arduinoctrls/gui/button_icon.png b/production/MinecraftArduinoControls.main/assets/arduinoctrls/gui/button_icon.png new file mode 100644 index 0000000..70113e3 Binary files /dev/null and b/production/MinecraftArduinoControls.main/assets/arduinoctrls/gui/button_icon.png differ diff --git a/production/MinecraftArduinoControls.main/assets/modid/icon.png b/production/MinecraftArduinoControls.main/assets/arduinoctrls/icon.png similarity index 100% rename from production/MinecraftArduinoControls.main/assets/modid/icon.png rename to production/MinecraftArduinoControls.main/assets/arduinoctrls/icon.png diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/ArduinoControls.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/ArduinoControls.class index 5b0630f..9314d6b 100644 Binary files a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/ArduinoControls.class and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/ArduinoControls.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/GuiHome.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/GuiHome.class new file mode 100644 index 0000000..1d3b53e Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/GuiHome.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/SelectDevice.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/SelectDevice.class new file mode 100644 index 0000000..d64964f Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/SelectDevice.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoNano.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoNano.class new file mode 100644 index 0000000..cda32cc Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoNano.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoProMini.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoProMini.class new file mode 100644 index 0000000..9721fd3 Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoProMini.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoUno.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoUno.class new file mode 100644 index 0000000..400d915 Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/boards/ArduinoUno.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/screens/ModSettings.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/screens/ModSettings.class new file mode 100644 index 0000000..881ef92 Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/screens/ModSettings.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/screens/ObjectSelectionList.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/screens/ObjectSelectionList.class new file mode 100644 index 0000000..09a0350 Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/gui/screens/ObjectSelectionList.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.class index 7a379f2..5c88a5c 100644 Binary files a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.class and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.class differ diff --git a/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/mixin/GameMenuScreenMixin.class b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/mixin/GameMenuScreenMixin.class new file mode 100644 index 0000000..661e633 Binary files /dev/null and b/production/MinecraftArduinoControls.main/me/jonasjones/arduinoctrls/mixin/GameMenuScreenMixin.class differ diff --git a/src/main/java/me/jonasjones/arduinoctrls/ArduinoControls.java b/src/main/java/me/jonasjones/arduinoctrls/ArduinoControls.java index 2270f64..fdf7326 100644 --- a/src/main/java/me/jonasjones/arduinoctrls/ArduinoControls.java +++ b/src/main/java/me/jonasjones/arduinoctrls/ArduinoControls.java @@ -21,7 +21,16 @@ public class ArduinoControls implements ModInitializer { try { LedBlink.initialisation(); } catch (InterruptedException e) { - throw new RuntimeException(e); + LOGGER.info("Failed to make Arduino LED blink. ARDUINO NOT CONNECTED!"); } } } +/* +//TODO: +- Full control over all programmable pins of all known raspberry pi's +- system to flash program onto arduino with ingame editor +- scratch system that allows for multiple event triggering when something happens +- cry because mojang UI system sucks ass +- make own library that allows for easy UI implementation + +*/ \ No newline at end of file diff --git a/src/main/java/me/jonasjones/arduinoctrls/gui/GuiHome.java b/src/main/java/me/jonasjones/arduinoctrls/gui/GuiHome.java new file mode 100644 index 0000000..3c31079 --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/gui/GuiHome.java @@ -0,0 +1,40 @@ +package me.jonasjones.arduinoctrls.gui; + +import me.jonasjones.arduinoctrls.gui.screens.ModSettings; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.screen.ScreenTexts; +import net.minecraft.text.Text; +import net.minecraft.client.util.math.MatrixStack; + +@Environment(EnvType.CLIENT) +public class GuiHome extends Screen { + private final Screen parent; + + public GuiHome (Screen parent) { + super(Text.of("MicrocontrollerMC Controls")); + this.parent = parent; + } + protected void init() { + + + this.addDrawableChild(new ButtonWidget(this.width / 2 - 155, this.height / 6 + 12, 150, 20, Text.of("Configure Microcontrollers"), (button) -> { + this.client.setScreen(new SelectDevice(this)); + })); + this.addDrawableChild(new ButtonWidget(this.width / 2 + 5, this.height / 6 + 12, 150, 20, Text.of("Settings"), (button) -> { + this.client.setScreen(new ModSettings(this)); + })); + + this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height / 6 + 168, 200, 20, ScreenTexts.DONE, (button) -> { + this.client.setScreen(this.parent); + })); + } + + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + this.renderBackground(matrices); + drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 15, 16777215); + super.render(matrices, mouseX, mouseY, delta); + } +} \ No newline at end of file diff --git a/src/main/java/me/jonasjones/arduinoctrls/gui/SelectDevice.java b/src/main/java/me/jonasjones/arduinoctrls/gui/SelectDevice.java new file mode 100644 index 0000000..12d8429 --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/gui/SelectDevice.java @@ -0,0 +1,127 @@ +package me.jonasjones.arduinoctrls.gui; + +import com.mojang.logging.LogUtils; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.world.CreateWorldScreen; +import net.minecraft.client.gui.screen.world.SelectWorldScreen; +import net.minecraft.client.gui.screen.world.WorldListWidget; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.screen.ScreenTexts; +import net.minecraft.text.OrderedText; +import net.minecraft.text.Text; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; + +import java.util.List; +import java.util.function.Supplier; + +@Environment(EnvType.CLIENT) +public class SelectDevice extends Screen { + private static final Logger LOGGER = LogUtils.getLogger(); + protected final Screen parent; + @Nullable + private List tooltip; + private ButtonWidget deleteButton; + private ButtonWidget selectButton; + private ButtonWidget editButton; + private ButtonWidget recreateButton; + protected TextFieldWidget searchBox; + private WorldListWidget levelList; + + public SelectDevice(Screen parent) { + super(Text.translatable("selectWorld.title")); + this.parent = parent; + } + + public boolean mouseScrolled(double mouseX, double mouseY, double amount) { + return super.mouseScrolled(mouseX, mouseY, amount); + } + + public void tick() { + this.searchBox.tick(); + } + + protected void init() { + this.client.keyboard.setRepeatEvents(true); + this.searchBox = new TextFieldWidget(this.textRenderer, this.width / 2 - 100, 22, 200, 20, this.searchBox, Text.translatable("selectWorld.search")); + this.searchBox.setChangedListener((search) -> { + this.levelList.filter(search); + }); + SelectWorldScreen uwu = new SelectWorldScreen(this); + this.levelList = new WorldListWidget(uwu, this.client, this.width, this.height, 48, this.height - 64, 36, this.getSearchFilter(), this.levelList); + this.addSelectableChild(this.searchBox); + this.addSelectableChild(this.levelList); + this.selectButton = (ButtonWidget)this.addDrawableChild(new ButtonWidget(this.width / 2 - 154, this.height - 52, 150, 20, Text.translatable("selectWorld.select"), (button) -> { + this.levelList.getSelectedAsOptional().ifPresent(WorldListWidget.WorldEntry::play); + })); + this.addDrawableChild(new ButtonWidget(this.width / 2 + 4, this.height - 52, 150, 20, Text.translatable("selectWorld.create"), (button) -> { + CreateWorldScreen.create(this.client, this); + })); + this.editButton = (ButtonWidget)this.addDrawableChild(new ButtonWidget(this.width / 2 - 154, this.height - 28, 72, 20, Text.translatable("selectWorld.edit"), (button) -> { + this.levelList.getSelectedAsOptional().ifPresent(WorldListWidget.WorldEntry::edit); + })); + this.deleteButton = (ButtonWidget)this.addDrawableChild(new ButtonWidget(this.width / 2 - 76, this.height - 28, 72, 20, Text.translatable("selectWorld.delete"), (button) -> { + this.levelList.getSelectedAsOptional().ifPresent(WorldListWidget.WorldEntry::deleteIfConfirmed); + })); + this.recreateButton = (ButtonWidget)this.addDrawableChild(new ButtonWidget(this.width / 2 + 4, this.height - 28, 72, 20, Text.translatable("selectWorld.recreate"), (button) -> { + this.levelList.getSelectedAsOptional().ifPresent(WorldListWidget.WorldEntry::recreate); + })); + this.addDrawableChild(new ButtonWidget(this.width / 2 + 82, this.height - 28, 72, 20, ScreenTexts.CANCEL, (button) -> { + this.client.setScreen(this.parent); + })); + this.worldSelected(false); + this.setInitialFocus(this.searchBox); + } + + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + return super.keyPressed(keyCode, scanCode, modifiers) ? true : this.searchBox.keyPressed(keyCode, scanCode, modifiers); + } + + public void close() { + this.client.setScreen(this.parent); + } + + public boolean charTyped(char chr, int modifiers) { + return this.searchBox.charTyped(chr, modifiers); + } + + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + this.tooltip = null; + this.levelList.render(matrices, mouseX, mouseY, delta); + this.searchBox.render(matrices, mouseX, mouseY, delta); + drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 8, 16777215); + super.render(matrices, mouseX, mouseY, delta); + if (this.tooltip != null) { + this.renderOrderedTooltip(matrices, this.tooltip, mouseX, mouseY); + } + + } + + public void setTooltip(List tooltip) { + this.tooltip = tooltip; + } + + public void worldSelected(boolean active) { + this.selectButton.active = active; + this.deleteButton.active = active; + this.editButton.active = active; + this.recreateButton.active = active; + } + + public void removed() { + if (this.levelList != null) { + this.levelList.children().forEach(WorldListWidget.Entry::close); + } + + } + + public Supplier getSearchFilter() { + return () -> { + return this.searchBox.getText(); + }; + } +} diff --git a/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoNano.java b/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoNano.java new file mode 100644 index 0000000..8ddc45a --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoNano.java @@ -0,0 +1,4 @@ +package me.jonasjones.arduinoctrls.gui.boards; + +public class ArduinoNano { +} diff --git a/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoProMini.java b/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoProMini.java new file mode 100644 index 0000000..eebdf9d --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoProMini.java @@ -0,0 +1,4 @@ +package me.jonasjones.arduinoctrls.gui.boards; + +public class ArduinoProMini { +} diff --git a/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoUno.java b/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoUno.java new file mode 100644 index 0000000..7cfea4f --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/gui/boards/ArduinoUno.java @@ -0,0 +1,4 @@ +package me.jonasjones.arduinoctrls.gui.boards; + +public class ArduinoUno { +} diff --git a/src/main/java/me/jonasjones/arduinoctrls/gui/screens/ModSettings.java b/src/main/java/me/jonasjones/arduinoctrls/gui/screens/ModSettings.java new file mode 100644 index 0000000..f1d4087 --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/gui/screens/ModSettings.java @@ -0,0 +1,39 @@ +package me.jonasjones.arduinoctrls.gui.screens; + +import me.jonasjones.arduinoctrls.gui.SelectDevice; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.option.SoundOptionsScreen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.screen.ScreenTexts; +import net.minecraft.text.Text; + + +@Environment(EnvType.CLIENT) +public class ModSettings extends Screen { + private final Screen parent; + + public ModSettings (Screen parent) { + super(Text.of("MicrocontrollerMC Controls")); + this.parent = parent; + } + protected void init() { + + + this.addDrawableChild(new ButtonWidget(this.width / 2 - 155, this.height / 6 + 12, 150, 20, Text.of("Configure Microcontrollers"), (button) -> { + this.client.setScreen(new SelectDevice(this)); + })); + + this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height / 6 + 168, 200, 20, ScreenTexts.DONE, (button) -> { + this.client.setScreen(this.parent); + })); + } + + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + this.renderBackground(matrices); + drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 15, 16777215); + super.render(matrices, mouseX, mouseY, delta); + } +} \ No newline at end of file diff --git a/src/main/java/me/jonasjones/arduinoctrls/gui/screens/ObjectSelectionList.java b/src/main/java/me/jonasjones/arduinoctrls/gui/screens/ObjectSelectionList.java new file mode 100644 index 0000000..8a80760 --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/gui/screens/ObjectSelectionList.java @@ -0,0 +1,7 @@ +package me.jonasjones.arduinoctrls.gui.screens; + +import java.awt.*; + +public class ObjectSelectionList { + public static void display(int x, int y, int width, int height, List objects) {} +} diff --git a/src/main/java/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.java b/src/main/java/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.java index 659dcb7..0ee2ce4 100644 --- a/src/main/java/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.java +++ b/src/main/java/me/jonasjones/arduinoctrls/mixin/ArduinoMixin.java @@ -1,10 +1,13 @@ package me.jonasjones.arduinoctrls.mixin; -import me.jonasjones.arduinoctrls.ArduinoControls; +import me.jonasjones.arduinoctrls.gui.GuiHome; +import me.jonasjones.arduinoctrls.gui.SelectDevice; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.gui.widget.TexturedButtonWidget; import net.minecraft.text.Text; +import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -16,15 +19,17 @@ public abstract class ArduinoMixin extends Screen { super(title); } - @Inject(at = @At("HEAD"), method = "init()V") - private void init(CallbackInfo info) { - ArduinoControls.LOGGER.info("This line is printed by an example mod mixin!"); - } - @Inject(at = @At("RETURN"), method = "initWidgetsNormal") - private void ledToggleButton(int y, int spacingY, CallbackInfo ci) { - this.addDrawableChild(new ButtonWidget(50, 50, 20, 20,Text.of("LED"), (button) -> { - this.client.scheduleStop(); + private void titleScreenButton(int y, int spacingY, CallbackInfo ci) { + + final Identifier ICON_TEXTURE = new Identifier("arduinoctrls", "gui/button_icon.png"); + + int buttonX = this.width / 2 + 104; + int buttonY = y + spacingY * 2; + + this.addDrawableChild(new ButtonWidget(buttonX, buttonY, 20, 20, Text.of(""), (button) -> { + this.client.setScreen(new GuiHome(this)); })); + this.addDrawableChild( new TexturedButtonWidget(buttonX, buttonY, 20, 20, 0, 0, 0, ICON_TEXTURE, 20, 20, (buttonWidget) -> this.client.setScreen(new GuiHome(this)))); } } \ No newline at end of file diff --git a/src/main/java/me/jonasjones/arduinoctrls/mixin/GameMenuScreenMixin.java b/src/main/java/me/jonasjones/arduinoctrls/mixin/GameMenuScreenMixin.java new file mode 100644 index 0000000..4a7f753 --- /dev/null +++ b/src/main/java/me/jonasjones/arduinoctrls/mixin/GameMenuScreenMixin.java @@ -0,0 +1,35 @@ +package me.jonasjones.arduinoctrls.mixin; + +import me.jonasjones.arduinoctrls.gui.GuiHome; +import net.minecraft.client.gui.screen.GameMenuScreen; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.gui.widget.TexturedButtonWidget; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GameMenuScreen.class) +public class GameMenuScreenMixin extends Screen { + final Identifier ICON_TEXTURE = new Identifier("arduinoctrls", "logo_16x9.png"); + + protected GameMenuScreenMixin(Text title) {super(title);} + + + @Inject(at = @At("HEAD"),method = "initWidgets") + private void gameMenuScreenButton(CallbackInfo ci) { + final Identifier ICON_TEXTURE = new Identifier("arduinoctrls", "gui/button_icon.png"); + + int buttonX = this.width / 2 + 108; + int buttonY = this.height / 4 + 8; + + this.addDrawableChild(new ButtonWidget(buttonX, buttonY, 20, 20, Text.of(""), (button) -> { + this.client.setScreen(new GuiHome(this)); + })); + this.addDrawableChild( new TexturedButtonWidget(buttonX, buttonY, 20, 20, 0, 0, 0, ICON_TEXTURE, 20, 20, (buttonWidget) -> this.client.setScreen(new GuiHome(this)))); + + } +} diff --git a/src/main/resources/arduinoctrls.mixins.json b/src/main/resources/arduinoctrls.mixins.json index 688d95f..1a00171 100644 --- a/src/main/resources/arduinoctrls.mixins.json +++ b/src/main/resources/arduinoctrls.mixins.json @@ -6,7 +6,8 @@ "mixins": [ ], "client": [ - "ArduinoMixin" + "ArduinoMixin", + "GameMenuScreenMixin" ], "injectors": { "defaultRequire": 1 diff --git a/src/main/resources/assets/arduinoctrls/gui/arduino_original.png b/src/main/resources/assets/arduinoctrls/gui/arduino_original.png new file mode 100644 index 0000000..6c676a8 Binary files /dev/null and b/src/main/resources/assets/arduinoctrls/gui/arduino_original.png differ diff --git a/src/main/resources/assets/arduinoctrls/gui/button_icon.png b/src/main/resources/assets/arduinoctrls/gui/button_icon.png new file mode 100644 index 0000000..70113e3 Binary files /dev/null and b/src/main/resources/assets/arduinoctrls/gui/button_icon.png differ diff --git a/src/main/resources/assets/modid/icon.png b/src/main/resources/assets/arduinoctrls/icon.png similarity index 100% rename from src/main/resources/assets/modid/icon.png rename to src/main/resources/assets/arduinoctrls/icon.png