Add EntityRenderers (#52)

Close #45
This commit is contained in:
shedaniel
2021-02-27 17:48:51 +08:00
committed by GitHub
parent 89ce4c7c58
commit d9b43e71e6
3 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
package me.shedaniel.architectury.registry.entity;
import me.shedaniel.architectury.annotations.ExpectPlatform;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import java.util.function.Function;
@Environment(EnvType.CLIENT)
public final class EntityRenderers {
private EntityRenderers() {}
@ExpectPlatform
public static <T extends Entity> void register(EntityType<T> type, Function<EntityRenderDispatcher, EntityRenderer<T>> factory) {
throw new AssertionError();
}
}

View File

@@ -0,0 +1,15 @@
package me.shedaniel.architectury.registry.entity.fabric;
import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import java.util.function.Function;
public class EntityRenderersImpl {
public static <T extends Entity> void register(EntityType<T> type, Function<EntityRenderDispatcher, EntityRenderer<T>> factory) {
EntityRendererRegistry.INSTANCE.register(type, (manager, context) -> factory.apply(manager));
}
}

View File

@@ -0,0 +1,15 @@
package me.shedaniel.architectury.registry.entity.forge;
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import java.util.function.Function;
public class EntityRenderersImpl {
public static <T extends Entity> void register(EntityType<T> type, Function<EntityRenderDispatcher, EntityRenderer<T>> factory) {
RenderingRegistry.registerEntityRenderingHandler(type, factory::apply);
}
}