【翻译】McJty教程之1.9渲染方块TESR&对象
三三的小狐狸
2018年02月14日 11:28
收录于文集
共20篇

想要看代码高亮的可以去原文地址或者我的微信公众号(pearapple_2015)查看。

原文链接:https://wiki.mcjty.eu/modding/index.php?title=Render_Block_TESR_/_OBJ-1.9

这篇是一个更加进阶的教程,在这篇中会介绍许多新的概念。首先你会看到如何制作一个能够在服务器端和客户端之间同步数据的tile entity。你还会看到我们如何把一个静态的对象模型和一个动态的对象模型结合起来使用。最后你会看到如何直接在世界里渲染任何物品。要做到这个我们需要实现一个TESR(TileEntity特殊渲染器)。最终的效果看起来像这样。你可以右击这个方块来插入和移除物品:

确保你像静态对象那个教程一样把我们的域名添加到了对象加载器:

然后是我们的方块:

接下来是tile entity。请注意用于在需要时我们把tile entity同步到客户端的额外的代码:

最后是TESR。需要注意的是静态模板不是在这里渲染。这是自动被处理的。我们只需要进行动画的处理和物品:

最后我们需要方块状态的json文件:

狐狸注:bake这个词是建模里面的,我查了下很多都是直接翻译成烘焙,但是总感觉不太好理解。我认为bake类似于渲染。至于lazy baking的lazy指的是一种优化思想:把任务推迟到必须的时刻,好处是避免重复计算,甚至不计算。像lazy loading(惰性加载)、lazy initializing(惰性初始化)之类的。大家可以参考下wiki上面的lazy loading概念(https://en.wikipedia.org/wiki/Lazy_loading)。