Advertisement
Vaerys_Dawn

Untitled

Dec 4th, 2020 (edited)
925
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.19 KB | None | 0 0
  1. @Mod(AlchemicalBees.MODID)
  2. public class AlchemicalBees {
  3.     // Directly reference a log4j logger.
  4.  
  5.     public static final String MODID = "alchemicalbees";
  6.     public static ItemGroup ITEM_GROUP;
  7.     private static final Logger LOGGER = LogManager.getLogger();
  8.  
  9.     public static final IProxy PROXY = DistExecutor.safeRunForDist(() -> ClientProxy::new, () -> ServerProxy::new);
  10.  
  11.     private static final String[] LOCALES = new String[]{
  12.             "en_us",
  13.             "en_uk"
  14.     };
  15.  
  16.     public AlchemicalBees() {
  17.         IEventBus mod = FMLJavaModLoadingContext.get().getModEventBus();
  18.         IEventBus forge = MinecraftForge.EVENT_BUS;
  19.  
  20.         PROXY.setup(mod, forge);
  21.         addRegistries(mod);
  22.         mod.addListener(this::commonSetup);
  23.         mod.addListener(this::gatherData);
  24.     }
  25.  
  26.     private void commonSetup(final FMLCommonSetupEvent event) {
  27.  
  28.     }
  29.  
  30.     private void addRegistries(IEventBus mod) {
  31.         ALBItem.generateItems();
  32.         ALBBlock.generateBlocks();
  33.         ITEM_GROUP = new ItemGroup("alchemical_bees") {
  34.             @Override
  35.             @OnlyIn(Dist.CLIENT)
  36.             public ItemStack createIcon() {
  37.                 return new ItemStack(ALBItem.registeredItems.get("royal_jelly").item.get());
  38.             }
  39.         };
  40.         ALBItem.addToTab();
  41.         ALBItem.ITEMS.register(mod);
  42.         ALBBlock.BLOCKS.register(mod);
  43.     }
  44.  
  45.     private void gatherData(final GatherDataEvent event) {
  46.         LOGGER.debug("Running data gen #1");
  47.         DataGenerator gen = event.getGenerator();
  48.         if (event.includeClient()) {
  49.             LOGGER.debug("Running data gen #2");
  50.             ExistingFileHelper efh = event.getExistingFileHelper();
  51.  
  52.             gen.addProvider(new ALBItemModelProvider(gen, efh));
  53.             gen.addProvider(new ALBBlockStateProvider(gen, efh));
  54.             addLanguageProviders(gen);
  55.             LOGGER.debug("Running data gen #6");
  56.         }
  57.     }
  58.  
  59.     private void addLanguageProviders(final DataGenerator gen) {
  60.         for (String locale : LOCALES) {
  61.             gen.addProvider(new ALBLanguageProvider(gen, locale));
  62.         }
  63.     }
  64. }
  65.  
  66. public class ALBBlockStateProvider extends BlockStateProvider {
  67.  
  68.     private static final Logger LOGGER = LogManager.getLogger();
  69.  
  70.     public ALBBlockStateProvider(DataGenerator gen, ExistingFileHelper efh) {
  71.         super(gen, AlchemicalBees.MODID, efh);
  72.     }
  73.  
  74.     @Override
  75.     public void registerStatesAndModels() {
  76.         LOGGER.debug("Running data gen #5");
  77.         ALBBlock.registeredBlocks.forEach((k, v) -> {
  78.             if (v instanceof PipeBlock) {
  79.                 generatePipeTemplate(v);
  80.             } else if (v.getModelPath() == null) {
  81.                 basicBlock(v);
  82.             } else {
  83.                 modelBlock(v);
  84.             }
  85.         });
  86.     }
  87. ...
  88.  
  89. public class ALBItemModelProvider extends ItemModelProvider {
  90.  
  91.     private static final Logger LOGGER = LogManager.getLogger();
  92.  
  93.     public ALBItemModelProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) {
  94.         super(generator, AlchemicalBees.MODID, existingFileHelper);
  95.     }
  96.  
  97.     @Override
  98.     protected void registerModels() {
  99.         LOGGER.debug("Running data gen #3");
  100.         ALBItem.registeredItems.forEach((k, v) -> {
  101.             if (!v.isBlockItem){
  102.                 simpleItem(v.item);
  103.             }
  104.         });
  105.     }
  106.  
  107. ...
  108.  
  109. public class ALBLanguageProvider extends LanguageProvider {
  110.  
  111.     private static final Logger LOGGER = LogManager.getLogger();
  112.  
  113.     public ALBLanguageProvider(DataGenerator gen, String locale) {
  114.         super(gen, AlchemicalBees.MODID, locale);
  115.     }
  116.  
  117.     @Override
  118.     protected void addTranslations() {
  119.         LOGGER.debug("Running data gen #4");
  120.         String locale = this.getName().replace("Languages: ", "");
  121.         ALBItem.registeredItems.forEach((k, v) -> {
  122.             String translation = v.translations.get(locale);
  123.             if (translation != null) {
  124.                 addItem(v.item, translation);
  125.             }
  126.         });
  127.         ALBBlock.registeredBlocks.forEach((k, v) -> {
  128.             String translation = v.translations.get(locale);
  129.             if (translation != null) {
  130.                 addBlock(v.block, translation);
  131.             }
  132.         });
  133.     }
  134. }
  135.  
  136.  
  137. public abstract class ALBItem {
  138.  
  139.     public boolean isBlockItem = false;
  140.  
  141.     public static void generateItems() {
  142.         registerItem("royal_jelly", new RoyalJelly());
  143.     }
  144.  
  145.     public static void addToTab() {
  146.         registeredItems.forEach((k, v) -> {
  147.             v.properties.group(AlchemicalBees.ITEM_GROUP);
  148.         });
  149.     }
  150.  
  151.     public abstract void addTranslations(Map<String, String> translations);
  152.  
  153.     public abstract void addProperties(Item.Properties properties);
  154.  
  155.     public void setID(String id) {
  156.         this.itemID = id;
  157.     }
  158.  
  159.     public String itemID;
  160.     public Map<String, String> translations = new HashMap<>();
  161.     public RegistryObject<Item> item;
  162.     public Item.Properties properties = new Item.Properties();
  163.  
  164.     public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, AlchemicalBees.MODID);
  165.     public static Map<String, ALBItem> registeredItems = new HashMap<>();
  166.  
  167.     public static void registerItem(String id, ALBItem item) {
  168.         // set item id
  169.         item.setID(id);
  170.         // add item properties
  171.         item.addProperties(item.properties);
  172.         // add translations
  173.         item.addTranslations(item.translations);
  174.         // register item
  175.         item.item = ITEMS.register(id, () -> new Item(item.properties));
  176.  
  177.         registeredItems.put(id, item);
  178.     }
  179. }
  180.  
  181.  
  182. // fails to run all data gen
  183. [12:35:19] [main/DEBUG] [ne.mi.fm.ja.FMLModContainer/LOADING]: Firing event for modid alchemicalbees : net.minecraftforge.fml.event.lifecycle.GatherDataEvent@79f14c56
  184. [12:35:19] [main/DEBUG] [co.da.al.co.AlchemicalBees/]: Running data gen #1
  185. [12:35:19] [main/DEBUG] [co.da.al.co.AlchemicalBees/]: Running data gen #2
  186. [12:35:19] [main/DEBUG] [co.da.al.co.AlchemicalBees/]: Running data gen #7
  187. [12:35:19] [main/DEBUG] [ne.mi.fm.ja.FMLModContainer/LOADING]: Fired event for modid alchemicalbees : net.minecraftforge.fml.event.lifecycle.GatherDataEvent@79f14c56
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement