IMENDERDRAGON
本帖最后由 IMENDERDRAGON 于 2017-7-22 15:24 编辑

编写Mod时,怎么替换实体材质?比如,我在坐标(1,1,1)的地方放置了一个实体,然后我想把它的材质替换为"A.png",怎么做?我翻了好多MC的源代码也没找到答案
求解答。。



l1838783849
你可以像改材质包一样改的

IMENDERDRAGON
l1838783849 发表于 2017-7-22 22:36
你可以像改材质包一样改的

谢谢,不过如果是点击一个实体后更改材质要怎么做?

耗子
重写渲染器

IMENDERDRAGON

怎么重写?

耗子

看源码,看源码,看源码

IMENDERDRAGON
耗子 发表于 2017-7-23 15:44
看源码,看源码,看源码

我看过,都是初始化的方法

耗子
IMENDERDRAGON 发表于 2017-7-24 08:22
我看过,都是初始化的方法

看别人Mod的源码,其实要改动的地方很小,不就是一个bindTexture吗

雪尼
用blockstate映射

IMENDERDRAGON
本帖最后由 IMENDERDRAGON 于 2017-7-25 10:35 编辑
耗子 发表于 2017-7-24 09:17
看别人Mod的源码,其实要改动的地方很小,不就是一个bindTexture吗

谢谢,解决了。

IMENDERDRAGON

怎么映射?用getTIleEntity吗?

IMENDERDRAGON
耗子 发表于 2017-7-24 09:17
看别人Mod的源码,其实要改动的地方很小,不就是一个bindTexture吗

谢谢,问题已解决,不过控制实体贴图更新的方法在哪?

耗子
IMENDERDRAGON 发表于 2017-7-25 14:05
谢谢,问题已解决,不过控制实体贴图更新的方法在哪?

你给实体添加一个属性,然后通过这个属性bindTexture就可以了

IMENDERDRAGON
本帖最后由 IMENDERDRAGON 于 2017-7-26 08:26 编辑
耗子 发表于 2017-7-25 15:08
你给实体添加一个属性,然后通过这个属性bindTexture就可以了

怎么通过这个属性bindTexture?在属性里调用会报错

IMENDERDRAGON
本帖最后由 IMENDERDRAGON 于 2017-7-26 14:58 编辑
耗子 发表于 2017-7-25 15:08
你给实体添加一个属性,然后通过这个属性bindTexture就可以了

怎么调用bindTexture?在属性里new RenderBlockEntity(Minecraft.getMinecraft().getRenderManager()).bindTexture(材质路径);会报No OpenGL context found in the current thread或者Registering texture错

IMENDERDRAGON
怎么在bindTexture之后只让一个实体更改材质

耗子
IMENDERDRAGON 发表于 2017-7-26 14:35
怎么调用bindTexture?在属性里new RenderBlockEntity(Minecraft.getMinecraft().getRenderManager()).bin ...

你确定是在渲染器里面调用的吗?

IMENDERDRAGON
本帖最后由 IMENDERDRAGON 于 2017-7-26 21:29 编辑
耗子 发表于 2017-7-26 15:15
你确定是在渲染器里面调用的吗?

属性不是在实体文件里添加的吗?

耗子
IMENDERDRAGON 发表于 2017-7-26 21:15
属性不是在实体文件里添加的吗?

属性是实体,但渲染就是渲染器部分了,渲染器判断实体属性,然后绑定不同的材质

丶灬瑜天
加油~
我相信你很快就会解决的

IMENDERDRAGON
耗子 发表于 2017-7-26 21:50
属性是实体,但渲染就是渲染器部分了,渲染器判断实体属性,然后绑定不同的材质 ...

怎么让实体直接更新材质?加入循环后每秒20tick的渲染频率满足不了

耗子
渲染频率不是每秒20次,而是看电脑的处理能力的

IMENDERDRAGON
耗子 发表于 2017-7-27 13:06
渲染频率不是每秒20次,而是看电脑的处理能力的

那么为什么我用for循环加上所述的方法原来多个实体要渲染不同材质只渲染了一种材质?

耗子
IMENDERDRAGON 发表于 2017-7-27 15:41
那么为什么我用for循环加上所述的方法原来多个实体要渲染不同材质只渲染了一种材质? ...

为啥会有for循环

IMENDERDRAGON
耗子 发表于 2017-7-25 15:08
你给实体添加一个属性,然后通过这个属性bindTexture就可以了

这种应该怎么做?Mod源码混淆了

第一页 上一页 下一页 最后一页