Minecraft mod to subtly extend vanilla tools.
See the Minecraft written mod tutorial, specifically "Setting Up the Development Environment". Or, if that asset goes down, the mirrored asset in the project:
./docs/C - Setting Up the Development Environment.pdf
To view reference Minecraft files; assets, classes, etc. see the Java Dependencies
window in the VSCode explorer sidebar. Then under mods > Project and External Dependencies > forgeSrc-1.16.5-14.23.5.2847.jar
(or whatever Forge decomiled Minecraft to whilst running the gradle task to decompile it). Then within that Java package, there will be all of the reference structure and data of the game in its OG form. E.g. <forge>/assets/minecraft
matches the structure of mods/src/main/resources/assets/toolsplusplus
.
Once you are ready to test in the Minecraft client, simply run the Gradle task mods > forgegradle > runClient
. Sometimes I've found VSCode bugs out and gets stuck binding the run arrow to a specific gradle task, regardless of which one you are hovering over and when you click it. If it does this, right click on the gradle task and click "Run Task" instead of clicking the rows run button.
Edit the following line in ./mods/build.gradle
:
version = "1.16.5-X.Y" // This line, update the version
group = "com.othyn.toolsplusplus"
archivesBaseName = "toolsplusplus"
Simply run the Gradle task mods > build > jar
:
./mods/gradlew build
The mod will then be built to:
./mods/build/libs/toolsplusplus-1.16.5-X.Y.jar
Which can then just be placed into the Minecraft Forge mods directory and away you go!
If you do do a new build, please add it to the builds
directory in the root of the project:
./builds/toolsplusplus-1.16.5-X.Y.jar
Documentation of the issues encountered during the development process, given that this is my first exploration into Java and Minecraft modding.
Installed OpenJDK Java 8, brew cask install adoptopenjdk8
. Then as I had Java 13 installed, brew cask install java
, so removed it as it conflicted brew cask remove java
with Java 8.
To create the Java package, this is done at the top of the sidebar browser NOT manually by folder as the class isn't registered in the class map (like composer dump autoload class map), so at the top of the sidebar there are Java package containers that you can right click on and create a new package and name it something like com.othyn.mymodname and then create a class within that new package
Original item model assets found in ~/Library/Application Support/minecraft/versions/1.16.5/1.16.5/assets/minecraft/textures/items
after first unpacking the base 1.16.5.jar
with an unarchiver.
I then extract the iron colours from the iron bucket and used a sub-set of those to make a new pallet, which I've bundled with ./mods/src/main/resources/assets/toolsplusplus/textures/items/iron_stick.afpalette
. Then using Affinity Photo's ❤️ pixel tool, got to work transforming the tools into their new handle colours!
-
The
Area of Effect
logic, the horrible smelling duplicate code, needs abstracting out of theItemDiamond*Plus
classes and placing into an abstract class. Although need to think about logistics of that as the base class for each item extends differently. There may be a base shared class, such asItemTool
that I can base it off, but then the issue becomes then further extending for the type which is impossible... hmmm... -
Add achievements.