- 14
- 2
- 0
При спавне моба выводит ошибку, но не крашит игру.
По какой-то причине в EntityRenderProvider.Context родительский класс отказывается принимать модель. Думаю, должно быть так.
При этом, если наследовать класс Entity от, например, свиньи, всё нормально работает и модель импортируется.
С чем это может быть связано?
No oshi.architecture.properties file found from ClassLoader cpw.mods.modlauncher.TransformingClassLoader@6192a5d5
Регистрация:
ModEntityTypes.ENTITY_TYPES.register(modEventBus)
События:
@SubscribeEvent
public static void entityRenderers(EntityRenderersEvent.RegisterRenderers event){
event.registerEntityRenderer(ModEntityTypes.ExampleEntity.get(), ExampleEntityRender::new);
}
@SubscribeEvent
public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event){
event.registerLayerDefinition(ExampleEntityModel.LAYER_LOCATION, ExampleEntityModel::createBodyLayer);
}
Класс моба:
public class ExampleEntity extends Entity {
public ExampleEntity(EntityType<?> p_19870_, Level p_19871_) {
super(p_19870_, p_19871_);
}
@Override
protected void defineSynchedData() {
}
@Override
protected void readAdditionalSaveData(CompoundTag p_20052_) {
}
@Override
protected void addAdditionalSaveData(CompoundTag p_20139_) {
}
@Override
public Packet<?> getAddEntityPacket() {
return null;
}
}
ModEntityTypes:
public class ModEntityTypes {
public static DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, ExampleMod.MODID);
public static final RegistryObject<EntityType<ExampleEntity>> ExampleEntity = ENTITY_TYPES.register("example_entity",
() -> EntityType.Builder.of(ExampleEntity::new, MobCategory.MISC).build(ExampleMod.MODID + ":car.png"));
}
Рендер:
public class ExampleEntityRender extends EntityRenderer<ExampleEntity> {
private static final ResourceLocation TEXTURE = new ResourceLocation(ExampleMod.MODID, "entities/car.png");
public ExampleEntityRender(EntityRendererProvider.Context p_174008_) {
super(p_174008_);
}
@Override
public ResourceLocation getTextureLocation(ExampleEntity p_114482_) {
return TEXTURE;
}
}
По какой-то причине в EntityRenderProvider.Context родительский класс отказывается принимать модель. Думаю, должно быть так.
ExampleEntityRender:
public ExampleEntityRender(EntityRendererProvider.Context p_174008_) {
super(p_174008_, new ExampleEntityModel(p_174008_.bakeLayer(ExampleEntityModel.LAYER_LOCATION)), 0.5f);
}
С чем это может быть связано?