3,417
个编辑
MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针。
如果在编辑的过程中遇到了什么问题,可以去讨论板提问。
为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证。
MCBBS Wiki GitHub群组已上线!
您可以在回声洞中发表吐槽!
服务器状态监控。点击进入
本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>
(// Edit via Wikiplus) |
(// Edit via Wikiplus) |
||
| 第17行: | 第17行: | ||
* getItemBurnTime:如果你想添加熔炉燃料,那么覆写这个方法即可。返回一个正整数,则默认它是一个熔炉燃料,且单位为tick;若返回0,则代表它不可燃;返回-1,则代表它的可燃状态交给原版Minecraft去决定。 | * getItemBurnTime:如果你想添加熔炉燃料,那么覆写这个方法即可。返回一个正整数,则默认它是一个熔炉燃料,且单位为tick;若返回0,则代表它不可燃;返回-1,则代表它的可燃状态交给原版Minecraft去决定。 | ||
* getIsRepairable:用于决定该ItemStack可被什么ItemStack修复。两个参数中,toRepair是被修复的,repair是修复材料。 | * getIsRepairable:用于决定该ItemStack可被什么ItemStack修复。两个参数中,toRepair是被修复的,repair是修复材料。 | ||
对于高级方块,Block类下有如下常用方法值得覆写: | |||
* isPassable:决定实体是否可以从该方块中穿过,参考原版的门方块,就不难理解了。 | |||
* isReplacable:决定该方块是否可以在其他方块被放置时取代——如果不能,则方块会被放置在该方块的侧面。如原版的液体方块和空气方块在这里返回true。 | |||
* neighborChanged:覆写该方法,即可自定义该种方块的周围发生方块更新时执行的游戏逻辑。一般有两个用途:1.激发红石信号,如观察者方块;2.触发对该方块的状态的合法性检验(这里的“状态”不仅仅包括BlockState,是一种抽象的概念),如悬空的沙子在周围有方块更新时会立刻下坠。 | |||
* breakBlock:在方块被破坏后触发,注意不限于被玩家破坏(如果想要限定被玩家破坏才执行逻辑,可以考虑覆写onBlockDestroyedByPlayer),但使用<code>World#setBlockState</code>替换该方块时,不会触发这个方法。 | |||
* onBlockActivated:玩家右键点击该方块后触发,注意两只手都会触发一次,所以最好先判定传入的EnumHand。原版的工作台和熔炉,在这里,就是让玩家打开相应的GUI界面。 | |||
* getStateForPlacement:上一节已经提到过,不再赘述。 | |||
* onBlockClicked:这个方法从MCP得到的名字可能会很有迷惑性,读者可能会以为它在左键、右键被按下时都会触发,实际上不对,只有左键点击它会触发该方法。 | |||
* onBlockPlacedBy:在某个生物实体放置该方块时被触发,注意不限于玩家,像末影人这种非玩家生物也可以。 | |||
* isFlammable、getFlammability等一系列方法:用于决定该方块是否可燃、燃烧能力等一系列和火方块相关的参数。按照Minecraft原版的设计,这些东西本来应该通过<code>BlockFire#setFireInfo</code>这个公开方法指定,不过经过Forge的patch后,我们便可以在Block类中覆写方法指定了。 | |||
* getDrops:得到该方块所有可能的掉落物(以一个NonNullList<ItemStack>的形式呈现),由于每破坏一次该种方块,该方法就会调用一次,所以在这里可以利用利用随机数。 | |||
* getExpDrop:得到该方块被采集时,掉落的经验量。 | |||
* isReplacableOreGen:决定:在区块生成的过程中,已经被生成的该种方块是否可以被矿石取代。 | |||
想必读者也看到了,覆写这些方法通常涉及到一些很重要也比较复杂的类,这些类比较琐碎,应用也非常广泛,如果真的按照“讲到了对应的专题再详细讲”这个原则安排内容,会导致一系列问题——例如,World类是一个非常重要的类,用到的地方超级多,但是读者想必也不希望掌握如何创建一个新维度后,再回来写高级的物品/方块吧?因此这一节就专门讲这些琐碎的类以及它们涉及到的一些重要概念。 | 想必读者也看到了,覆写这些方法通常涉及到一些很重要也比较复杂的类,这些类比较琐碎,应用也非常广泛,如果真的按照“讲到了对应的专题再详细讲”这个原则安排内容,会导致一系列问题——例如,World类是一个非常重要的类,用到的地方超级多,但是读者想必也不希望掌握如何创建一个新维度后,再回来写高级的物品/方块吧?因此这一节就专门讲这些琐碎的类以及它们涉及到的一些重要概念。 | ||
== 一些枚举类 == | == 一些枚举类 == | ||