Volver al índice

src/main/java/ar/com/companeros/horror/client/ParasiteClientRegistration.java

package ar.com.companeros.horror.client;

import ar.com.companeros.Companeros;
import ar.com.companeros.horror.HorrorModule;
import ar.com.companeros.horror.HorrorNetwork;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;

/** Registro sólo cliente: el servidor dedicado no carga clases de renderizado. */
@Mod.EventBusSubscriber(modid = Companeros.ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public final class ParasiteClientRegistration {
    private ParasiteClientRegistration() { }
    @SubscribeEvent public static void renderers(EntityRenderersEvent.RegisterRenderers event) {
        event.registerEntityRenderer(HorrorModule.STALKER.get(), ParasiteRenderer::new);
    }
    @SubscribeEvent public static void layers(EntityRenderersEvent.RegisterLayerDefinitions event) {
        event.registerLayerDefinition(ParasiteModel.LAYER, ParasiteModel::createBodyLayer);
        event.registerLayerDefinition(ParasiteModel.FRIENDLY_LAYER, ParasiteModel::createFriendlyLayer);
    }
    @SubscribeEvent public static void setup(FMLClientSetupEvent event) {
        event.enqueueWork(() -> {
            HorrorNetwork.CLIENT_RECEIVER = enabled -> {
                HorrorClientSafety.setEnabled(enabled);
                if (enabled) HorrorSpeechClient.stopAll();
            };
            HorrorNetwork.CLIENT_SPEECH = HorrorSpeechClient::play;
        });
    }
}