1+ package multiteam .multicore_lib .setup .utilities ;
2+
3+ import net .minecraft .block .Block ;
4+ import net .minecraft .entity .Entity ;
5+ import net .minecraft .entity .EntityClassification ;
6+ import net .minecraft .entity .EntityType ;
7+ import net .minecraft .item .BlockItem ;
8+ import net .minecraft .item .Item ;
9+ import net .minecraftforge .fml .RegistryObject ;
10+ import net .minecraftforge .registries .DeferredRegister ;
11+
12+ import java .util .function .Supplier ;
13+
14+ public class RegistrationTool {
15+
16+ //Registers a block without an item form
17+ public static <T extends Block > RegistryObject <T > registerNoItem (String name , Supplier <T > block , DeferredRegister <Block > BLOCKS_ ){
18+ return BLOCKS_ .register (name , block );
19+ }
20+
21+ //Registers a block, and also registers an item version of the block
22+ public static <T extends Block > RegistryObject <T > registerWithItem (String name , Supplier <T > block , Item .Properties itemProperties , DeferredRegister <Block > BLOCKS_ , DeferredRegister <Item > ITEMS_ ){
23+ RegistryObject <T > ret = registerNoItem (name , block , BLOCKS_ );
24+ ITEMS_ .register (name , () -> new BlockItem (ret .get (), itemProperties ));
25+ return ret ;
26+ }
27+
28+ //Entity registry util
29+ public static <T extends Entity > RegistryObject <EntityType <T >> buildEntity (EntityType .IFactory <T > entity , Class <T > entityClass , float width , float height , EntityClassification classification , int trackingRange , int updateinterval , DeferredRegister <EntityType <?>> ENTITIES_ ) {
30+ String name = entityClass .getSimpleName ().toLowerCase ();
31+ return ENTITIES_ .register (name , () -> EntityType .Builder .of (entity , classification ).sized (width , height ).clientTrackingRange (trackingRange ).updateInterval (updateinterval ).build (name ));
32+ }
33+
34+ }
0 commit comments