User Tools

Site Tools


tutorial:armor_trim

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutorial:armor_trim [2024/07/03 06:33] solidblocktutorial:armor_trim [2024/08/26 01:26] (current) solidblock
Line 5: Line 5:
 If you, and lets be real that's most of you, are just here to copy and paste, don't worry all important things are in big nice code blocks and the GitHub repo is at the end of this page. :) If you, and lets be real that's most of you, are just here to copy and paste, don't worry all important things are in big nice code blocks and the GitHub repo is at the end of this page. :)
  
-===== Registering the Item ===== +===== Register the item ===== 
-In theory we don't need to add a new item since this is more data packed than it is modded, but if you would do this using only a data pack we would be missing the nice tooltip in the description of the Armor Trim item.+In theory we don't need to add a new item since this is more data packed than it is modded, but if you would do this using only a data pack we would be missing the nice tooltip in the description of the armor trim item
 + 
 +To register this item we need to register it as a new ''%%<yarn class_8052>.<yarn method_48418>(Identifier.of("tutorial", trimId))%%'', where the ''trimId'' can be separate from the actual item name, but for ease of making we will use the same for both. For the rest we will just need the basic thingamajig of [[items|item]] registration. Here we assume you have written a convenient static ''register'' method (see [[items]] tutorial).
  
-To register this item we need to register it as a new ''<yarn class_8052>.<yarn method_48418>(Identifier.of("tutorial", trimId))'', where the ''trimId'' can be separate from the actual item name, but for ease of making we will use the same for both. For the rest we will just need the basic thingamajig of [[item]] registration. Here we assume you have written a convenient static ''register'' method (see [[item]] tutorial). 
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
 public final class TutorialItems { public final class TutorialItems {
     // adding a new SmithingTemplateItem named "TUTORIAL_ARMOR_TRIM" with the MODID as "tutorial" and trimid as "tutorial_trim"      // adding a new SmithingTemplateItem named "TUTORIAL_ARMOR_TRIM" with the MODID as "tutorial" and trimid as "tutorial_trim" 
-    public static final class_1792 TUTORIAL_ARMOR_TRIM = register(class_8052.method_48418(new class_2960("tutorial", "tutorial_armor_trim")), "tutorial_item_trim");+    public static final class_1792 TUTORIAL_ARMOR_TRIM = register("tutorial_item_trim", class_8052.method_48418(new class_2960("tutorial", "tutorial_armor_trim")));
 } }
 </yarncode> </yarncode>
 +
 and in the ''ModInitializer'' class, initialize the class yet, if you haven't done it yet: and in the ''ModInitializer'' class, initialize the class yet, if you haven't done it yet:
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
Line 26: Line 28:
  
 And then just normal item textures if you desire so, but **NO LANG**, that comes later. And then just normal item textures if you desire so, but **NO LANG**, that comes later.
-===== Making it smithing table compatible. (drawing the rest of the owl) =====+ 
 +===== Make it compatible with smithing table compatible =====
 To make it work with the smithing table, which is the goal, we need to create three files. To make it work with the smithing table, which is the goal, we need to create three files.
-==== Defining the armor trim ==== +==== Define the armor trim ==== 
-First we need to create a armor trim info file. This file is named ''tutorial_armor_trim.json'' and goes under ''resources/data/minecraft/trim_pattern/''. These and any following names and paths have to be **exactly** like displayed (obviously you need to change namespace and item name, but you get what I mean).+First we need to create a armor trim info file. This file is named ''tutorial_armor_trim.json'' and goes under ''resources/data/<namespace>/trim_pattern/''. These and any following names and paths have to be **exactly** like displayed (obviously you need to change namespace and item name, but you get what I mean).
  
 Into this file we need to put these three things: Into this file we need to put these three things:
Line 37: Line 40:
  
 And this is what that looks like in the json file: And this is what that looks like in the json file:
-<code JavaScript>+<file JavaScript resources/data/tutorial/trim_pattern/tutorial_armor_trim.json>
 {   {  
   "asset_id": "minecraft:tutorial_armor_trim",     "asset_id": "minecraft:tutorial_armor_trim",  
Line 45: Line 48:
   "template_item": "tutorial:tutorial_armor_trim"     "template_item": "tutorial:tutorial_armor_trim"  
 } }
-</code>+</file>
  
-==== Smithing recipe ====+==== Add smithing recipe ====
 The second file we need, is the smithing trim recipe. The second file we need, is the smithing trim recipe.
  
-The file can be named whatever, but it's recommended to name it something related like ''tutorial_armor_trim_smithing_trim.json'' and it is placed at ''resources/data/minecraft/recipes/''. Other than that, this is just a recipe file and nothing interesting: +The file can be named whatever, but it's recommended to name it something related like ''tutorial_armor_trim_smithing_trim.json'' and it is placed at ''resources/data/<namespace>/recipe/'' (since 1.21) or ''resources/data/<namespace>/recipes/'' (before 1.21). Other than that, this is just a recipe file and nothing interesting: 
-<code JavaScript>+<file JavaScript resources/data/tutorial/recipe/tutorial_armor_trim_smithing_trim.json>
 {   {  
   "type": "minecraft:smithing_trim",     "type": "minecraft:smithing_trim",  
Line 64: Line 67:
   }     }  
 } }
-</code>+</file>
 Take note that only the last parameter ever changes and the first three stay the same. Take note that only the last parameter ever changes and the first three stay the same.
  
-==== Adding it to tags ==== +==== Add it to tags ==== 
-The third file is technically optional, but we will still make it, because it's needed for the [[tag]] search in the creative inventory and maybe something else (idk, haven't checked). It is named ''trim_templates.json'' and goes to ''resources/data/minecraft/tags/items/''.+The third file is technically optional, but we will still make it, because it's needed for the [[tags|tag]] search in the creative inventory and maybe something else. It is named ''trim_templates.json'' and goes to ''resources/data/<namespace>/tags/item/'' (since 1.21) or ''resources/data/<namespace>/tags/items/'' (before 1.21).
  
 Inside the file is: Inside the file is:
-<code JavaScript>+<file JavaScript resources/data/minecraft/tags/item/trim_templates.json>
 {   {  
   "replace": false,     "replace": false,  
Line 78: Line 81:
   ]     ]  
 } }
-</code>+</file>
  
 Now if we would theoretically test this, it would work but we would be greeted by the beautiful missing texture texture. So we need to: Now if we would theoretically test this, it would work but we would be greeted by the beautiful missing texture texture. So we need to:
Line 85: Line 88:
 Lets begin with making the trim textures first and then do the lang. Lets begin with making the trim textures first and then do the lang.
  
-==== Trim textures ====+==== Add textures ====
 The first file we need just points to the different texture locations and that's pretty much it. The first file we need just points to the different texture locations and that's pretty much it.
  
-The file is named ''armor_trims.json'' and belongs into the directory ''resources/assets/minecraft/atlases/''. Inside is: +The file is named ''armor_trims.json'' and belongs into the directory ''resources/assets/<namespace>/atlases/''. Inside is: 
-<code JavaScript>+<file JavaScript resources/assets/minecraft/atlases/armor_trims.json>
 {   {  
   "sources": [     "sources": [  
Line 151: Line 154:
   ]     ]  
 } }
-</code>+</file>
  
 Now, the file has a lot inside but the only change is this tiny part: Now, the file has a lot inside but the only change is this tiny part:
Line 170: Line 173:
  
 In the ''en_us.json'' file under: ''resources/assets/tutorial/lang/'', we need to put this, just mentioned, ugly text. Like this: In the ''en_us.json'' file under: ''resources/assets/tutorial/lang/'', we need to put this, just mentioned, ugly text. Like this:
-<code JavaScript>+<file JavaScript resources/assets/tutorial/lang/en_us.json>
 {   {  
   "trim_pattern.tutorial.tutorial_armor_trim": "Tutorial Armor Trim"     "trim_pattern.tutorial.tutorial_armor_trim": "Tutorial Armor Trim"  
 } }
-</code>+</file>
 But with this final step, we are done. Have fun with your new armor trims. But with this final step, we are done. Have fun with your new armor trims.
  
 If you have any more questions you can ask them on the Farbic discord and ping me @herrchaos or just look at the source code of this tutorial at:  [[https://github.com/HerrChaos/smithing-template-tutorial-mod|GitHub]] If you have any more questions you can ask them on the Farbic discord and ping me @herrchaos or just look at the source code of this tutorial at:  [[https://github.com/HerrChaos/smithing-template-tutorial-mod|GitHub]]
tutorial/armor_trim.1719988380.txt.gz · Last modified: 2024/07/03 06:33 by solidblock