updated .gitignore

This commit is contained in:
Jonas_Jones 2022-08-26 20:32:21 +02:00
parent 733b6bc37b
commit c9b2e9ef3e
43 changed files with 435 additions and 53 deletions

1
.gitignore vendored
View file

@ -34,3 +34,4 @@ run/
# OTHER # OTHER
MicrocontrollerMC-tmp MicrocontrollerMC-tmp
production

BIN
libs/arduino.jar.disabled Normal file

Binary file not shown.

BIN
libs/gson-2.2.4.jar Normal file

Binary file not shown.

BIN
libs/jSerialComm-2.9.2.jar Normal file

Binary file not shown.

View file

@ -1,25 +1,32 @@
package me.jonasjones.arduinoctrls; package me.jonasjones.microcraft;
import me.jonasjones.arduinoctrls.config.ModConfigs; import me.jonasjones.microcraft.config.ModConfigs;
import me.jonasjones.arduinoctrls.debug.LedBlink; import me.jonasjones.microcraft.util.boardmanager.SerialNumberScanner;
import me.jonasjones.arduinoctrls.util.VerboseLogger;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public class ArduinoControls implements ClientModInitializer { import java.io.IOException;
public class Microcraft implements ClientModInitializer {
// This logger is used to write text to the console and the log file. // This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name. // It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors. // That way, it's clear which mod wrote info, warnings, and errors.
public static final String MOD_ID = "arduinoctrls"; public static final String MOD_ID = "microcraft";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
public static Logger VERBOSELOGGER = LoggerFactory.getLogger(MOD_ID + " - VERBOSE LOGGER"); public static Logger VERBOSELOGGER = LoggerFactory.getLogger(MOD_ID + " - VERBOSE LOGGER");
public static boolean enabled = true;
public static void toggle() {
enabled = !enabled;
}
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
//message from mod to confirm that it has been loaded //message from mod to confirm that it has been loaded
LOGGER.info("UwU from Arduino Controls!"); LOGGER.info("Microcraft Initialized!");
// register configs // register configs
ModConfigs.registerConfigs(); ModConfigs.registerConfigs();

View file

@ -0,0 +1,80 @@
package me.jonasjones.microcraft.config;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class BoardsConfig {
public BoardsConfig() {
}
// DON'T TOUCH THE FOLLOWING CODE
private static BoardsConfig instance;
public static BoardsConfig getInstance() {
if (instance == null) {
instance = fromDefaults();
}
return instance;
}
public static void load(File file) {
instance = fromFile(file);
// no config file found
if (instance == null) {
instance = fromDefaults();
}
}
public static void load(String file) {
load(new File(file));
}
private static BoardsConfig fromDefaults() {
BoardsConfig config = new BoardsConfig();
return config;
}
public void toFile(String file) {
toFile(new File(file));
}
public void toFile(File file) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonConfig = gson.toJson(this);
FileWriter writer;
try {
writer = new FileWriter(file);
writer.write(jsonConfig);
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static BoardsConfig fromFile(File configFile) {
try {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(configFile)));
return gson.fromJson(reader, BoardsConfig.class);
} catch (FileNotFoundException e) {
return null;
}
}
@Override
public String toString() {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
return gson.toJson(this);
}}

View file

@ -1,8 +1,8 @@
package me.jonasjones.arduinoctrls.config; package me.jonasjones.microcraft.config;
import com.mojang.datafixers.util.Pair; import com.mojang.datafixers.util.Pair;
import me.jonasjones.arduinoctrls.config.SimpleConfig.DefaultConfig; import me.jonasjones.microcraft.config.SimpleConfig.DefaultConfig;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -1,9 +1,9 @@
package me.jonasjones.arduinoctrls.config; package me.jonasjones.microcraft.config;
import com.mojang.datafixers.util.Pair; import com.mojang.datafixers.util.Pair;
import me.jonasjones.arduinoctrls.ArduinoControls; import me.jonasjones.microcraft.Microcraft;
import me.jonasjones.arduinoctrls.util.VerboseLogger; import me.jonasjones.microcraft.util.VerboseLogger;
public class ModConfigs { public class ModConfigs {
public static SimpleConfig CONFIGMAIN; public static SimpleConfig CONFIGMAIN;
@ -45,8 +45,8 @@ public class ModConfigs {
createConfigs(); createConfigs();
CONFIGMAIN = SimpleConfig.of(ArduinoControls.MOD_ID + "-main").provider(configMain).request(); CONFIGMAIN = SimpleConfig.of(Microcraft.MOD_ID + "-main").provider(configMain).request();
CONFIGLISTS = SimpleConfig.of(ArduinoControls.MOD_ID + "-lists").provider(configLists).request(); CONFIGLISTS = SimpleConfig.of(Microcraft.MOD_ID + "-lists").provider(configLists).request();
assignConfigs(); assignConfigs();

View file

@ -1,4 +1,4 @@
package me.jonasjones.arduinoctrls.config; package me.jonasjones.microcraft.config;
/* /*
* Copyright (c) 2021 magistermaks * Copyright (c) 2021 magistermaks
* Slightly modified by Jonas_Jones 2022 * Slightly modified by Jonas_Jones 2022
@ -22,8 +22,8 @@ package me.jonasjones.arduinoctrls.config;
* THE SOFTWARE. * THE SOFTWARE.
*/ */
import me.jonasjones.arduinoctrls.ArduinoControls; import me.jonasjones.microcraft.Microcraft;
import me.jonasjones.arduinoctrls.util.VerboseLogger; import me.jonasjones.microcraft.util.VerboseLogger;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import java.io.File; import java.io.File;
@ -138,13 +138,13 @@ public class SimpleConfig {
String identifier = "Config '" + request.filename + "'"; String identifier = "Config '" + request.filename + "'";
if (!request.file.exists()) { if (!request.file.exists()) {
ArduinoControls.LOGGER.info(identifier + " is missing, generating default one..."); Microcraft.LOGGER.info(identifier + " is missing, generating default one...");
try { try {
createConfig(); createConfig();
} catch (IOException e) { } catch (IOException e) {
ArduinoControls.LOGGER.error(identifier + " failed to generate!"); Microcraft.LOGGER.error(identifier + " failed to generate!");
ArduinoControls.LOGGER.trace(String.valueOf(e)); Microcraft.LOGGER.trace(String.valueOf(e));
broken = true; broken = true;
} }
} }
@ -153,8 +153,8 @@ public class SimpleConfig {
try { try {
loadConfig(); loadConfig();
} catch (Exception e) { } catch (Exception e) {
ArduinoControls.LOGGER.error(identifier + " failed to load!"); Microcraft.LOGGER.error(identifier + " failed to load!");
ArduinoControls.LOGGER.trace(String.valueOf(e)); Microcraft.LOGGER.trace(String.valueOf(e));
broken = true; broken = true;
} }
} }

View file

@ -0,0 +1,12 @@
package me.jonasjones.microcraft.data;
public class BoardData {
public int arduinoNanoPins = 22;
public enum board {
Custom,
ArduinoNano,
ArduinoUno,
ArduinoProMini
}
}

View file

@ -0,0 +1,41 @@
package me.jonasjones.microcraft.gui.screens;
import me.jonasjones.microcraft.gui.widget.ArduinoNanoWidget;
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 BoardScreen extends Screen {
private final Screen parent;
public BoardScreen (Screen parent) {
super(Text.of("Microcraft Configuration"));
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("Configure Microcraft"), (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);
}));
this.client.setScreen(new ArduinoNanoWidget(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);
}
}

View file

@ -1,4 +1,4 @@
package me.jonasjones.arduinoctrls.gui.screens; package me.jonasjones.microcraft.gui.screens;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
@ -13,7 +13,7 @@ public class GuiHome extends Screen {
private final Screen parent; private final Screen parent;
public GuiHome (Screen parent) { public GuiHome (Screen parent) {
super(Text.of("MicrocontrollerMC Controls")); super(Text.of("Microcraft Configuration"));
this.parent = parent; this.parent = parent;
} }
protected void init() { protected void init() {
@ -22,13 +22,14 @@ public class GuiHome extends Screen {
this.addDrawableChild(new ButtonWidget(this.width / 2 - 155, this.height / 6 + 12, 150, 20, Text.of("Configure Microcontrollers"), (button) -> { 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.client.setScreen(new SelectDevice(this));
})); }));
this.addDrawableChild(new ButtonWidget(this.width / 2 + 5, this.height / 6 + 12, 150, 20, Text.of("Configure MicrocontrollerMC"), (button) -> { this.addDrawableChild(new ButtonWidget(this.width / 2 + 5, this.height / 6 + 12, 150, 20, Text.of("Configure Microcraft"), (button) -> {
this.client.setScreen(new ModSettings(this)); this.client.setScreen(new ModSettings(this));
})); }));
this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height / 6 + 168, 200, 20, ScreenTexts.DONE, (button) -> { this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height / 6 + 168, 200, 20, ScreenTexts.DONE, (button) -> {
this.client.setScreen(this.parent); this.client.setScreen(this.parent);
})); }));
this.addDrawableChild(new net.minecraft.client.gui.widget.CheckboxWidget(50, 50, 100, 20, Text.of("uwu checkbox"), false));
} }
public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {

View file

@ -0,0 +1,24 @@
package me.jonasjones.microcraft.gui.screens;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
@Environment(EnvType.CLIENT)
public class ModCreditsScreen extends Screen {
private final Screen parent;
public ModCreditsScreen(Screen parent) {
super(Text.of("About Microcraft"));
this.parent = 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);
}
}

View file

@ -1,4 +1,4 @@
package me.jonasjones.arduinoctrls.gui.screens; package me.jonasjones.microcraft.gui.screens;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;

View file

@ -1,4 +1,4 @@
package me.jonasjones.arduinoctrls.gui.screens; package me.jonasjones.microcraft.gui.screens;
import java.awt.*; import java.awt.*;

View file

@ -1,4 +1,4 @@
package me.jonasjones.arduinoctrls.gui.screens; package me.jonasjones.microcraft.gui.screens;
import com.mojang.logging.LogUtils; import com.mojang.logging.LogUtils;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
@ -49,10 +49,10 @@ public class SelectDevice extends Screen {
this.client.keyboard.setRepeatEvents(true); 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 = new TextFieldWidget(this.textRenderer, this.width / 2 - 100, 22, 200, 20, this.searchBox, Text.translatable("selectWorld.search"));
this.searchBox.setChangedListener((search) -> { this.searchBox.setChangedListener((search) -> {
this.levelList.filter(search); //this.levelList.filter(search);
}); });
SelectWorldScreen uwu = new SelectWorldScreen(this); 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.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.searchBox);
this.addSelectableChild(this.levelList); 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.selectButton = (ButtonWidget)this.addDrawableChild(new ButtonWidget(this.width / 2 - 154, this.height - 52, 150, 20, Text.translatable("selectWorld.select"), (button) -> {
@ -91,7 +91,7 @@ public class SelectDevice extends Screen {
public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
this.tooltip = null; this.tooltip = null;
this.levelList.render(matrices, mouseX, mouseY, delta); //this.levelList.render(matrices, mouseX, mouseY, delta);
this.searchBox.render(matrices, mouseX, mouseY, delta); this.searchBox.render(matrices, mouseX, mouseY, delta);
drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 8, 16777215); drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 8, 16777215);
super.render(matrices, mouseX, mouseY, delta); super.render(matrices, mouseX, mouseY, delta);

View file

@ -0,0 +1,21 @@
package me.jonasjones.microcraft.gui.screens.board;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
public class AdvancedPinMappingScreen extends Screen {
private final Screen parent;
public AdvancedPinMappingScreen(Screen parent) {
super(Text.of("Advanced Pin Mapping"));
this.parent = 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);
}
}

View file

@ -0,0 +1,21 @@
package me.jonasjones.microcraft.gui.screens.board;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
public class AdvancedSettingsScreen extends Screen {
private final Screen parent;
public AdvancedSettingsScreen(Screen parent) {
super(Text.of("Advanced Board Settings"));
this.parent = 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);
}
}

View file

@ -0,0 +1,24 @@
package me.jonasjones.microcraft.gui.screens.board;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
@Environment(EnvType.CLIENT)
public class ProfileSelectionScreen extends Screen {
private final Screen parent;
public ProfileSelectionScreen(Screen parent) {
super(Text.of("Profile Selection Screen"));
this.parent = 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);
}
}

View file

@ -0,0 +1,42 @@
package me.jonasjones.microcraft.gui.screens.board;
import me.jonasjones.microcraft.gui.screens.ModSettings;
import me.jonasjones.microcraft.gui.screens.SelectDevice;
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 TextureSelectScreen extends Screen {
private final Screen parent;
public TextureSelectScreen(Screen parent) {
super(Text.of("Microcraft Configuration"));
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("Configure Microcraft"), (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);
}));
this.addDrawableChild(new net.minecraft.client.gui.widget.CheckboxWidget(50, 50, 100, 20, Text.of("uwu checkbox"), false));
}
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);
}
}

View file

@ -0,0 +1,70 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package me.jonasjones.microcraft.gui.widget;
import me.jonasjones.microcraft.Microcraft;
import me.jonasjones.microcraft.gui.screens.ModSettings;
import me.jonasjones.microcraft.gui.screens.board.AdvancedPinMappingScreen;
import me.jonasjones.microcraft.gui.screens.board.AdvancedSettingsScreen;
import me.jonasjones.microcraft.gui.screens.board.ProfileSelectionScreen;
import me.jonasjones.microcraft.gui.screens.ModCreditsScreen;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import net.minecraft.client.gui.widget.TexturedButtonWidget;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.ScrollableWidget;
@Environment(EnvType.CLIENT)
public class ArduinoNanoWidget extends Screen {
private final Screen parent;
Identifier BOARD_TEXTURE = new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-nano.png");
public ArduinoNanoWidget (Screen parent) {
super(Text.of("Microcraft Configuration"));
this.parent = parent;
}
protected void init() {
//TODO: get current profile
addDrawableChild(new ButtonWidget(this.width / 2 - 100, 40, 200, 20, Text.of("[Profile]"), (buttonWidget) -> this.client.setScreen(new ProfileSelectionScreen(this))));
//TODO: make Board texture clickable to select different texture.
this.addDrawableChild(new TexturedButtonWidget(this.width / 2 - 26, this.height / 2 - 65, 52, 130, 0, 0, 130, BOARD_TEXTURE, 52, 130, (buttonWidget) -> this.client.setScreen(this)));
this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height - 30, 200, 20, Text.of("About Microcraft"), (buttonWidget) -> this.client.setScreen(new ModCreditsScreen(this))));
this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height - 55, 200, 20, Text.of("Advanced Pin Mapping"), (buttonWidget) -> this.client.setScreen(new AdvancedPinMappingScreen(this))));
this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height - 80, 200, 20, Text.of("Advanced Board Settings"), (buttonWidget) -> this.client.setScreen(new AdvancedSettingsScreen(this))));
this.addDrawableChild(new ButtonWidget(this.width / 2 - 100, this.height - 105, 200, 20, getToggleText(), (buttonWidget) -> Microcraft.toggle()));
this.addDrawableChild(new ButtonWidget(this.width - 60, this.height - 30, 50, 20, Text.of("Done"), (buttonWidget) -> this.client.setScreen(this.parent)));
this.addDrawableChild(new ButtonWidget(this.width - 210, this.height - 30, 140, 20, Text.of("Write Program to Board"), (buttonWidget) -> this.client.setScreen(this.parent)));
this.addDrawableChild(new ButtonWidget(this.width - 210, this.height - 55, 200, 20, Text.of("Microcraft Settings"), (buttonWidget) -> this.client.setScreen(new ModSettings(this))));
this.addDrawableChild(new )
}
private Text getToggleText() {
if (Microcraft.enabled) {
return Text.of("Microcraft: enabled");
} else {
return Text.of("Microcraft: disabled");
}
}
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);
}
}

View file

@ -1,6 +1,6 @@
package me.jonasjones.arduinoctrls.mixin; package me.jonasjones.microcraft.mixin;
import me.jonasjones.arduinoctrls.gui.screens.GuiHome; import me.jonasjones.microcraft.gui.screens.GuiHome;
import net.minecraft.client.gui.screen.GameMenuScreen; import net.minecraft.client.gui.screen.GameMenuScreen;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget;
@ -12,16 +12,17 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static me.jonasjones.microcraft.Microcraft.MOD_ID;
@Mixin(GameMenuScreen.class) @Mixin(GameMenuScreen.class)
public class GameMenuScreenMixin extends Screen { public class GameMenuScreenMixin extends Screen {
final Identifier ICON_TEXTURE = new Identifier("arduinoctrls", "logo_16x9.png");
protected GameMenuScreenMixin(Text title) {super(title);} protected GameMenuScreenMixin(Text title) {super(title);}
@Inject(at = @At("HEAD"),method = "initWidgets") @Inject(at = @At("HEAD"),method = "initWidgets")
private void gameMenuScreenButton(CallbackInfo ci) { private void gameMenuScreenButton(CallbackInfo ci) {
final Identifier ICON_TEXTURE = new Identifier("arduinoctrls", "gui/button_icon.png"); final Identifier ICON_TEXTURE = new Identifier(MOD_ID, "gui/button_icon.png");
int buttonX = this.width / 2 + 108; int buttonX = this.width / 2 + 108;
int buttonY = this.height / 4 + 8; int buttonY = this.height / 4 + 8;

View file

@ -1,6 +1,7 @@
package me.jonasjones.arduinoctrls.mixin; package me.jonasjones.microcraft.mixin;
import me.jonasjones.arduinoctrls.gui.screens.GuiHome; import me.jonasjones.microcraft.gui.screens.BoardScreen;
import me.jonasjones.microcraft.gui.screens.GuiHome;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.screen.TitleScreen;
import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget;
@ -12,23 +13,25 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static me.jonasjones.microcraft.Microcraft.MOD_ID;
@Mixin(TitleScreen.class) @Mixin(TitleScreen.class)
public abstract class ArduinoMixin extends Screen { public abstract class TitleScreenButtonMixin extends Screen {
protected ArduinoMixin(Text title) { protected TitleScreenButtonMixin(Text title) {
super(title); super(title);
} }
@Inject(at = @At("RETURN"), method = "initWidgetsNormal") @Inject(at = @At("RETURN"), method = "initWidgetsNormal")
private void titleScreenButton(int y, int spacingY, CallbackInfo ci) { private void titleScreenButton(int y, int spacingY, CallbackInfo ci) {
final Identifier ICON_TEXTURE = new Identifier("arduinoctrls", "gui/button_icon.png"); final Identifier ICON_TEXTURE = new Identifier(MOD_ID, "textures/gui/button_icon.png");
int buttonX = this.width / 2 + 104; int buttonX = this.width / 2 + 104;
int buttonY = y + spacingY * 2; int buttonY = y + spacingY * 2;
this.addDrawableChild(new ButtonWidget(buttonX, buttonY, 20, 20, Text.of(""), (button) -> { this.addDrawableChild(new ButtonWidget(buttonX, buttonY, 20, 20, Text.of(""), (button) -> {
this.client.setScreen(new GuiHome(this)); this.client.setScreen(new BoardScreen(this));
})); }));
this.addDrawableChild( new TexturedButtonWidget(buttonX, buttonY, 20, 20, 0, 0, 0, ICON_TEXTURE, 20, 20, (buttonWidget) -> 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 BoardScreen(this))));
} }
} }

View file

@ -0,0 +1,11 @@
package me.jonasjones.microcraft.object;
public class MicroBoard {
public String name;
public int id;
public String port;
public int baudrate;
public String model;
public PinMap pins = new PinMap();
}

View file

@ -0,0 +1,4 @@
package me.jonasjones.microcraft.object;
public class PinMap {
}

View file

@ -1,33 +1,32 @@
package me.jonasjones.arduinoctrls.util; package me.jonasjones.microcraft.util;
import jdk.jfr.StackTrace; import me.jonasjones.microcraft.Microcraft;
import me.jonasjones.arduinoctrls.ArduinoControls; import me.jonasjones.microcraft.config.ModConfigs;
import me.jonasjones.arduinoctrls.config.ModConfigs;
public class VerboseLogger { public class VerboseLogger {
public static void info(String message) { public static void info(String message) {
if (ModConfigs.VERBOSE) { if (ModConfigs.VERBOSE) {
ArduinoControls.VERBOSELOGGER.info(message); Microcraft.VERBOSELOGGER.info(message);
} }
} }
public void debug(String message) { public void debug(String message) {
if (ModConfigs.VERBOSE) { if (ModConfigs.VERBOSE) {
ArduinoControls.VERBOSELOGGER.debug(message); Microcraft.VERBOSELOGGER.debug(message);
} }
} }
public static void error(String message) { public static void error(String message) {
if (ModConfigs.VERBOSE) { if (ModConfigs.VERBOSE) {
ArduinoControls.VERBOSELOGGER.error(message); Microcraft.VERBOSELOGGER.error(message);
} }
} }
public static void trace( String message) { public static void trace( String message) {
if (ModConfigs.VERBOSE) { if (ModConfigs.VERBOSE) {
ArduinoControls.VERBOSELOGGER.trace(message); Microcraft.VERBOSELOGGER.trace(message);
} }
} }
public static void warn( String message) { public static void warn( String message) {
if (ModConfigs.VERBOSE) { if (ModConfigs.VERBOSE) {
ArduinoControls.VERBOSELOGGER.warn(message); Microcraft.VERBOSELOGGER.warn(message);
} }
} }
} }

View file

@ -0,0 +1,20 @@
package me.jonasjones.microcraft.util.boardmanager;
import com.fazecast.jSerialComm.SerialPort;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class SerialNumberScanner {
public static List<String> scan() {
SerialPort[] ports = SerialPort.getCommPorts();
List<String> list = new ArrayList<String>();
for (SerialPort port : ports) {
System.out.println(port.getSystemPortName());
list.add(port.getSystemPortName());
}
return list;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 570 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 566 B

After

Width:  |  Height:  |  Size: 566 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -1,12 +1,12 @@
{ {
"required": true, "required": true,
"minVersion": "0.8", "minVersion": "0.8",
"package": "me.jonasjones.arduinoctrls.mixin", "package": "me.jonasjones.microcraft.mixin",
"compatibilityLevel": "JAVA_17", "compatibilityLevel": "JAVA_17",
"mixins": [ "mixins": [
], ],
"client": [ "client": [
"ArduinoMixin", "TitleScreenButtonMixin",
"GameMenuScreenMixin" "GameMenuScreenMixin"
], ],
"injectors": { "injectors": {