From 5b0ce01fde6a982c9bb2121ddd8da5d6e1406e08 Mon Sep 17 00:00:00 2001 From: Jonas_Jones <91549607+J-onasJones@users.noreply.github.com> Date: Tue, 20 Dec 2022 03:33:35 +0100 Subject: [PATCH] added board icon selection screen --- .gradle/7.4/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/7.4/checksums/md5-checksums.bin | Bin 26947 -> 26997 bytes .gradle/7.4/checksums/sha1-checksums.bin | Bin 34535 -> 34751 bytes .../7.4/executionHistory/executionHistory.bin | Bin 1577971 -> 1891042 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.4/fileHashes/fileHashes.bin | Bin 39147 -> 39447 bytes .gradle/7.4/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.4/fileHashes/resourceHashesCache.bin | Bin 31519 -> 34069 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes build.gradle | 4 + .../board/MicrocontrollerBoardIcon.java | 7 ++ .../microcraft/gui/screens/BoardScreen.java | 4 +- .../board/BoardIconSelectionScreen.java | 50 ++++++++++++ .../gui/widget/ArduinoNanoWidget.java | 69 ---------------- .../gui/widget/BoardConfigwidget.java | 76 ++++++++++++++++++ 15 files changed, 139 insertions(+), 71 deletions(-) create mode 100644 src/main/java/me/jonasjones/microcraft/board/MicrocontrollerBoardIcon.java create mode 100644 src/main/java/me/jonasjones/microcraft/gui/screens/board/BoardIconSelectionScreen.java delete mode 100644 src/main/java/me/jonasjones/microcraft/gui/widget/ArduinoNanoWidget.java create mode 100644 src/main/java/me/jonasjones/microcraft/gui/widget/BoardConfigwidget.java diff --git a/.gradle/7.4/checksums/checksums.lock b/.gradle/7.4/checksums/checksums.lock index be9e907368e99c5ec0affb23e859429bf62e6d1b..d5154870a662645819752ad5a34c4a669c4c6093 100644 GIT binary patch literal 17 VcmZR!uih~CY3$E$3}C<{4*)(u1zi9D literal 17 VcmZR!uih~CY3$E$3}C>-1pq!P1xNq@ diff --git a/.gradle/7.4/checksums/md5-checksums.bin b/.gradle/7.4/checksums/md5-checksums.bin index 3029ca10e253bd82bfbec966be90896188f1fd9e..01454418b56e9de0741e7f89b1421c644b4dd684 100644 GIT binary patch delta 94 zcmX?niSg?t#tkMCjH@=AN-SjJXPa^CVqWAy1~ABU-h5Wdi}OrBSa_b86d3(0Bz79e*gdg delta 37 vcmV+=0NVfc(gDNL0kAX}0jaY!7@-2Q?ixW20uSl2A@~=uFfa(SK}Z52Dc}wS diff --git a/.gradle/7.4/checksums/sha1-checksums.bin b/.gradle/7.4/checksums/sha1-checksums.bin index 7a5ec8c228606e062c3a7750f7859297eccc57bf..cc2a6fcdd8da37aae67161ef121d9adf325c0f4d 100644 GIT binary patch delta 306 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 delta 634 zcmW;GZAep57{Kw}-N!k-zMQ4rb~nKctwoqww>Psd86r!xG9@T9)66##oK9^~n2_`~ zHf5f^H1oq|QCKTvv{mzpU|7OtFCPk0Tt-1;v5Fvqp3{XN{LgdG;hd!jOKj}8Bb`ff zW(;v2U!-)kbI~*;=`Zo(Ir~G8-daHaJmS`kKugEChq4i1U;0T6)T`Wh#TD9f{8xy zN(3&mWyCAVU}t3~`eJahIxr^Xz#yx>9^puw3u~To&DuRc*)XeDFl=8ktW@lmq&(I5#!_t`EwM5CSSnGPni?fZ?B`@^2rXP3m-ba z`3K;JNZH)X$5!Lq%QE%f;@qR#{7SDtxva?ftx diff --git a/.gradle/7.4/fileHashes/fileHashes.bin b/.gradle/7.4/fileHashes/fileHashes.bin index 26ac9070c098107adb4311884d7358f8d62d7e30..06dd9b1a77047a0230874b3c059255c941a3f0c7 100644 GIT binary patch delta 913 zcmaF8k!kuCrVS<%jEgs$N-SjM=bXAHVBfuN1~8b}xcRKCAR~WA+HUck6P2NY{+qAL zC9n#dTD8XJz_cr75YZX0H|wfMFbUi^e8*)*+RATGwVOBFs&%sPTgq(#5`g3&F0lRIC*qEeP=*K zI8RJ&EEk^4*DA~c6g)fGHbZK%eX9tF^L%o6s~(84XL2Wmv32rp2;T+GyRv=4n^4)T&$&BqHWrpjf4bGVJuh!gUGqb^&M&;YpN!%>;T)> zIQce&F<~-qCs<_WWP1o>?&LxUW6k8n5XR=oACsjfzwZPGU+iS>JShcl`P9uCkv94_ zjz8yfn)LN0#6JN?!4^uptlaF_wTiDEH4F@%S$ElP`+wrl@?MvNe@c;vev>cYgYSEDzA s)kw%chp1r`0@7$Pvj5|kRUwDxhI~A5+1BA!%R-2$zKswa98w@100CDIYybcN delta 526 zcmbQfh3WN1rVS<%jB_`eN-SjE{7#mGaWkKMIP2zG6#=HrOVt`#Hrr_*=h`f5mc_}W zc5Lt|&s!sw`G%QQ zWoJ11lysXWux!Tp$qZn?pS;<;dIu+uPG+nEM1=FiL0$$YKCEI>h{$+j6%lkHnY zKpgAI;jMZghW6x62t#A?ZU{qf@>>YQezJTUSdHW4KnTNSGJl2CY73zt!E4*G=W$Vgay)zU!;Dyu%SGAn~?goDRQ}B_h-h2 zPWEmG+Y>#x7Q%?1ydJ_xp8OEPNS!R)p=Sp)z8Gi{$S^)2fo6OgkD6xfdY_#V&Y`ON zKb+nVH69pDARxA3a(#yy$ji->S9XBy>zaHU!swgK+X)t#IN2V;m^8T%!k9XFF@!OF z^2cPU$?rSCeixnWohPMmvEKM`U)YoUxR-9XSo}|UKrD>s0ox}nr?%O#YZV^=b`hfQ diff --git a/.gradle/7.4/fileHashes/fileHashes.lock b/.gradle/7.4/fileHashes/fileHashes.lock index 811fa7c6ae2cfa3c493ee2fe7a70ad1774bc6507..0b71b18c9ecea1a52be5b22505f13da9423efebb 100644 GIT binary patch literal 17 UcmZQ(pX8lY#>|n<00x5A035Rdh5!Hn literal 17 UcmZQ(pX8lY#>|n<00tZj038Mb;s5{u diff --git a/.gradle/7.4/fileHashes/resourceHashesCache.bin b/.gradle/7.4/fileHashes/resourceHashesCache.bin index ede8d0e22c6473d3c512f4f3300901f960eb1b9b..1167e7b8c2580dc2f1511fe2b19c3920bb55287c 100644 GIT binary patch delta 4071 zcmZvfc|4R`AHa=Bw)>2RY%?(=gT}tgwUi=cxrIo?wN>_TWtp+vY;kiUDIv1FL`;^_ zSaM5}P$q*ch17K`DvG3+_j%^JugCNG%s=1x{(k3o&iS2Z$(zSyCbQpE7r{IN8Y0Tr z7=F)DtC2^JZ2!Bc=Yg|G43r~Z!8<3C0<&mdzz`uqMFu0<=Lx%DMiB?^M81;J!u{QT zv5!`PVNAgfHY^%|A!SXCt5|8{BViiP$+9nUgb_`pm8@Y-r2!N1 z7|7*fVtSZ)0>b?V+vs&`3(%q=s?M?QuAb71I!|fX#6`(*-3Nd z71H`I*aTr3Wx&cX_tH;Bamto8!*euCk|74W+(IgU;7;&C@+yG@IUOiasctCWxDCnM z0cz!ZAfY7oUCjqZ5mrJIk}tqOxs^lVewUJA7;6r0C|G0pil5oj(tE#O(xyXK>=O{pIE8tAlf%X~>SM&Wq+ALNMoFh}QLWhoIX;xfE zii%zUoQhPe_(^>6bYwN_Q0RduMQ`l(Y$CgzQ@tos)f^aB)W%Bu`0&yziCTfcXMkVH z28wO!@R0KGhgoDWIIN@t8CA#rno({Kvv@O*p!5|>8lYNzXr0;u!?;!uqHF`@|ITn2 z>iZK(SPkgPR6`{px*Dze++`&C6Kj^rY+nT@+AnX0IYs{;u6*S#QEJc>;VwW!MH{Q! z=&``~L$w8lQP+Wo%1bD5UcgiB66-t)1ASFVNGsvOi{P9*nprvA%#)oe0TpbDeNcw?J4rjiBCx zF|;n;(sAV*!4?T8u!^^_H7k74-!BXExTt@4qU>YopVS9oPMHFe8j@JstAn$Jyo_rw zjF14|HDVyLjUzRrY7u5Jq98=m8|x78#LeEeqY{SkvVftfO*&G~RmF58Jcl8b!5YeG z2FDY_pScg_k@bL6%l4pWOL`^QMib|jt~+|cqSxrC{|mwuW$ z4#T){R#KON%lV(~{1Fh^-VQ;-qz_TM&*V5-ptJ6-j@xxhLS0%`+WM^(sy36>X zS+sGU>qWnRxZKn6Zr8rM!R>Zv<1i=1H3Huic8Xir`pO%pZ>v4Mu2%n@ftjcKjg&{H zC;1whuuss&K>wR%M<8Ymf=c6a4*q#CC${s!W{o)Gk~M?E zYHr_pQ})zs_iIH!*S* zPYJ*Wy*tp{?#7Qc?9)=F*d{{u^w>*Ijlbv>M;mv`%YH44A8nSmNOWW4=uS*WD;1tW z`vOE-154;?!^h8@rvoET9Ob|%GZ~L^!5N7%yg6UyGCC@qbU>hCQO@!UMddBl)iM=r z+*u4ws4i~k>f@6fBwkP4pko{BhXq8drs9O@ud4V#gzs7oFm#OjmrY`7Ja@Yi-pz=C z{$~*z+yf{zdc8%R>gUd4S}K#?R;8`Qv-Yx4zt^*<#p2_&SC=2iZaL-+j@#oXLdIJ- z*)i#mcj#_q-CzhERra%JC{xL)#CtYZZJ{d73T=2DG`x~a=+Jgq_}QxL;^)=p_PWgz zSFBKHxQ44Zhw-cv~}XsF%Dqkg`+5@C!V#NGS5+`js@U&H&|uY&ls0I zw{CML>ZFDX8tBKM^VSRmOdh^wV)fiQv3|$Z3u0))+FpKy{QkygpZvV^Ke_L9uNnUw zth~^E=ZV*}33YOK@2wsC|6WsA^9iB!Ln8_AKA@kCL_ty7JXWn_pCW+^}|uR|I;Eh@+z`=G1}*^{U^=P zdGYg`!g(sxpZlG7Ho>%2S$$z%H^H-R)xnEYoM~sB?I7-B#v8QJ_c&WMgJ~_?E+^q} z)jjrK4@X_rcI|yFxcQ;~mm=VEEbHRypZ`K9DR{ype`enuAZe?1|8cPBZ=lr~2YD|p ze26lN-$p6vFqyMB2{1M|%9bJB?Xr|)hdlCGz@NQAXXn#r8L?fnpKdV6X0x=-Ezx5w zyCqhtHr*+o5qN+Vv4j|C!~f2-gD|lv`z0y9vW{V?wPvh*SFJv91h7mC`gCdFq9WeO zV^oCa_O~^KWrVp%?>o?9dP>t29JC!S-rzY!-o}vot>d7#*4we8To(D+fEa?)U~?>? m8S66Z?+v})Y~ywhowr2xdx*8}T<5NBjc@3KORF!Q+y4txhUwe@ delta 268 zcmV+n0rUQqiUObZ0kAX}0e_P<7%-E47Iy(WMGlWiz5v$iNd z0<$G6I02J&EHRV5EMT)XEtmn5<}OFGMK5Rplie^elO{2DleIB;lSMLMlf5!9lLa$L zlV&q8ldd!GleIKSlNL31lhrjalN~nMlMXi*vpqKn0h3-h7?X}TkCQby8M9_N#{rXd zI~bFtJ9(2fJYSQoJTQ|DJxY^rJzkULJz%qSK2QOZ-9Pb@=0JFpc0ov!)8Nh&92mnGM1rz`P literal 17 VcmZQR^Y!uEQ#$N>8Nh(C2LM8s1&jay diff --git a/build.gradle b/build.gradle index 84c6140..a6e1a1c 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,10 @@ repositories { } dependencies { + implementation 'org.projectlombok:lombok:1.18.22' + implementation 'org.projectlombok:lombok:1.18.22' + implementation 'org.projectlombok:lombok:1.18.22' + // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" diff --git a/src/main/java/me/jonasjones/microcraft/board/MicrocontrollerBoardIcon.java b/src/main/java/me/jonasjones/microcraft/board/MicrocontrollerBoardIcon.java new file mode 100644 index 0000000..7a3f604 --- /dev/null +++ b/src/main/java/me/jonasjones/microcraft/board/MicrocontrollerBoardIcon.java @@ -0,0 +1,7 @@ +package me.jonasjones.microcraft.board; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.minecraft.util.Identifier; + +public record MicrocontrollerBoardIcon(Identifier boardTextureHorizontal, Identifier boardTextureVertical, int width, int height) {} \ No newline at end of file diff --git a/src/main/java/me/jonasjones/microcraft/gui/screens/BoardScreen.java b/src/main/java/me/jonasjones/microcraft/gui/screens/BoardScreen.java index 3aa3bd1..5c994f6 100644 --- a/src/main/java/me/jonasjones/microcraft/gui/screens/BoardScreen.java +++ b/src/main/java/me/jonasjones/microcraft/gui/screens/BoardScreen.java @@ -1,6 +1,6 @@ package me.jonasjones.microcraft.gui.screens; -import me.jonasjones.microcraft.gui.widget.ArduinoNanoWidget; +import me.jonasjones.microcraft.gui.widget.BoardConfigwidget; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.screen.Screen; @@ -30,7 +30,7 @@ public class BoardScreen extends Screen { this.addDrawableChild(ButtonWidget.builder(ScreenTexts.DONE, (button) -> { this.client.setScreen(this.parent); }).dimensions(this.width / 2 - 100, this.height / 6 + 168, 200, 20).build()); - this.client.setScreen(new ArduinoNanoWidget(this.parent)); + this.client.setScreen(new BoardConfigwidget(this.parent)); } public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { diff --git a/src/main/java/me/jonasjones/microcraft/gui/screens/board/BoardIconSelectionScreen.java b/src/main/java/me/jonasjones/microcraft/gui/screens/board/BoardIconSelectionScreen.java new file mode 100644 index 0000000..646f012 --- /dev/null +++ b/src/main/java/me/jonasjones/microcraft/gui/screens/board/BoardIconSelectionScreen.java @@ -0,0 +1,50 @@ +package me.jonasjones.microcraft.gui.screens.board; + +import me.jonasjones.microcraft.Microcraft; +import me.jonasjones.microcraft.board.MicrocontrollerBoardIcon; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.gui.widget.TexturedButtonWidget; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +import static me.jonasjones.microcraft.gui.widget.BoardConfigwidget.BOARD_TEXTURE; + +public class BoardIconSelectionScreen extends Screen { + + private final Screen parent; + + private final MicrocontrollerBoardIcon NANO_BOARD_TEXTURE = new MicrocontrollerBoardIcon(new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-nano-sideways.png"), new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-nano.png"), 128, 52); + private final MicrocontrollerBoardIcon UNO_BOARD_TEXTURE = new MicrocontrollerBoardIcon(new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-uno-sideways.png"), new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-uno.png"), 128, 90); + private final MicrocontrollerBoardIcon PROMINI_BOARD_TEXTURE = new MicrocontrollerBoardIcon(new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-pro_mini-sideways.png"), new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-pro_mini.png"), 97, 52); + + public BoardIconSelectionScreen(Screen parent) { + super(Text.of("Select Board Icon")); + this.parent = parent; + } + + protected void init() { + this.addDrawableChild(new TexturedButtonWidget(this.width / 2 - 138, this.height / 2 - 85, NANO_BOARD_TEXTURE.width(), NANO_BOARD_TEXTURE.height(), 0, 0, 0, NANO_BOARD_TEXTURE.boardTextureHorizontal(), NANO_BOARD_TEXTURE.width(), NANO_BOARD_TEXTURE.height(), (buttonWidget) -> { + BOARD_TEXTURE = NANO_BOARD_TEXTURE; + this.client.setScreen(this.parent); + })); + this.addDrawableChild(new TexturedButtonWidget(this.width / 2 - 138, this.height / 2 - 20, UNO_BOARD_TEXTURE.width(), UNO_BOARD_TEXTURE.height(), 0, 0, 0, UNO_BOARD_TEXTURE.boardTextureHorizontal(), UNO_BOARD_TEXTURE.width(), UNO_BOARD_TEXTURE.height(), (buttonWidget) -> { + BOARD_TEXTURE = UNO_BOARD_TEXTURE; + this.client.setScreen(this.parent); + })); + this.addDrawableChild(new TexturedButtonWidget(this.width / 2 + 10, this.height / 2 - 85, PROMINI_BOARD_TEXTURE.width(), PROMINI_BOARD_TEXTURE.height(), 0, 0, 0, PROMINI_BOARD_TEXTURE.boardTextureHorizontal(), PROMINI_BOARD_TEXTURE.width(), PROMINI_BOARD_TEXTURE.height(), (buttonWidget) -> { + BOARD_TEXTURE = PROMINI_BOARD_TEXTURE; + this.client.setScreen(this.parent); + })); + this.addDrawableChild(ButtonWidget.builder(Text.of("Cancel"), (button) -> { + this.client.setScreen(this.parent); + }).dimensions(this.width / 2 - 100, this.height / 6 + 168, 200, 20).build()); + } + + 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); + } +} diff --git a/src/main/java/me/jonasjones/microcraft/gui/widget/ArduinoNanoWidget.java b/src/main/java/me/jonasjones/microcraft/gui/widget/ArduinoNanoWidget.java deleted file mode 100644 index 7dff256..0000000 --- a/src/main/java/me/jonasjones/microcraft/gui/widget/ArduinoNanoWidget.java +++ /dev/null @@ -1,69 +0,0 @@ -// -// 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(ButtonWidget.builder(Text.of("[Profile]"), (buttonWidget) -> this.client.setScreen(new ProfileSelectionScreen(this))).dimensions(this.width / 2 - 100, 40, 200, 20).build()); - - //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(ButtonWidget.builder(Text.of("About Microcraft"), (buttonWidget) -> this.client.setScreen(new ModCreditsScreen(this))).dimensions(this.width / 2 - 100, this.height - 30, 200, 20).build()); - this.addDrawableChild(ButtonWidget.builder(Text.of("Advanced Pin Mapping"), (buttonWidget) -> this.client.setScreen(new AdvancedPinMappingScreen(this))).dimensions(this.width / 2 - 100, this.height - 55, 200, 20).build()); - this.addDrawableChild(ButtonWidget.builder(Text.of("Advanced Board Settings"), (buttonWidget) -> this.client.setScreen(new AdvancedSettingsScreen(this))).dimensions(this.width / 2 - 100, this.height - 80, 200, 20).build()); - this.addDrawableChild(ButtonWidget.builder(getToggleText(), (buttonWidget) -> Microcraft.toggle()).dimensions(this.width / 2 - 100, this.height - 105, 200, 20).build()); - this.addDrawableChild(ButtonWidget.builder(Text.of("Done"), (buttonWidget) -> this.client.setScreen(this.parent)).dimensions(this.width - 60, this.height - 30, 50, 20).build()); - this.addDrawableChild(ButtonWidget.builder(Text.of("Write Program to Board"), (buttonWidget) -> this.client.setScreen(this.parent)).dimensions(this.width - 210, this.height - 30, 140, 20).build()); - this.addDrawableChild(ButtonWidget.builder(Text.of("Microcraft Settings"), (buttonWidget) -> this.client.setScreen(new ModSettings(this))).dimensions(this.width - 210, this.height - 55, 200, 20).build()); - - - } - 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); - } - - - -} diff --git a/src/main/java/me/jonasjones/microcraft/gui/widget/BoardConfigwidget.java b/src/main/java/me/jonasjones/microcraft/gui/widget/BoardConfigwidget.java new file mode 100644 index 0000000..11f7598 --- /dev/null +++ b/src/main/java/me/jonasjones/microcraft/gui/widget/BoardConfigwidget.java @@ -0,0 +1,76 @@ +// +// 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.board.MicrocontrollerBoardIcon; +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.BoardIconSelectionScreen; +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.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; + +@Environment(EnvType.CLIENT) +public class BoardConfigwidget extends Screen { + + private final Screen parent; + + //public static Identifier BOARD_TEXTURE = new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-nano.png"); + + public static MicrocontrollerBoardIcon BOARD_TEXTURE = new MicrocontrollerBoardIcon(new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-nano-sideways.png"), new Identifier(Microcraft.MOD_ID, "textures/boards/arduino-nano.png"), 128, 52); + + public BoardConfigwidget(Screen parent) { + super(Text.of("Microcraft Configuration")); + this.parent = parent; + } + protected void init() { + //TODO: get current profile + addDrawableChild(ButtonWidget.builder(Text.of("[Profile]"), (buttonWidget) -> this.client.setScreen(new ProfileSelectionScreen(this))).dimensions(this.width / 2 - 50, this.height - 52, 100, 20).build()); + + //TODO: make Board texture clickable to select different texture. + this.addDrawableChild(new TexturedButtonWidget(this.width / 2 - (BOARD_TEXTURE.height() / 2), this.height / 2 - (BOARD_TEXTURE.height() / 2) - 45, BOARD_TEXTURE.height(), BOARD_TEXTURE.width(), 0, 0, 0, BOARD_TEXTURE.boardTextureVertical(), BOARD_TEXTURE.height(), BOARD_TEXTURE.width(), (buttonWidget) -> this.client.setScreen(new BoardIconSelectionScreen(this)))); + + /*this.addDrawableChild(ButtonWidget.builder(Text.of("About Microcraft"), (buttonWidget) -> this.client.setScreen(new ModCreditsScreen(this))).dimensions(10, this.height - 30, 200, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Advanced Pin Mapping"), (buttonWidget) -> this.client.setScreen(new AdvancedPinMappingScreen(this))).dimensions(this.width / 2 - 100, this.height - 55, 200, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Advanced Board Settings"), (buttonWidget) -> this.client.setScreen(new AdvancedSettingsScreen(this))).dimensions(this.width / 2 - 100, this.height - 80, 200, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Done"), (buttonWidget) -> this.client.setScreen(this.parent)).dimensions(this.width - 60, this.height - 30, 50, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Write to Board and Quit"), (buttonWidget) -> this.client.setScreen(this.parent)).dimensions(this.width - 210, this.height - 30, 140, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Microcraft Settings"), (buttonWidget) -> this.client.setScreen(new ModSettings(this))).dimensions(this.width - 210, this.height - 55, 200, 20).build());*/ + + this.addDrawableChild(ButtonWidget.builder(Text.of("About"), (buttonWidget) -> this.client.setScreen(new ModCreditsScreen(this))) + .dimensions(this.width / 2 - 154, this.height - 28, 75, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Pin Mapping"), (buttonWidget) -> this.client.setScreen(new AdvancedPinMappingScreen(this))) + .dimensions(this.width / 2 + 4 + 50, this.height - 52, 100, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Board Settings"), (buttonWidget) -> this.client.setScreen(new AdvancedSettingsScreen(this))) + .dimensions(this.width / 2 - 154, this.height - 52, 100, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Done"), (buttonWidget) -> this.client.setScreen(this.parent)) + .dimensions(this.width / 2 + 4 + 76, this.height - 28, 75, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Save"), (buttonWidget) -> this.client.setScreen(this.parent)) + .dimensions(this.width / 2, this.height - 28, 75 , 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.of("Settings"), (buttonWidget) -> this.client.setScreen(new ModSettings(this))) + .dimensions(this.width / 2 - 75, this.height - 28, 70, 20).build()); + + + } + + 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); + } + + + +}