你怎么说,植物在 Minecraft Mods 中是透明的

问题描述 投票:0回答:1

在阅读之前:

我已经测试过了,这段代码仍然有效。但我不喜欢那里的错误,问题只是,是否有另一种方法,因为我现在的代码将来可能无法工作。


我一直在关注此处链接的有关如何创建 Minecraft Mod 的教程系列一段时间,直到我陷入第 9 集。

教程系列(可以推荐给每一个新人): https://www.youtube.com/watch?v=LpoSy091wYI&list=PLKGarocXCE1HrC60yuTNTGRoZc6hf5Uvl&index=1

我被困在第(9)集:

https://www.youtube.com/watch?v=_tD0-CHZIeE&list=PLKGarocXCE1HrC60yuTNTGRoZc6hf5Uvl&index=9

本集讲述如何为 Minecraft 制作新作物。 在视频中4:20左右,他添加了一行代码,出现了我遇到的错误。

他解释说,这条线是为了让纹理中不可见的像素在游戏中的 3D 模型中实际上不可见。

但问题是:每次我尝试写出该代码时都会出现错误。

它总是说,这是错误的,但我不太明白为什么。 IDE 还说,错误的代码是 “标记为删除”

代码行如下所示:

@Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
    public static class ClientModEvents {

        @SubscribeEvent
        public static void onClientSetup(FMLClientSetupEvent event) {
            ItemBlockRenderTypes.setRenderLayer(ModBlocks.BLUEBERRY_CROP.get(), RenderType.cutout());
        }
    }

位于项目的主类中,名为:

TestMod.java

我指的确切行是这一行:

ItemBlockRenderTypes.setRenderLayer(ModBlocks.BLUEBERRY_CROP.get(), RenderType.cutout());

错误始终出现在

.setRenderLayer()
的正下方,因此它表明这是不正确的。

在视频中,预览中也没有删除线,但在我的代码中却是。

我也尝试过使用其他类型的

.setRenderlayer()
,但没有成功。

这也是它在我的 IDE 中的外观图像:

所以我的问题是:

  • 这个是不是更新了,所以变了,不能再这样用了?
  • 如果是,你现在会怎么写?
  • 或者您甚至不必再这样做了?

如果有人想复制这个:我正在使用 IntelliJ-IDEATemurium 17 SDK 并且 Mod 在 Minecraft 1.19(.0)

上运行
java minecraft minecraft-forge
1个回答
2
投票

在 1.19+ 中,不再建议在代码中设置渲染类型。相反,您应该通过 JSON 文件来完成此操作,如下所示:

{
  "parent": "minecraft:block/crop",
  "textures": {
    "crop": "examplemod:block/blueberry_crop"
  },
  "render_type": "minecraft:cutout"
}

render_type
有很多变体,例如
minecraft:solid
(默认)、
minecraft:cutout
(大多数植物都需要它)、
minecraft:translucent
(对于彩色玻璃等方块来说需要它)等等.

有关

render_type
的更多信息可以在 Forge 官方文档中找到。

© www.soinside.com 2019 - 2024. All rights reserved.