最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

Minecraft基巖版實(shí)體、方塊、物品事件格式詳解

2022-08-26 14:55 作者:方法放寒假  | 我要投稿

定義事件

定義事件Definition Event)是一種可以用于實(shí)體、方塊和物品的JSON定義中的事件。

默認(rèn)值

可能性:1.0

自身過(guò)濾器合集類型:與(0)

觸發(fā)器過(guò)濾器合集類型:與(0)

定義事件類型:無(wú)(3)

邏輯

模式

每個(gè)事件加載的邏輯順序

事件接受的值:一個(gè)事件加載器,一個(gè)JSON值(本事件的定義JSON),一個(gè)事件調(diào)用者,一個(gè)事件響應(yīng)工廠。其中事件調(diào)用者即正在執(zhí)行該事件的類型,如下:

先讀取weight字段并計(jì)算、存值,取絕對(duì)值并覆蓋默認(rèn)的可能性值。

檢測(cè)該事件的調(diào)用者,如果是活動(dòng)對(duì)象(1),讀取filters字段并存值、解析,否則(即是方塊(0)或物品(2))讀取condition字段并存值、評(píng)估。

檢測(cè)是否存在randomize字段,如果存在,讀取randomize字段并檢測(cè)是否存在sequence字段,如果二者皆存在,提示內(nèi)容日志錯(cuò)誤,并忽略sequence字段。如果randomize字段不存在,檢測(cè)并讀取sequence字段。randomize字段或sequence字段是一個(gè)數(shù)組,數(shù)組中每個(gè)對(duì)象稱為一個(gè)子事件,將讀取到的所有子事件稱為一個(gè)合集,遞歸加載合集中的每個(gè)子事件,而后將整個(gè)合集存入該父事件中,并將該父事件的定義事件類型更改為序列(1)或隨機(jī)(2)。如果二者皆不存在,該事件的定義事件類型更改為葉節(jié)點(diǎn)(0),并繼續(xù)執(zhí)行下述邏輯。

讀取trigger字段并按照定義觸發(fā)器的常規(guī)解析方式解析該定義觸發(fā)器。

檢測(cè)該事件的調(diào)用者,如果是活動(dòng)對(duì)象(1),讀取add字段(若有)和remove字段(若有)并解析。二者格式皆為一個(gè)對(duì)象,目前內(nèi)只有component_groups字段,用于添加或移除一個(gè)組件組。

如果事件響應(yīng)工廠存在(前提之一為已打開(kāi)“假日創(chuàng)作者功能”‘實(shí)驗(yàn)性玩法,目前有三種事件響應(yīng)工廠,分別是活動(dòng)對(duì)象、物品和方塊),對(duì)該葉節(jié)點(diǎn)進(jìn)行模式驗(yàn)證(schema validation)。若驗(yàn)證通過(guò)(即JSON結(jié)構(gòu)合乎一個(gè)事件響應(yīng)),執(zhí)行事件響應(yīng)邏輯。如果驗(yàn)證失敗將強(qiáng)制將該事件的定義事件類型更改為無(wú)(3)并報(bào)內(nèi)容日志錯(cuò)誤。

事件響應(yīng)

首先明確一點(diǎn),實(shí)體(即活動(dòng)對(duì)象)、物品和方塊是共用事件響應(yīng)的,一個(gè)事件響應(yīng)不屬于上述任何一種事物,只存該事物會(huì)調(diào)用哪種事件響應(yīng)的邏輯,比如,CommandResponserun_command)事件響應(yīng)早期會(huì)被實(shí)體、物品和方塊調(diào)用,后期出現(xiàn)了專門為實(shí)體調(diào)用的ActorCommandResponseCommandResponse依舊同時(shí)為物品和方塊調(diào)用,調(diào)用時(shí)他們使用的邏輯是一致的,而ShootEventResponse事件響應(yīng)只會(huì)被物品調(diào)用。

同時(shí)還要明確一點(diǎn),任何事件響應(yīng)的使用都需要“假日創(chuàng)作者功能”‘實(shí)驗(yàn)性玩法。

事件響應(yīng)列表

ActorCommandResponse

target為起點(diǎn)執(zhí)行一條或多條命令。

SetPropertyResponse

設(shè)置實(shí)體的一個(gè)屬性,接受一般值或Molang表達(dá)式。

CommandResponse

target為起點(diǎn)執(zhí)行一條或多條命令。

DecrementStackEventResponse

物品堆疊減少1。

DamageResponse

對(duì)target造成type類型的amount點(diǎn)帶有擊退的傷害或損壞。特別地,當(dāng)對(duì)物品造成損壞時(shí),type字段不表示任何意義,可以為任意字符串。當(dāng)對(duì)實(shí)體造成傷害時(shí),如果typefire,會(huì)額外地點(diǎn)燃實(shí)體。

DieEventResponse

致實(shí)體死亡或方塊掉落。

MobEffectResponse

給予一個(gè)狀態(tài)效果。

RemoveMobEffectResponse

移除一個(gè)或全部狀態(tài)效果。

ParticleEffectResponse

在一個(gè)位置帶有數(shù)據(jù)值播放一個(gè)舊版粒子。

PlaySoundResponse


SetBlockProperty

設(shè)置方塊的一個(gè)屬性,接受一般值或Molang表達(dá)式。

ShootEventResponse

發(fā)射一個(gè)彈射物,彈射物的發(fā)射角度如上所示,初始威力為對(duì)應(yīng)實(shí)體的minecraft:projectile組件的power字段的值乘以此處的launch_power字段的值,不確定性為對(duì)應(yīng)實(shí)體的minecraft:projectile組件的uncertainty_base字段的值減去該實(shí)體所在存檔的難度乘以組件uncertainty_multiplier字段的值,基速度為零向量,彈射物無(wú)特定攻擊目標(biāo),無(wú)傷害擁有者。

SwingEventResponse

使持有該物品的實(shí)體播放擺臂動(dòng)畫。

TeleportResponse

傳送一個(gè)實(shí)體。

TransformItemResponse

將物品轉(zhuǎn)化為另一個(gè)物品。

SetBlock

在當(dāng)前方塊處設(shè)置方塊類型。

SetBlockAtPos

在相對(duì)于當(dāng)前方塊的偏移位置處設(shè)置方塊類型。

SpawnLootEventResponse

在存檔中以0.0幸運(yùn)值無(wú)作用實(shí)體無(wú)玩家無(wú)傷害來(lái)源的模式從戰(zhàn)利品表中抽取物品并掉落在該方塊處。

事件響應(yīng)工廠

附錄:定義觸發(fā)器

定義觸發(fā)器Definition Trigger)是一種可以用于實(shí)體、方塊和物品的JSON定義中的觸發(fā)器。

邏輯

定義觸發(fā)器分為適用于物品和方塊的普通定義觸發(fā)器和適用于實(shí)體的活動(dòng)對(duì)象定義觸發(fā)器。

模式

附錄:過(guò)濾器組

過(guò)濾器組Filter Group)指實(shí)體中需要條件的位置傳入的過(guò)濾器集合,一個(gè)過(guò)濾器組中可以有一個(gè)或多個(gè)過(guò)濾器。

邏輯

每個(gè)過(guò)濾器組都可以有子過(guò)濾器組或一個(gè)過(guò)濾器組成。過(guò)濾器的合集類型默認(rèn)由執(zhí)行該過(guò)濾器的組件、事件響應(yīng)或觸發(fā)器提供,比如所有的定義事件中執(zhí)行的過(guò)濾器以及定義事件中的trigger觸發(fā)器和事件響應(yīng)中執(zhí)行的過(guò)濾器的默認(rèn)合集類型都為“與”(AND,0)。

模式

注意事項(xiàng)

在源碼層面中,以下這種格式的結(jié)構(gòu)中,如果父級(jí)(示例中為top)的合集類型為OR,會(huì)自動(dòng)在該父級(jí)下新建一個(gè)合計(jì)類型為AND的子過(guò)濾器組,并將該結(jié)構(gòu)視為該合集類型為AND的子組的結(jié)構(gòu)進(jìn)行解析。

簡(jiǎn)言之,父級(jí)如果是OR的情況下,如果父級(jí)被解析為一個(gè)對(duì)象,而且對(duì)該象中沒(méi)有test字段(即不是葉節(jié)點(diǎn)),而且該對(duì)象中的字段數(shù)目不止1個(gè)(嚴(yán)格大于1),那么在該父級(jí)下會(huì)先新建一個(gè)AND合集類型的子組,將該對(duì)象視為該子組的內(nèi)容來(lái)解析。如果該父級(jí)解析為一個(gè)數(shù)組,則不受任何影響;如果該父級(jí)是AND或NOT,也不受此影響。上述格式等價(jià)轉(zhuǎn)換成下述格式后,將會(huì)正常按照OR的邏輯進(jìn)行解析:

該邏輯保證了所有非葉節(jié)點(diǎn)的表現(xiàn)為對(duì)象的節(jié)點(diǎn)的邏輯都是AND或NOT(一般可來(lái)說(shuō),如果是根節(jié)點(diǎn),可以肯定為AND,因?yàn)楦?jié)點(diǎn)的合集類型是由組件、事件響應(yīng)或觸發(fā)器來(lái)提供的,一般不會(huì)提供NOT的根節(jié)點(diǎn)邏輯)。表現(xiàn)為數(shù)組的邏輯則需要根據(jù)父級(jí)來(lái)確定。


Minecraft基巖版實(shí)體、方塊、物品事件格式詳解的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
庆阳市| 连州市| 繁峙县| 江源县| 益阳市| 四平市| 灵宝市| 铜陵市| 孝义市| 通江县| 克拉玛依市| 伽师县| 灯塔市| 牟定县| 临江市| 光泽县| 景洪市| 鄯善县| 措勤县| 策勒县| 南乐县| 孝义市| 宜君县| 两当县| 志丹县| 南平市| 泾阳县| 交城县| 枞阳县| 四平市| 自贡市| 深圳市| 乌海市| 临泽县| 措美县| 蒲城县| 湘阴县| 崇信县| 文安县| 新田县| 合作市|