Explorar el Código

Add EntityRenderers (#52)

Close #45
shedaniel hace 4 años
padre
commit
d9b43e71e6

+ 21 - 0
common/src/main/java/me/shedaniel/architectury/registry/entity/EntityRenderers.java

@@ -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();
+    }
+}

+ 15 - 0
fabric/src/main/java/me/shedaniel/architectury/registry/entity/fabric/EntityRenderersImpl.java

@@ -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));
+    }
+}

+ 15 - 0
forge/src/main/java/me/shedaniel/architectury/registry/entity/forge/EntityRenderersImpl.java

@@ -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);
+    }
+}