我遵循本教程为我的minecraft mod创建一个自定义实体。不幸的是,本教程是为minecraft(1.14)的稍旧版本编写的,有些部分与最新版本不兼容。我正准备注册实体的呈现处理程序,但出现以下错误:
RenderRegistry.java:12: error: method registerEntityRenderingHandler in class RenderingRegistry cannot be applied to given types;
RenderingRegistry.registerEntityRenderingHandler(GlowCowEntity.class, new GlowCowRender.RenderFactory());
^
required: EntityType<T>,IRenderFactory<? super T>
found: Class<GlowCowEntity>,RenderFactory
reason: cannot infer type-variable(s) T
(argument mismatch; Class<GlowCowEntity> cannot be converted to EntityType<T>)
where T is a type-variable:
T extends Entity declared in method <T>registerEntityRenderingHandler(EntityType<T>,IRenderFactory<? super T>)
我试图查看minecraft forge文档,但它没有提到任何关于暴徒的信息,我也找不到任何最新信息。我曾在android应用程序中使用过java,但我对它不是很有经验。
renderregistry.java:
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
@OnlyIn(Dist.CLIENT)
public class RenderRegistry {
public static void registerEntityRenderers() {
RenderingRegistry.registerEntityRenderingHandler(GlowCowEntity.class, new GlowCowRender.RenderFactory());
}
}
glowcowentity.java:
import net.minecraft.entity.EntityType;
import net.minecraft.entity.ai.goal.AvoidEntityGoal;
import net.minecraft.entity.ai.goal.RandomWalkingGoal;
import net.minecraft.entity.ai.goal.SwimGoal;
import net.minecraft.entity.monster.CreeperEntity;
import net.minecraft.entity.passive.CowEntity;
import net.minecraft.world.World;
public class GlowCowEntity extends CowEntity {
public GlowCowEntity(EntityType<? extends CowEntity> p_i48567_1_, World p_i48567_2_) {
super((EntityType<? extends CowEntity>) MyEntities.GLOW_COW_ENTITY, p_i48567_2_);
}
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new SwimGoal(this));
this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, CreeperEntity.class, 8.0F, 0.5F, 0.5F));
this.goalSelector.addGoal(2, new RandomWalkingGoal(this, 5));
}
}
glowcowrender.java:
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.renderer.entity.LivingRenderer;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.fml.client.registry.IRenderFactory;
@OnlyIn(Dist.CLIENT)
public class GlowCowRender extends LivingRenderer<GlowCowEntity, GlowCowModel> {
public GlowCowRender(EntityRendererManager manager) {
super(manager, new GlowCowModel(), 0.5F);
}
@Override
public ResourceLocation getTextureLocation(GlowCowEntity p_110775_1_) {
return new ResourceLocation("textures/entity/glow_cow.png");
}
public static class RenderFactory implements IRenderFactory<GlowCowEntity> {
@Override
public EntityRenderer<? super GlowCowEntity> createRenderFor(EntityRendererManager manager) {
return new GlowCowRender(manager);
}
}
}
1条答案
按热度按时间0md85ypi1#
我最终通过查看其他使用1.16的mod来实现它,我替换了它
具有
编译器仍然为转换为entitytype生成警告,因此可能有更好的方法,但这仍然有效。