teddyxlandlee
7/24/2020, 8:57:08 AM


本人最近正在研发一个名叫Sweet Potato Mod(中文:烤地瓜Mod)的Fabric Mod。添加的作物出现了材质问题:井字格的每一个面都出现了白色的边框和黑色(本应该是透明的)像素。图2的最右侧作物是原版的马铃薯,却没有这个问题。

下面是一些细节:
- 材料采用了FabricMaterialBuilder,而不是原版的Material.PLANTS
- 模型中的parent对应的是minecraft:block/crop没错,blockstate参照原版胡萝卜完成。
- 材质也是参照原版胡萝卜的,并修改了一些像素
- 三种地瓜作物的blockstate文件内容完全相同
- 材质通过Photoshop CS6修图
squid233
7/24/2020, 9:38:06 AM
请在mod的ClientModInitializer中添加:
复制代码
- BlockRenderLayerMap.INSTANCE.putBlock(<YOURBLOCK>, RenderLayer.getCutout());
teddyxlandlee
7/24/2020, 9:44:53 AM
squid233 发表于 2020-7-24 17:38
请在mod的ClientModInitializer中添加:
你指的是onInitialize函数吗
squid233
7/24/2020, 9:46:18 AM
teddyxlandlee 发表于 2020-7-24 17:44
你指的是onInitialize函数吗
新建一个类实现ClientModInitializer
teddyxlandlee
7/24/2020, 9:53:19 AM
squid233 发表于 2020-7-24 17:46
新建一个类实现ClientModInitializer
啊~~我已经在主类的@Override public void onInitialize()方法中添加该代码,已成功解决该问题。非常感谢!
P.S. 顺便问一下这个ClientModInitializer怎么写,是否需要调用,可否给个格式?本人Fabric小白请见谅
squid233
7/24/2020, 10:01:11 AM
teddyxlandlee 发表于 2020-7-24 17:53
啊~~我已经在主类的@Override public void onInitialize()方法中添加该代码,已成功解决该问题。非常感谢 ...
- import net.fabricmc.api.ClientModInitializer;
- import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
- import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
- import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
- import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
- import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry;
- import net.fabricmc.fabric.impl.client.keybinding.KeyBindingRegistryImpl;
- import net.minecraft.client.render.RenderLayer;
- public final class ModClient implements ClientModInitializer {
- @Override
- public void onInitializeClient() {
- BlockRenderLayerMap.INSTANCE.putBlock(<YOURBLOCK>, RenderLayer.getCutout());
- }
- }
teddyxlandlee
7/24/2020, 10:02:42 AM
是直接放在跟主类同一个包下即可?
teddyxlandlee
7/24/2020, 10:07:45 AM
ClientModInitializer是直接放在跟主类同一个包下即可?还是你说的就是主类?
squid233
7/24/2020, 10:15:18 AM
teddyxlandlee 发表于 2020-7-24 18:07
ClientModInitializer是直接放在跟主类同一个包下即可?还是你说的就是主类?
放在同一个包下就可以