SpecialMobs/src/main/java/fathertoast/specialmobs/client/ClientRegister.java

57 lines
3 KiB
Java
Raw Normal View History

2022-06-20 09:55:51 -05:00
package fathertoast.specialmobs.client;
2022-06-24 12:47:44 -05:00
import fathertoast.specialmobs.client.renderer.entity.*;
2022-06-20 09:55:51 -05:00
import fathertoast.specialmobs.common.bestiary.MobFamily;
import fathertoast.specialmobs.common.core.SpecialMobs;
2022-06-26 19:26:03 +02:00
import fathertoast.specialmobs.common.entity.skeleton.NinjaSkeletonEntity;
2022-06-26 16:40:16 -05:00
import fathertoast.specialmobs.common.entity.witherskeleton.NinjaWitherSkeletonEntity;
2022-06-20 09:55:51 -05:00
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.entity.LivingEntity;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.client.registry.IRenderFactory;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import javax.annotation.ParametersAreNonnullByDefault;
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
@Mod.EventBusSubscriber( value = Dist.CLIENT, modid = SpecialMobs.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD )
public class ClientRegister {
@SubscribeEvent
public static void onClientSetup( FMLClientSetupEvent event ) {
registerEntityRenderers();
}
2022-06-26 16:40:16 -05:00
2022-06-20 09:55:51 -05:00
private static void registerEntityRenderers() {
// Family-based renderers
registerFamilyRenderers( MobFamily.CREEPER, SpecialCreeperRenderer::new );
2022-06-24 15:38:51 +02:00
registerFamilyRenderers( MobFamily.ZOMBIE, SpecialZombieRenderer::new );
2022-06-24 22:06:35 -05:00
registerFamilyRenderers( MobFamily.SKELETON, SpecialSkeletonRenderer::new );
2022-06-24 22:50:48 -05:00
registerFamilyRenderers( MobFamily.WITHER_SKELETON, SpecialSkeletonRenderer::new );
2022-06-25 23:46:48 -05:00
registerFamilyRenderers( MobFamily.SLIME, SpecialSlimeRenderer::new );
2022-06-26 16:40:16 -05:00
registerFamilyRenderers( MobFamily.MAGMA_CUBE, SpecialMagmaCubeRenderer::new );
2022-06-23 20:31:46 -05:00
registerFamilyRenderers( MobFamily.SPIDER, SpecialSpiderRenderer::new );
2022-06-23 21:20:36 -05:00
registerFamilyRenderers( MobFamily.CAVE_SPIDER, SpecialSpiderRenderer::new );
2022-06-23 22:34:24 -05:00
registerFamilyRenderers( MobFamily.SILVERFISH, SpecialSilverfishRenderer::new );
2022-06-24 12:47:44 -05:00
registerFamilyRenderers( MobFamily.ENDERMAN, SpecialEndermanRenderer::new );
2022-06-26 17:25:52 -05:00
//registerFamilyRenderers( MobFamily.WITCH, SpecialWitchRenderer::new );
2022-06-26 16:40:16 -05:00
2022-06-27 10:38:10 -05:00
// Species overrides
registerSpeciesRenderer( NinjaSkeletonEntity.SPECIES, NinjaSkeletonRenderer::new );
registerSpeciesRenderer( NinjaWitherSkeletonEntity.SPECIES, NinjaSkeletonRenderer::new );
2022-06-20 09:55:51 -05:00
}
2022-06-26 16:40:16 -05:00
private static <T extends LivingEntity> void registerFamilyRenderers( MobFamily<T> family, IRenderFactory<? super T> renderFactory ) {
2022-06-20 09:55:51 -05:00
RenderingRegistry.registerEntityRenderingHandler( family.vanillaReplacement.entityType.get(), renderFactory );
for( MobFamily.Species<? extends T> species : family.variants )
2022-06-27 10:38:10 -05:00
registerSpeciesRenderer( species, renderFactory );
2022-06-26 19:26:03 +02:00
}
2022-06-26 16:40:16 -05:00
2022-06-27 10:38:10 -05:00
private static <T extends LivingEntity> void registerSpeciesRenderer( MobFamily.Species<T> species, IRenderFactory<? super T> renderFactory ) {
2022-06-26 16:40:16 -05:00
RenderingRegistry.registerEntityRenderingHandler( species.entityType.get(), renderFactory );
2022-06-20 09:55:51 -05:00
}
}