Overview
The MrpgDatagen class provides the main entry point for data generation in More RPG Library. It implements DataGeneratorEntrypoint and registers various data providers for generating items, spells, tags, models, and translations.
This class is located in net.more_rpg_classes.datagen.MrpgDatagen.
Class Structure
public class MrpgDatagen implements DataGeneratorEntrypoint
Main Entry Point
onInitializeDataGenerator
Initializes the data generator and registers all data providers.
@ Override
public void onInitializeDataGenerator ( FabricDataGenerator fabricDataGenerator) {
FabricDataGenerator . Pack pack = fabricDataGenerator . createPack ();
pack . addProvider (ItemTagGenerator ::new );
pack . addProvider (SpellGen ::new );
pack . addProvider (SpellTagGenerator ::new );
}
Nested Provider Classes
ItemTagGenerator
Generates item tags for RPG Series integration and loot tier categorization.
public static class ItemTagGenerator extends RPGSeriesDataGen.ItemTagGenerator
registriesFuture
CompletableFuture<RegistryWrapper.WrapperLookup>
Future registry wrapper lookup
Configures item tags with loot tier assignments.
@ Override
protected void configure ( RegistryWrapper . WrapperLookup wrapperLookup) {
var tierTag = RPGSeriesItemTags . LootTiers . get ( 5 , RPGSeriesItemTags . LootCategory . ARMORS );
SmithingIngredients . ENTRIES . forEach (entry -> {
var tag = getOrCreateTagBuilder (tierTag);
tag . addOptional ( entry . id ());
});
}
This example assigns tier 5 armor loot tags to smithing ingredients.
LangGenerator
Generates language files with translations for items and classes.
public static class LangGenerator extends FabricLanguageProvider
registryLookup
CompletableFuture<RegistryWrapper.WrapperLookup>
Future registry wrapper lookup
generateTranslations Method
Generates translations for items and class-specific text.
@ Override
public void generateTranslations ( RegistryWrapper . WrapperLookup wrapperLookup, TranslationBuilder translationBuilder) {
SmithingIngredients . ENTRIES . forEach (entry -> {
translationBuilder . add ( entry . id (). toTranslationKey ( "item" ), entry . translations (). itemName ());
translationBuilder . add ( entry . appliesToTranslationKey (), entry . appliesToClassesTranslation ());
});
}
ModelProvider
Generates item and block models for data generation.
public static class ModelProvider extends FabricModelProvider
generateItemModels Method
Generates item models using the GENERATED model type.
@ Override
public void generateItemModels ( ItemModelGenerator itemModelGenerator) {
SmithingIngredients . ENTRIES . forEach (entry -> {
itemModelGenerator . register ( entry . item (). get (), Models . GENERATED );
});
}
Block state models are not generated by default (empty implementation).
SpellGen
Generates spell data files for Spell Engine integration.
public static class SpellGen extends SpellGenerator
registryLookup
CompletableFuture<RegistryWrapper.WrapperLookup>
Future registry wrapper lookup
generateSpells Method
Registers all spell entries from MrpgLibSpells.
@ Override
public void generateSpells ( Builder builder) {
for ( var entry : MrpgLibSpells . entries ) {
builder . add ( entry . id (), entry . spell ());
}
}
SpellTagGenerator
Generates spell tags for Arsenal integration and categorization.
public static class SpellTagGenerator extends FabricTagProvider < Spell >
registriesFuture
CompletableFuture<RegistryWrapper.WrapperLookup>
Future registry wrapper lookup
Configures spell tags based on spell categories.
@ Override
protected void configure ( RegistryWrapper . WrapperLookup wrapperLookup) {
MrpgLibSpells . entries . forEach (entry -> {
for ( var category : entry . categories ()) {
var tagKey = TagKey . of ( SpellRegistry . KEY , Identifier . of ( "arsenal" , category . toString (). toLowerCase ()));
var tag = getOrCreateTagBuilder (tagKey);
tag . addOptional ( entry . id ());
}
});
}
Usage Example
public class MyModDatagen implements DataGeneratorEntrypoint {
@ Override
public void onInitializeDataGenerator ( FabricDataGenerator fabricDataGenerator ) {
FabricDataGenerator . Pack pack = fabricDataGenerator . createPack ();
// Add standard providers
pack . addProvider ( MyModDatagen . ItemTagGenerator ::new );
pack . addProvider ( MyModDatagen . SpellGen ::new );
pack . addProvider ( MyModDatagen . ModelProvider ::new );
}
}
Smithing Recipes Generate smithing transform recipes
Advancement Helpers Create Spell Engine advancements