我正在尝试为我为MC 1.10创建的模式更改播放器的模型。我已经尝试了几件事,但没有任何效果。我已经制作了一个模型和渲染器,但无法让它替换播放器。这是我尝试过的(自定义模型叫做Hover Claws(长篇故事)):
RenderingRegistry.registerEntityRenderingHandler(EntityPlayer.class, (IRenderFactory)RenderHoverClawsFactory.INSTANCE);
此外:
public class RenderCustomPlayerEvent
{
RenderHoverClaws render = new RenderHoverClaws(Minecraft.getMinecraft().getRenderManager(), new ModelHoverClaws(), 1F);
@Subscribe
public void renderCustomPlayer(RenderPlayerEvent.Pre pre)
{
pre.setCanceled(true);
render.doRender((EntityLiving) pre.getEntityLiving(), 0D, -1.625, 0D, 0F, 0.0625F);
}
}
我浏览了整个网站,以及我的世界和伪造论坛。
请帮助!
编辑:我已经通过IChun查看了Morph mod的源代码,但我无法找到它如何改变播放器模型。如果你通过说我应该看看这个mod来回答这个问题,那么请指导我进行实际播放器模型更改的代码部分。答案 0 :(得分:0)
首先,我建议你不要这样做,因为许多模特和模特都依赖于玩家看起来像他一样,东西经过精心调整,看起来很好。
RenderingRegistry.registerEntityRenderingHandler(EntityPlayer.class, new IRenderFactory(){@Override
public Render createRenderFor(RenderManager manager) {
return new RenderPlayerRobotABC(manager,new ModelHoverClaws(), 0.3F);
}
});
你的模型是从RenderPlayer类中取消的RenderPlayerRobotABC()。
在forgeSrc中查看RenderPlayer,复制所有代码,然后更改所需内容。
然后,渲染播放器模型并将悬停爪添加为图层。
protected void setDamageLayer() {
this.addLayer(new LayerRenderer(){
@Override
public void doRenderLayer(EntityLivingBase player, float par2, float par3,
float partialTicks, float par5, float par6, float par7, float scale) {
RenderTools.bindTexture("textures/entity/player/hvoerclaws.png");
claws.setLivingAnimations(player,par2,par3,partialTicks);
claws.render(player, par2, par3, par5, par6, par7, scale);
}
@Override
public boolean shouldCombineTextures() {
return false;
}
});
}
一些关键部分依赖于所有字段/方法都可访问,因此请确保它们是: - )