Line 1: |
Line 1: |
| {{Under construction}} <!-- Guide for other IDEs is missing --> | | {{Under construction}} <!-- Guide for other IDEs is missing --> |
| == What is Hot-swapping? == | | == What is Hot-swapping? == |
− | Hot-swapping is a feature letting you to swap-out parts of game without restarting it, allowing you to see resources and code changes quickly and tinker around with it more easily. | + | Hot-swapping is a feature letting you to swap-out code of your mod without restarting game, allowing you to see changes quickly and tinker around with it more easily. |
| | | |
− | {{Tip|It is recommended that you run the game with debug mode in order to use hot-swapping, as code changes will only get applied under debug mode.}}
| + | In this article, we will also be covering how to swap resources so that you can change models and textures, and see it in-game quickly. |
| | | |
− | == Hot-swapping resources == | + | == Swapping resources == |
− | === Hot-swapping resources on Intellij Idea === | + | === Swapping resources on Intellij Idea === |
| After you made changes to resource file, hit this "hammer icon", or build button. | | After you made changes to resource file, hit this "hammer icon", or build button. |
| [[File:Intellij_idea_menu_for_hot_swap_doc.png]] | | [[File:Intellij_idea_menu_for_hot_swap_doc.png]] |
Line 18: |
Line 18: |
| [[File:Debugmodeintellij.png]] | | [[File:Debugmodeintellij.png]] |
| === Hot-swapping code on Intellij Idea === | | === Hot-swapping code on Intellij Idea === |
− | It's more simple than hot-swapping resources. After making changes to the code, just hit the build button. Then It will show you this message on bottom-left corner. If your mod project is big and it takes a long time to do so, hit <code>Build -> Recompile "currently opened file's name"</code>, this will only recompile file that is currently open. This option will not be visible if you don't have compile-able file opened. Files with extensions such as <code>.java</code> or <code>.kt</code> are compile-able. | + | It's more simple than swapping out resources. After making changes to the code, just hit the build button. Then It will show you this message on bottom-left corner. If your mod project is big and it takes a long time to do so, hit <code>Build -> Recompile "currently opened file's name"</code>, this will only recompile file that is currently open. This option will not be visible if you don't have compile-able file opened. Files with extensions such as <code>.java</code> or <code>.kt</code> are compile-able. |
| [[File:Hotswapmessage.png]] | | [[File:Hotswapmessage.png]] |
| If you changed class's schematics then will show you error messages saying it is unsupported. Head to Applying schema changes section if you need to change schematics. | | If you changed class's schematics then will show you error messages saying it is unsupported. Head to Applying schema changes section if you need to change schematics. |
| | | |
| === Applying schema changes === | | === Applying schema changes === |
− | This requires more setup and specific find of JDK, Jetbrains Runtime (JBR). The reason why JBR is suggested is that it has [https://dcevm.github.io/ DCEVM](It allows class schema change in debug mode) by default and requires less configuration than other JDKs, such as hot-swap agent and IDE-specific plugins, etc. Although, there isn't exactly "installer" for it, you would have to download and unpack it manually. | + | This requires more setup and specific JDK, Jetbrains Runtime (JBR). |
| + | But it will greatly accelerate development process and make tinkering easier by allowing you to: |
| + | * Create/Remove classes |
| + | * Add/Rename/Remove variables/methods |
| + | * Change value of final constants |
| + | All without restarting the game. |
| + | |
| + | The reason why JBR is suggested over other JDKs is that it has [https://dcevm.github.io/ DCEVM](It allows class schema change in debug mode) by default and requires less configuration, such as hot-swap agent and IDE-specific plugins, etc. Although, there isn't exactly "installer" for it, you would have to download and unpack it manually. |
| | | |
| ==== Downloading JBR ==== | | ==== Downloading JBR ==== |
| Download JBR with right java version and platform from here: https://github.com/JetBrains/JetBrainsRuntime/releases | | Download JBR with right java version and platform from here: https://github.com/JetBrains/JetBrainsRuntime/releases |
− | There are many different "flavors" but I recommend you downloading "JBR (vanilla)" one if you don't know what are these. | + | There are many different "flavors" but I recommend you downloading "JBR (vanilla)" one if you don't know what these are. |
| After downloading has finished unpack it into suitable location | | After downloading has finished unpack it into suitable location |
| | | |
Line 63: |
Line 70: |
| Then re-generate run configurations by running <code>genIntellijRuns</code> | | Then re-generate run configurations by running <code>genIntellijRuns</code> |
| | | |
− | Done! Now launch one of these on debug mode and you can now change classes' schematic as much as you want, it will swap those just fine. | + | Done! Now launch one of these on debug mode and you can now change classes' schematic as much as you want, and then hit build button. it will swap those just fine. |
| [[File:Runconfigs.png]] | | [[File:Runconfigs.png]] |