无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Mod開(kāi)發(fā)-掉落

2022-03-15 22:49 作者:道家深湖  | 我要投稿

今日有人群里提問(wèn),“怎么生成掉落物”。

如果是你,你會(huì)怎么回答他?


如果你不分類討論,直接回答了這個(gè)問(wèn)題,那答案一定是錯(cuò)的。

方塊打碎和實(shí)體打碎都有掉落物;修改自己引入的方塊或?qū)嶓w,與修改原版的又不同。排列組合一下,這就四種情況了。遇到這種情況,最好是問(wèn)清楚他要干什么。

固然,本質(zhì)上掉落物都是EntityItem類的對(duì)象,一個(gè)個(gè)對(duì)應(yīng)著ItemStack的實(shí)體,但是如何找準(zhǔn)修改掉落物的接口,調(diào)用哪些接口生成這些掉落物,是因情況而異的。

先討論那些可以修改原版內(nèi)容的情況。

生物的死亡戰(zhàn)利品,我推薦監(jiān)聽(tīng)LivingDropsEvent事件,往getDrops獲得的list里塞EntityItem。

方塊的摧毀戰(zhàn)利品,我推薦監(jiān)聽(tīng)BlockEvent.HarvestDropsEvent,往getDrops獲得的list里塞ItemStack。


如果是你自己構(gòu)造的新方塊呢?

Block::getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune)

覆寫一下,往drops列表里塞東西。


如果是自己的新實(shí)體呢?

EntityLiving::dropLoot(boolean wasRecentlyHit, int lootingModifier, DamageSource source)?

覆寫一下,調(diào)用EntityLiving::dropItem,這個(gè)參數(shù)傳的是Item,簡(jiǎn)單,但不適合掉落具有復(fù)雜nbt的道具。

或者調(diào)用entityDropItem,這個(gè)參數(shù)傳的是ItemStack,方便掉落具有復(fù)雜nbt的道具。

LootTable這種東西不是不能用,它只是很不方便debug。如果你想用,可以去看其他的教程。


Mod開(kāi)發(fā)-掉落的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
阿拉善左旗| 江阴市| 台北市| 项城市| 延庆县| 永胜县| 通山县| 禹州市| 化州市| 望城县| 新郑市| 绩溪县| 沛县| 清原| 柳州市| 文登市| 博兴县| 镇赉县| 奇台县| 青神县| 铜陵市| 手游| 大关县| 万载县| 龙江县| 抚宁县| 和静县| 甘洛县| 南宫市| 上林县| 息烽县| 常熟市| 肥东县| 江孜县| 浙江省| 志丹县| 克山县| 西华县| 桐柏县| 广丰县| 诸暨市|