User Tools

Site Tools


tutorial:tags

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
Next revisionBoth sides next revision
tutorial:tags [2022/04/29 09:35] – [1.18.1 and below (Requires Fabric API)] solidblocktutorial:tags [2022/05/24 11:41] – use <yarn(code)> expect for TagKey, for which is doesn't work, and Tag, which will be removed in 1.19 juuz
Line 14: Line 14:
 The ''"replace"'' tag determines whether the mod will remove all other items in the tag that are not mentioned in this file. It is not recommended to set this to true, as it may break compatibility with other mods. ''blocks'' in the file path can also be ''items'' or ''fluids''. You should separate words with underscores, and tags should be plural. The ''"replace"'' tag determines whether the mod will remove all other items in the tag that are not mentioned in this file. It is not recommended to set this to true, as it may break compatibility with other mods. ''blocks'' in the file path can also be ''items'' or ''fluids''. You should separate words with underscores, and tags should be plural.
  
-For some cases, you might want to have tags checked on code, which will require you to register them:+===== Using tags in code =====
  
-==== 1.18.and above ==== +For some cases, you might want to have tags as registered objects on codeFor example, methods like ''Block#isIn'' require these tag parametersBesides, the Fabric registries like ''FlammableBlockRegistry'', ''FuelRegistry'' and ''CompostingChanceRegistry'' also accept block tags or item tags.
-<code java>+
  
-import net.minecraft.block.Block; +Vanilla tag objects can be found in class ''<yarn class_3481>'' and ''<yarn class_3489>''To register tag objects in your mod, see the following.
-import net.minecraft.tag.TagKey; +
-import net.minecraft.util.Identifier; +
-import net.minecraft.util.registry.Registry;+
  
-public class BlockTags +=== 1.18.2 and above === 
-  public static final TagKey<Block> EXAMPLE_ORES = TagKey.of(Registry.BLOCK_KEY, new Identifier("tutorial", "example_ores"));+<yarncode java> 
 +public class ModBlockTags 
 +  public static final TagKey<class_2248> EXAMPLE_ORES = TagKey.of(class_2378.field_25105, new class_2960("tutorial", "example_ores"));
 } }
-</code>+</yarncode>
  
  
 ==== 1.18.1 and below (Requires Fabric API) ==== ==== 1.18.1 and below (Requires Fabric API) ====
-<code java> +<yarncode java> 
-import net.fabricmc.fabric.api.tag.TagFactory; +public class ModBlockTags 
-import net.minecraft.block.Block; +  public static final Tag<class_2248> EXAMPLE_ORES = TagFactory.BLOCK.create(new class_2960("tutorial", "example_ores"));
-import net.minecraft.tag.Tag; +
-import net.minecraft.util.Identifier; +
- +
-public class BlockTags +
-  public static final Tag<Block> EXAMPLE_ORES = TagFactory.BLOCK.create(new Identifier("tutorial", "example_ores"));+
 } }
-</code>+</yarncode>
  
 ==== 1.16.5 and below (Requires Fabric API) ==== ==== 1.16.5 and below (Requires Fabric API) ====
-<code java> +<yarncode java> 
- +public class ModBlockTags 
-public class BlockTags +  public static final Tag<class_2248> EXAMPLE_ORES = TagRegistry.block(new class_2960("tutorial", "example_ores"));
-  public static final Tag<Block> EXAMPLE_ORES = TagRegistry.block(new Identifier("tutorial", "example_ores"));+
 } }
-</code>+</yarncode>
  
 ===== Common Tags vs Mod Tags ===== ===== Common Tags vs Mod Tags =====
-If your tag applies ONLY to items in your mod, and no other mod is likely to have similar items, or you specifically want to only include your mod's items in that tag, then use ''yourmodid:yourtaghere'', with the example above. However, if your mod adds items which other mods also add, you can+If your tag applies ONLY to items in your mod, and no other mod is likely to have similar items, or you specifically want to only include your mod's items in that tag, then use ''yourmodid:yourtaghere'', with the example above. However, if your mod adds items which other mods also add, you can:
  
 ======= Creating New Common Tags ======= ======= Creating New Common Tags =======
 Common tags should be named with the syntax ''c:yourtaghere'', with ''c'' standing for common. When making the file, use the file path ''src/main/resources/data/c/tags/'' and then ''blocks'', ''items'' or ''fluids'' You should separate words with underscores, and tags should be plural. Common tags should be named with the syntax ''c:yourtaghere'', with ''c'' standing for common. When making the file, use the file path ''src/main/resources/data/c/tags/'' and then ''blocks'', ''items'' or ''fluids'' You should separate words with underscores, and tags should be plural.
  
-======= Existing Common Tags =======+====== Existing Common Tags ======
 This section was [[https://github.com/fabric-community/fabric-convention-tags|automatically generated using a script]]. See the end of this page for the list of mods used. If your item fits into one of these tags, then you should add it to that tag instead of defining your own. If you want your mod's recipes to be compatible with other mods, replace the item in the recipe with ''#c:tagname''. This section was [[https://github.com/fabric-community/fabric-convention-tags|automatically generated using a script]]. See the end of this page for the list of mods used. If your item fits into one of these tags, then you should add it to that tag instead of defining your own. If you want your mod's recipes to be compatible with other mods, replace the item in the recipe with ''#c:tagname''.
  
tutorial/tags.txt · Last modified: 2024/01/05 13:53 by cph101