Changes

662 bytes added ,  03:00, 8 April 2021
m
DeferredRegister Kotlin and Scala
Line 23: Line 23:  
An example of a mod registering a custom block:
 
An example of a mod registering a custom block:
   −
<syntaxhighlight lang="java">
+
{{Template:Tabs/Code_Snippets
private static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID);
+
|java=private static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID);
   −
public static final RegistryObject<Block> EXAMPLE_BLOCK = BLOCKS.register("example_block", () -> new Block(Block.Properties.create(Material.ROCK)));
+
public static final RegistryObject<Block> EXAMPLE_BLOCK = BLOCKS.register("example_block", () -> new Block(AbstractBlock.Properties.create(Material.ROCK)));
    
public ExampleMod() {
 
public ExampleMod() {
 
     BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus());
 
     BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus());
 
}
 
}
</syntaxhighlight>
+
|kotlin=private val BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID)
 +
 
 +
val EXAMPLE_BLOCK: RegistryObject<Block> = BLOCKS.register("example_block") { Block(AbstractBlock.Properties.create(Material.ROCK)) }
 +
 
 +
internal class ExampleMod {
 +
    init {
 +
        BLOCKS.register(FMLJavaModLoadingContext.get().modEventBus)
 +
    }
 +
}
 +
|scala=object ExampleMod {
 +
    private final val BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID)
 +
 
 +
    final val EXAMPLE_BLOCK = registerBlock("example_block", () => new Block(AbstractBlock.Properties.create(Material.ROCK)))
 +
}
 +
class ExampleMod {
 +
    BLOCKS.register(FMLJavaModLoadingContext.get.getModEventBus)
 +
}
 +
|}}
    
{{Tip|When using a <code>DeferredRegister</code> to register any object, the name inputted will be automatically prefixed with the mod id passed in, giving the above object a "registry name" of <code>examplemod:example_block</code>.}}
 
{{Tip|When using a <code>DeferredRegister</code> to register any object, the name inputted will be automatically prefixed with the mod id passed in, giving the above object a "registry name" of <code>examplemod:example_block</code>.}}