PREREQUISITI
Assicurati di aver prima completato il processo di configurazione della datagen.
Configurazione
Anzitutto, crea la tua classe che extends FabricTagProvider<T>, dove T è il tipo di cosa per la quale vuoi fornire un tag. Questo è il tuo fornitore. Qui mostreremo come creare tag di Item, ma lo stesso principio si applica ad altre cose. Lascia che il tuo IDE compili il codice richiesto, poi sostituisci il parametro registryKey del costruttore con la RegistryKey per il tuo tipo:
java
public class FabricDocsReferenceItemTagProvider extends FabricTagProvider.ItemTagProvider {
public FabricDocsReferenceItemTagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
super(output, registriesFuture);
}
@Override
protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) {
}
}1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
TIP
Ti servirà un fornitore diverso per ogni tipo di tag (per esempio un FabricTagProvider<EntityType<?>> e un FabricTagProvider<Item>).
Per completare la configurazione, aggiungi questo fornitore alla tua DataGeneratorEntrypoint nel metodo onInitializeDataGenerator.
java
pack.addProvider(FabricDocsReferenceItemTagProvider::new);1
Creare un Tag
Ora che hai creato un fornitore, aggiungiamoci un tag. Anzitutto, crea una TagKey<T>:
java
public static final TagKey<Item> SMELLY_ITEMS = TagKey.of(RegistryKeys.ITEM, Identifier.of(FabricDocsReference.MOD_ID, "smelly_items"));1
Poi, chiama getOrCreateTagBuilder nel metodo configure del tuo fornitore. Da lì, puoi aggiungere oggetti individualmente, aggiungere altri tag, o fare in modo che questo tag ne sostituisca di preesistenti.
Se vuoi aggiungere un tag, usa addOptionalTag, poiché i contenuti del tag potrebbero non essere caricati durante la datagen. Se sei sicuro che il tag sia caricato, chiama addTag.
Per aggiungere un tag forzatamente ignorando il formato errato, usa forceAddTag.
java
valueLookupBuilder(SMELLY_ITEMS)
.add(Items.SLIME_BALL)
.add(Items.ROTTEN_FLESH)
.addOptionalTag(ItemTags.DIRT)
.add(Items.OAK_PLANKS)
.forceAddTag(ItemTags.BANNERS)
.setReplace(true);1
2
3
4
5
6
7
2
3
4
5
6
7




