Guest User

Necromod

a guest
Feb 5th, 2023
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.78 KB | None | 0 0
  1. @Mod(Necromod.MODID)
  2. public class Necromod
  3. {
  4.     // la constante avec l'identifiant du mod
  5.     public static final String MODID = "necromod";
  6.     // le logger du mod
  7.     public static final Logger LOGGER = LogManager.getLogger(MODID);
  8.    
  9.     public static CommonProxy proxy;   
  10.    
  11.     // constructeur de la classe principale, on enregistre ici nos events
  12.     @SuppressWarnings("deprecation")
  13.     public Necromod()
  14.     {
  15.         proxy = DistExecutor.runForDist(() -> ClientProxy::new, () -> CommonProxy::new);
  16.         proxy.init();
  17.        
  18.         IEventBus eventbus = FMLJavaModLoadingContext.get().getModEventBus();
  19.        
  20.         // Zone de création et d'enregistrement des items //
  21.         NecromodItems.register(eventbus);
  22.        
  23.         // Zone de création et d'enregistrement des blocks //
  24.         NecromodBlocks.register(eventbus);
  25.        
  26.         // Zone de création et d'enregistrement des potions //
  27.         NecromodPotion.register(eventbus);
  28.        
  29.         // Zone de créations et d'enregistrement des sons et musique //
  30.         NecromodSoundEvents.register(eventbus);
  31.        
  32.         // Zone d'enregistrement des bannieres //
  33.         NecromodBanners.register(eventbus);
  34.        
  35.         // Zone d'enregistrement des mob //
  36.         NecromodEntityTypes.register(eventbus);
  37.        
  38.         // Zone de création et d'enregistrement des TileEntity //
  39.         NecromodTileEntities.register(eventbus);
  40.        
  41.         // Zone d'enregistrement des inventaire //
  42.         NecromodInventory.register(eventbus);
  43.        
  44.         // Zone d'enregistrement des métier pnj //
  45.         NecromodJob.register(eventbus);
  46.        
  47.         // Zone d'enregistrement des biomes //
  48.         NecromodBiomes.register(eventbus);
  49.        
  50.         NecromodStructures.DEFERRED_REGISTRY_STRUCTURE.register(eventbus);
  51.        
  52.         // Register the setup method for modloading
  53.         eventbus.addListener(this::setup);
  54.         // Register the enqueueIMC method for modloading
  55.         eventbus.addListener(this::enqueueIMC);
  56.         // Register the processIMC method for modloading
  57.         eventbus.addListener(this::processIMC);
  58.         // Register the doClientStuff method for modloading
  59.         eventbus.addListener(this::doClientStuff);
  60.        
  61.         // Register ourselves for server and other game events we are interested in
  62.         MinecraftForge.EVENT_BUS.register(LivingEventHandler.class);
  63.     }
  64.  
  65.     private void setup(final FMLCommonSetupEvent event)
  66.     {
  67.         // some preinit code
  68.         LOGGER.info("HELLO FROM PREINIT");
  69.         LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
  70.            
  71.         event.enqueueWork(() ->
  72.         {
  73.             AxeItem.STRIPABLES = new ImmutableMap.Builder<Block, Block>().putAll(AxeItem.STRIPABLES)
  74.                     .put(NecromodBlocks.Crepuscule_Log.get(), NecromodBlocks.Stripped_Crepuscule_Log.get())
  75.                     .put(NecromodBlocks.Crepuscule__Wood.get(), NecromodBlocks.Stripped_Crepuscule__Wood.get()).build();
  76.            
  77.             // Zone de créations et d'enregistrement des professions / bloc de professions des PNJ //
  78.             NecromodJob.RegisterPOI();
  79.             NecromodJob.fillTradeData();
  80.            
  81.             // Zone d'enregistrement des biomes / génération dans le monde //
  82.             NecromodBiomeGeneration.generateBiomes();  
  83.                    
  84.             // Zone d'enregistrement des structures
  85.             NecromodStructures.setupStructures();
  86.             NecromodStructures.registerStructurePieces();
  87.             NecromodConfiguredStructures.registerConfiguredStructures();
  88.         });
  89.                            
  90.     }
  91.  
  92.     private void doClientStuff(final FMLClientSetupEvent event)
  93.     {
  94.         NecromodItems.addItemModelProperties();
  95.         event.enqueueWork(() ->
  96.         {
  97.         // do something that can only be done on the client
  98.         LOGGER.info("Got game settings {}", event.getMinecraftSupplier().get().options);
  99.         RenderTypeLookup.setRenderLayer(NecromodBlocks.Din_Fire.get(), (layer) -> layer == RenderType.cutout() || layer == RenderType.translucent());
  100.         RenderTypeLookup.setRenderLayer(NecromodBlocks.Nayru_Fire.get(), (layer) -> layer == RenderType.cutout() || layer == RenderType.translucent());
  101.         RenderTypeLookup.setRenderLayer(NecromodBlocks.Farore_Fire.get(), (layer) -> layer == RenderType.cutout() || layer == RenderType.translucent());
  102.         RenderTypeLookup.setRenderLayer(NecromodBlocks.Block_Door.get(), (layer) -> layer == RenderType.cutout() || layer == RenderType.translucent());
  103.         RenderTypeLookup.setRenderLayer(NecromodBlocks.Block_Oeil_Invisible.get(), (layer) -> layer == RenderType.cutout() || layer == RenderType.translucent());      
  104.         RenderTypeLookup.setRenderLayer(NecromodBlocks.Multicolor_Glass.get(), (layer) -> layer == RenderType.cutout() || layer == RenderType.translucent());
  105.        
  106.         RenderTypeLookup.setRenderLayer(NecromodBlocks.Crepuscule_Sapling.get(), (layer) -> layer == RenderType.cutout() || layer == RenderType.translucent());  
  107.        
  108.         // Enregistrement des TESR Renderer //
  109.         ClientRegistry.bindTileEntityRenderer(NecromodTileEntities.Sword_Piedestal_Tile.get(), TESRSwordPiedestalRenderer::new);
  110.         ClientRegistry.bindTileEntityRenderer(NecromodTileEntities.Master_Sword_Piedestal_Tile.get(), TESRMasterSwordPiedestalRenderer::new);
  111.        
  112.         });
  113.         // Enregistrement des GUI //
  114.         ScreenManager.register(NecromodInventory.Custome_Player_Inventory.get(), CustomPlayerInventoryScreen::new);        
  115.        
  116.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Capitaine_Pirate.get(), CapitainePirateRenderer::new);
  117.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Princesse_Zelda.get(), PrincesseZeldaRenderer::new);
  118.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Roi_Blaze.get(), RoiBlazeRenderer::new);
  119.        
  120.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Lighting_Arrow.get(), LightingArrowRenderer::new);
  121.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Fire_Arrow.get(), FireArrowRenderer::new);
  122.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Ice_Arrow.get(), IceArrowRenderer::new);
  123.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Archeonique_Arrow.get(), ArcheoniqueArrowRenderer::new);
  124.         RenderingRegistry.registerEntityRenderingHandler(NecromodEntityTypes.Explosive_Arrow.get(), ExplosiveArrowRenderer::new);
  125.     }
  126.  
  127.     private void enqueueIMC(final InterModEnqueueEvent event)
  128.     {
  129.         // some example code to dispatch IMC to another mod
  130.         InterModComms.sendTo("examplemod", "helloworld", () -> { LOGGER.info("Hello world from the MDK"); return "Hello world";});
  131.     }
  132.  
  133.     private void processIMC(final InterModProcessEvent event)
  134.     {
  135.         // some example code to receive and process InterModComms from other mods
  136.         LOGGER.info("Got IMC {}", event.getIMCStream().
  137.                 map(m->m.getMessageSupplier().get()).
  138.                 collect(Collectors.toList()));
  139.     }
  140.     // You can use SubscribeEvent and let the Event Bus discover methods to call
  141.     @SubscribeEvent
  142.     public void onServerStarting(FMLServerStartingEvent event) {
  143.         // do something when the server starts
  144.         LOGGER.info("HELLO from server starting");
  145.     }
  146.  
  147.     // You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
  148.     // Event bus for receiving Registry Events)
  149.     @Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
  150.     public static class RegistryEvents
  151.     {
  152.         @SubscribeEvent
  153.         public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
  154.             // register a new block here
  155.             LOGGER.info("HELLO from Register Block");
  156.         }
  157.     }
  158. }
  159.  
Advertisement
Add Comment
Please, Sign In to add comment