Fix game crashing when modded entities are present (#6364)

This commit is contained in:
bl4ckscor3 2019-12-19 06:56:01 +01:00 committed by tterrag
parent 83ebdcd8f2
commit 40de19f16e
2 changed files with 19 additions and 1 deletions

View File

@ -1,6 +1,23 @@
--- a/net/minecraft/client/renderer/entity/EntityRendererManager.java --- a/net/minecraft/client/renderer/entity/EntityRendererManager.java
+++ b/net/minecraft/client/renderer/entity/EntityRendererManager.java +++ b/net/minecraft/client/renderer/entity/EntityRendererManager.java
@@ -445,4 +445,8 @@ @@ -183,13 +183,15 @@
this.field_178637_m = new PlayerRenderer(this);
this.field_178636_l.put("default", this.field_178637_m);
this.field_178636_l.put("slim", new PlayerRenderer(this, true));
+ }
+ //FORGE: Validate the existence of a renderer for each entity type after modded entity renderers have been added
+ public void validateRendererExistence() {
for(EntityType<?> entitytype : Registry.field_212629_r) {
if (entitytype != EntityType.field_200729_aH && !this.field_78729_o.containsKey(entitytype)) {
throw new IllegalStateException("No renderer registered for " + Registry.field_212629_r.func_177774_c(entitytype));
}
}
-
}
public <T extends Entity> EntityRenderer<? super T> func_78713_a(T p_78713_1_) {
@@ -445,4 +447,8 @@
public FontRenderer func_78716_a() { public FontRenderer func_78716_a() {
return this.field_78736_p; return this.field_78736_p;
} }

View File

@ -47,6 +47,7 @@ public class RenderingRegistry
public static void loadEntityRenderers(EntityRendererManager manager) public static void loadEntityRenderers(EntityRendererManager manager)
{ {
INSTANCE.entityRenderers.forEach((key, value) -> register(manager, key, value)); INSTANCE.entityRenderers.forEach((key, value) -> register(manager, key, value));
manager.validateRendererExistence();
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")