Changes

Copy Datageneration/Tags to MC1.18 archive
{{Under construction}}

Tags can be generated by extending the <code>ItemTagsProvider</code> for Items or <code>BlockTagsProvider</code> for Blocks. For Custom Objects you would need to expand <code>TagsProvider</code> and give it the Object you want tags for. For the registration of you Tags you need to override the <code>TagsProvider#addTags</code> method.


{{Colored box|title=Information|content=You can still use <code>TagsProvider</code> for Items and Blocks but you would need to implement a lot of stuff that is already done in <code>ItemTagsProvider</code> and <code>BlockTagsProvider</code>}}

==Items/Blocks==
First you should make a <code>TagKey</code> with <code>ItemTags#create</code> for Items or <code>BlockTags#create</code> for blocks, this will take the name of you Tag, see [[Tags#Conventions/1.18|Tags#Conventions]]
for more info. After you have the <code>TagKey</code> you can start with the actual creation of the Tag, you would first call <code>TagsProvider#tag</code> which takes the tag as an argument, this returns a <code>TagsProvider$TagAppender</code>. Now you can with <code>TagsProvider$TagAppender#add</code> add one or more Items/Blocks or other Tags to your own Tags.

Example for an Item Tag:
<syntaxhighlight lang="java">
TagKey<Item> copperTag = ItemTags.create(new ResourceLocation("forge", "ore/copper"));
tag(copperTag).add(Init.COPPER_ORE_ITEM.get());
</syntaxhighlight>



==Custom Type for Tags==
TBD


[[Category:Data Generation/1.18|Category:Data Generation]]
372

edits