2326 lines
88 KiB
Markdown
2326 lines
88 KiB
Markdown
---
|
||
sidebarDepth: 1
|
||
---
|
||
# 方块
|
||
|
||
# 索引
|
||
|
||
| 事件 | <div style="width: 3em"></div> | 描述 |
|
||
| --- | --- | --- |
|
||
| [BlockDestroyByLiquidServerEvent](方块.md#blockdestroybyliquidserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:方块被水流破坏的事件 |
|
||
| [BlockLiquidStateChangeAfterServerEvent](方块.md#blockliquidstatechangeafterserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:方块转为含水或者脱离含水(流体)后触发 |
|
||
| [BlockLiquidStateChangeServerEvent](方块.md#blockliquidstatechangeserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:方块转为含水或者脱离含水(流体)前触发 |
|
||
| [BlockNeighborChangedServerEvent](方块.md#blockneighborchangedserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:自定义方块周围的方块发生变化时,需要配置netease:neighborchanged_sendto_script,详情请查阅《自定义农作物》文档 |
|
||
| [BlockRandomTickServerEvent](方块.md#blockrandomtickserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:自定义方块配置<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html#netease-random-tick">netease:random_tick</a>随机tick时 |
|
||
| [BlockRemoveServerEvent](方块.md#blockremoveserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:监听该事件的方块在销毁时触发,可以通过[ListenOnBlockRemoveEvent](#listenonblockremoveevent)方法进行监听,或者通过json组件<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html#netease-listen-block-remove">netease:listen_block_remove</a>进行配置 |
|
||
| [BlockSnowStateChangeAfterServerEvent](方块.md#blocksnowstatechangeafterserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:方块转为含雪或者脱离含雪后触发 |
|
||
| [BlockSnowStateChangeServerEvent](方块.md#blocksnowstatechangeserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:方块转为含雪或者脱离含雪前触发 |
|
||
| [BlockStrengthChangedServerEvent](方块.md#blockstrengthchangedserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:自定义机械元件方块红石信号量发生变化时触发 |
|
||
| [ChestBlockTryPairWithServerEvent](方块.md#chestblocktrypairwithserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:两个并排的小箱子方块准备组合为一个大箱子方块时 |
|
||
| [ClientBlockUseEvent](方块.md#clientblockuseevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:玩家右键点击新版自定义方块(或者通过接口AddBlockItemListenForUseEvent增加监听的MC原生游戏方块)时客户端抛出该事件(该事件tick执行,需要注意效率问题)。 |
|
||
| [CommandBlockContainerOpenEvent](方块.md#commandblockcontaineropenevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家点击命令方块,尝试打开命令方块的设置界面 |
|
||
| [CommandBlockUpdateEvent](方块.md#commandblockupdateevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家尝试修改命令方块的内置命令时 |
|
||
| [DestroyBlockEvent](方块.md#destroyblockevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当方块已经被玩家破坏时触发该事件。 |
|
||
| [DirtBlockToGrassBlockServerEvent](方块.md#dirtblocktograssblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:泥土方块变成草方块时触发 |
|
||
| [EntityPlaceBlockAfterServerEvent](方块.md#entityplaceblockafterserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当生物成功放置方块后触发 |
|
||
| [FallingBlockBreakServerEvent](方块.md#fallingblockbreakserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当下落的方块实体被破坏时,服务端触发该事件 |
|
||
| [FallingBlockCauseDamageBeforeClientEvent](方块.md#fallingblockcausedamagebeforeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:当下落的方块开始计算砸到实体的伤害时,客户端触发该事件 |
|
||
| [FallingBlockCauseDamageBeforeServerEvent](方块.md#fallingblockcausedamagebeforeserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当下落的方块开始计算砸到实体的伤害时,服务端触发该事件 |
|
||
| [FallingBlockReturnHeavyBlockServerEvent](方块.md#fallingblockreturnheavyblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当下落的方块实体变回普通重力方块时,服务端触发该事件 |
|
||
| [FarmBlockToDirtBlockServerEvent](方块.md#farmblocktodirtblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:耕地退化为泥土时触发 |
|
||
| [GrassBlockToDirtBlockServerEvent](方块.md#grassblocktodirtblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:草方块变成泥土方块时触发 |
|
||
| [HeavyBlockStartFallingServerEvent](方块.md#heavyblockstartfallingserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当重力方块变为下落的方块实体后,服务端触发该事件 |
|
||
| [HopperTryPullInServerEvent](方块.md#hoppertrypullinserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当漏斗上方连接容器后,容器往漏斗开始输入物品时触发,事件仅触发一次 |
|
||
| [HopperTryPullOutServerEvent](方块.md#hoppertrypulloutserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当漏斗以毗邻的方式连接容器时,即从旁边连接容器时,漏斗向容器开始输出物品时触发,事件仅触发一次 |
|
||
| [OnAfterFallOnBlockClientEvent](方块.md#onafterfallonblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:当实体降落到方块后客户端触发,主要用于力的计算 |
|
||
| [OnAfterFallOnBlockServerEvent](方块.md#onafterfallonblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当实体降落到方块后服务端触发,主要用于力的计算 |
|
||
| [OnBeforeFallOnBlockServerEvent](方块.md#onbeforefallonblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当实体刚降落到方块上时服务端触发,主要用于伤害计算 |
|
||
| [OnEntityInsideBlockClientEvent](方块.md#onentityinsideblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:当实体碰撞盒所在区域有方块时,客户端持续触发 |
|
||
| [OnEntityInsideBlockServerEvent](方块.md#onentityinsideblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当实体碰撞盒所在区域有方块时,服务端持续触发 |
|
||
| [OnModBlockNeteaseEffectCreatedClientEvent](方块.md#onmodblockneteaseeffectcreatedclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 自定义方块实体绑定的特效创建成功事件,在自定义方块实体中绑定的特效创建成功时触发以及使用接口CreateFrameEffectForBlockEntity或CreateParticleEffectForBlockEntity为自定义方块实体添加特效成功时触发。 |
|
||
| [OnStandOnBlockClientEvent](方块.md#onstandonblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:当实体站立到方块上时客户端持续触发 |
|
||
| [OnStandOnBlockServerEvent](方块.md#onstandonblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当实体站立到方块上时服务端持续触发 |
|
||
| [PistonActionServerEvent](方块.md#pistonactionserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:活塞或者粘性活塞推送/缩回影响附近方块时 |
|
||
| [PlayerTryDestroyBlockClientEvent](方块.md#playertrydestroyblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 当玩家即将破坏方块时,客户端线程触发该事件。主要用于床,旗帜,箱子这些根据方块实体数据进行渲染的方块,一般情况下请使用ServerPlayerTryDestroyBlockEvent |
|
||
| [ServerBlockEntityTickEvent](方块.md#serverblockentitytickevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:自定义方块配置了netease:block_entity组件并设tick为true,方块在玩家的模拟距离(新建存档时可以设置,默认为4个区块)内,或者在tickingarea内的时候触发 |
|
||
| [ServerBlockUseEvent](方块.md#serverblockuseevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家右键点击新版自定义方块(或者通过接口AddBlockItemListenForUseEvent增加监听的MC原生游戏方块)时服务端抛出该事件(该事件tick执行,需要注意效率问题)。 |
|
||
| [ServerEntityTryPlaceBlockEvent](方块.md#serverentitytryplaceblockevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当生物试图放置方块时触发该事件。 |
|
||
| [ServerPlaceBlockEntityEvent](方块.md#serverplaceblockentityevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:手动放置或通过接口创建含自定义方块实体的方块时触发,此时可向该方块实体中存放数据 |
|
||
| [ServerPlayerTryDestroyBlockEvent](方块.md#serverplayertrydestroyblockevent) | <span style="display:inline;color:#ff5555">服务端</span> | 当玩家即将破坏方块时,服务端线程触发该事件。 |
|
||
| [ShearsDestoryBlockBeforeClientEvent](方块.md#shearsdestoryblockbeforeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:玩家手持剪刀破坏方块时,有剪刀特殊效果的方块会在客户端线程触发该事件 |
|
||
| [ShearsDestoryBlockBeforeServerEvent](方块.md#shearsdestoryblockbeforeserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家手持剪刀破坏方块时,有剪刀特殊效果的方块会在服务端线程触发该事件 |
|
||
| [StartDestroyBlockClientEvent](方块.md#startdestroyblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家开始挖方块时触发。创造模式下不触发。 |
|
||
| [StartDestroyBlockServerEvent](方块.md#startdestroyblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家开始挖方块时触发。创造模式下不触发。 |
|
||
| [StepOffBlockClientEvent](方块.md#stepoffblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:实体移动离开一个实心方块时触发 |
|
||
| [StepOffBlockServerEvent](方块.md#stepoffblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:实体移动离开一个实心方块时触发 |
|
||
| [StepOnBlockClientEvent](方块.md#steponblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:实体刚移动至一个新实心方块时触发。 |
|
||
| [StepOnBlockServerEvent](方块.md#steponblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:实体刚移动至一个新实心方块时触发。 |
|
||
# 方块
|
||
|
||
## BlockDestroyByLiquidServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:方块被水流破坏的事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| liquidName | str | 流体方块id |
|
||
| blockName | str | 方块id |
|
||
| auxValue | int | 方块附加值 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 指令或者接口的设置不会触发该事件
|
||
|
||
|
||
|
||
## BlockLiquidStateChangeAfterServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:方块转为含水或者脱离含水(流体)后触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块附加值 |
|
||
| dimension | int | 方块维度 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| turnLiquid | bool | 是否转为含水,true则转为含水,false则脱离含水 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## BlockLiquidStateChangeServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:方块转为含水或者脱离含水(流体)前触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块附加值 |
|
||
| dimension | int | 方块维度 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| turnLiquid | bool | 是否转为含水,true则转为含水,false则脱离含水 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## BlockNeighborChangedServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:自定义方块周围的方块发生变化时,需要配置netease:neighborchanged_sendto_script,详情请查阅《自定义农作物》文档
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| dimensionId | int | 维度 |
|
||
| posX | int | 方块x坐标 |
|
||
| posY | int | 方块y坐标 |
|
||
| posZ | int | 方块z坐标 |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块附加值 |
|
||
| neighborPosX | int | 变化方块x坐标 |
|
||
| neighborPosY | int | 变化方块y坐标 |
|
||
| neighborPosZ | int | 变化方块z坐标 |
|
||
| fromBlockName | str | 方块变化前的identifier,包含命名空间及名称 |
|
||
| fromBlockAuxValue | int | 方块变化前附加值 |
|
||
| toBlockName | str | 方块变化后的identifier,包含命名空间及名称 |
|
||
| toAuxValue | int | 方块变化后附加值 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## BlockRandomTickServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:自定义方块配置<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html#netease-random-tick">netease:random_tick</a>随机tick时
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| posX | int | 方块x坐标 |
|
||
| posY | int | 方块y坐标 |
|
||
| posZ | int | 方块z坐标 |
|
||
| blockName | str | 方块名称 |
|
||
| fullName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块附加值 |
|
||
| dimensionId | int | 实体维度 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## BlockRemoveServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:监听该事件的方块在销毁时触发,可以通过[ListenOnBlockRemoveEvent](#listenonblockremoveevent)方法进行监听,或者通过json组件<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html#netease-listen-block-remove">netease:listen_block_remove</a>进行配置
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 方块位置x |
|
||
| y | int | 方块位置y |
|
||
| z | int | 方块位置z |
|
||
| fullName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块的附加值 |
|
||
| dimension | int | 该方块所在的维度 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="ListenOnBlockRemoveEvent"></span>
|
||
### ListenOnBlockRemoveEvent
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
是否监听方块BlockRemoveServerEvent事件,可以动态修改json组件<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html#netease-listen-block-remove">netease:listen_block_remove</a>的值
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| identifier | str | 方块identifier,如minecraft:wheat |
|
||
| listen | bool | 是否监听 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- 对于一些特殊的方块,注意要使用对应的方块Id参数(如砖块楼梯,监听的方块Id应该为minecraft:brick_block)
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.ListenOnBlockRemoveEvent("minecraft:wheat", True)
|
||
```
|
||
|
||
|
||
|
||
## BlockSnowStateChangeAfterServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:方块转为含雪或者脱离含雪后触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| dimension | int | 方块维度 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| turnSnow | bool | 是否转为含雪,true则转为含雪,false则脱离含雪 |
|
||
| setBlockType | int | 方块进入脱离含雪的原因,参考[SetBlockType](../枚举值/SetBlockType.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## BlockSnowStateChangeServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:方块转为含雪或者脱离含雪前触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| dimension | int | 方块维度 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| turnSnow | bool | 是否转为含雪,true则转为含雪,false则脱离含雪 |
|
||
| setBlockType | int | 方块进入脱离含雪的原因,参考[SetBlockType](../枚举值/SetBlockType.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## BlockStrengthChangedServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:自定义机械元件方块红石信号量发生变化时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| posX | int | 方块x坐标 |
|
||
| posY | int | 方块y坐标 |
|
||
| posZ | int | 方块z坐标 |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块附加值 |
|
||
| newStrength | int | 变化后的红石信号量 |
|
||
| dimensionId | int | 维度 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## ChestBlockTryPairWithServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:两个并排的小箱子方块准备组合为一个大箱子方块时
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| cancel | bool | 是否允许触发,默认为False,若设为True,可阻止小箱子组合成为一个大箱子 |
|
||
| blockX | int | 小箱子方块x坐标 |
|
||
| blockY | int | 小箱子方块y坐标 |
|
||
| blockZ | int | 小箱子方块z坐标 |
|
||
| otherBlockX | int | 将要与之组合的另外一个小箱子方块x坐标 |
|
||
| otherBlockY | int | 将要与之组合的另外一个小箱子方块y坐标 |
|
||
| otherBlockZ | int | 将要与之组合的另外一个小箱子方块z坐标 |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## ClientBlockUseEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家右键点击新版自定义方块(或者通过接口AddBlockItemListenForUseEvent增加监听的MC原生游戏方块)时客户端抛出该事件(该事件tick执行,需要注意效率问题)。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家Id |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| aux | int | 方块附加值 |
|
||
| cancel | bool | 设置为True可拦截与方块交互的逻辑。 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 有的方块是在ServerBlockUseEvent中设置cancel生效,但是有部分方块是在ClientBlockUseEvent中设置cancel才生效,如有需求建议在两个事件中同时设置cancel以保证生效。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="AddBlockItemListenForUseEvent"></span>
|
||
### AddBlockItemListenForUseEvent
|
||
|
||
method in mod.client.component.blockUseEventWhiteListCompClient.BlockUseEventWhiteListComponentClient
|
||
|
||
- 描述
|
||
|
||
增加blockName方块对ClientBlockUseEvent事件的脚本层监听
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块名称,格式:namespace:name:auxvalue,其中namespace:name:*匹配所有的auxvalue |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否增加成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockUseEventWhiteList(clientApi.GetLevelId())
|
||
comp.AddBlockItemListenForUseEvent("minecraft:nether_brick_stairs:2")
|
||
# 注意blockName格式为namespace:name:auxvalue,如果不填auxvalue,则默认为0
|
||
# auxValue详细值详见官方wiki,如https://minecraft-zh.gamepedia.com/楼梯 中的‘方块数据值’
|
||
```
|
||
|
||
|
||
|
||
<span id="RemoveBlockItemListenForUseEvent"></span>
|
||
### RemoveBlockItemListenForUseEvent
|
||
|
||
method in mod.client.component.blockUseEventWhiteListCompClient.BlockUseEventWhiteListComponentClient
|
||
|
||
- 描述
|
||
|
||
移除blockName方块对ClientBlockUseEvent事件的脚本层监听
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块名称,格式:namespace:name:auxvalue,其中namespace:name:*匹配所有的auxvalue |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否移除成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockUseEventWhiteList(clientApi.GetLevelId())
|
||
comp.RemoveBlockItemListenForUseEvent("minecraft:nether_brick_stairs:2")
|
||
# 注意blockName格式为namespace:name:auxvalue,如果不填auxvalue,则默认为0
|
||
# auxValue详细值详见官方wiki,如https://minecraft-zh.gamepedia.com/楼梯 中的‘方块数据值’
|
||
```
|
||
|
||
|
||
|
||
<span id="ClearAllListenForBlockUseEventItems"></span>
|
||
### ClearAllListenForBlockUseEventItems
|
||
|
||
method in mod.client.component.blockUseEventWhiteListCompClient.BlockUseEventWhiteListComponentClient
|
||
|
||
- 描述
|
||
|
||
清空所有已添加方块对ClientBlockUseEvent事件的脚本层监听
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否清空成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockUseEventWhiteList(clientApi.GetLevelId())
|
||
comp.ClearAllListenForBlockUseEventItems()
|
||
```
|
||
|
||
|
||
|
||
## CommandBlockContainerOpenEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家点击命令方块,尝试打开命令方块的设置界面
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家实体id |
|
||
| isBlock | bool | 是否以方块坐标的形式定位命令方块,当为True时下述的blockX/blockY/blockZ有意义,当为False时,下述的victimId有意义 |
|
||
| blockX | int | 命令方块位置x,当isBlock为True时有效 |
|
||
| blockY | int | 命令方块位置y,当isBlock为True时有效 |
|
||
| blockZ | int | 命令方块位置z,当isBlock为True时有效 |
|
||
| victimId | str | 命令方块对应的逻辑实体的唯一id,当isBlock为False时有效 |
|
||
| cancel | bool | 修改为True时,可以阻止玩家打开命令方块的设置界面 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## CommandBlockUpdateEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家尝试修改命令方块的内置命令时
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家实体id |
|
||
| playerUid | int/long | 玩家的uid |
|
||
| command | str | 企图修改的命令方块中的命令内容字符串 |
|
||
| isBlock | bool | 是否以方块坐标的形式定位命令方块,当为True时下述的blockX/blockY/blockZ有意义,当为False时,下述的victimId有意义 |
|
||
| blockX | int | 命令方块位置x,当isBlock为True时有效 |
|
||
| blockY | int | 命令方块位置y,当isBlock为True时有效 |
|
||
| blockZ | int | 命令方块位置z,当isBlock为True时有效 |
|
||
| victimId | str | 命令方块对应的逻辑实体的唯一id,当isBlock为False时有效 |
|
||
| cancel | bool | 修改为True时,可以阻止玩家修改命令方块的内置命令 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 当修改的目标为命令方块矿车时(此时isBlock为False),设置cancel为True,依旧可以阻止修改命令方块矿车的内部指令,但是从客户端能够看到命令方块矿车的内部指令变化了,不过这仅仅是假象,重新登录或者其他客户端打开命令方块矿车的设置界面,就会发现其实内部指令没有变化
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## DestroyBlockEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当方块已经被玩家破坏时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| face | int | 方块被敲击的面向id,参考[Facing枚举](../枚举值/Facing.md) |
|
||
| fullName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxData | int | 方块附加值 |
|
||
| playerId | str | 破坏方块的玩家ID |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 在生存模式或创造模式下都会触发
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## DirtBlockToGrassBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:泥土方块变成草方块时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| dimension | int | 方块维度 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 指令或者接口的设置不会触发该事件
|
||
|
||
|
||
|
||
## EntityPlaceBlockAfterServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当生物成功放置方块后触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| fullName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxData | int | 方块附加值 |
|
||
| entityId | str | 试图放置方块的生物ID |
|
||
| dimensionId | int | 维度id |
|
||
| face | int | 点击方块的面,参考[Facing枚举](../枚举值/Facing.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 部分放置后会产生实体的方块、可操作的方块、带有特殊逻辑的方块,不会触发该事件,包括但不限于床、门、告示牌、花盆、红石中继器、船、炼药锅、头部模型、蛋糕、酿造台、盔甲架等。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## FallingBlockBreakServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当下落的方块实体被破坏时,服务端触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| fallingBlockId | str | 下落的方块实体id |
|
||
| fallingBlockX | float | 下落的方块实体位置x |
|
||
| fallingBlockY | float | 下落的方块实体位置y |
|
||
| fallingBlockZ | float | 下落的方块实体位置z |
|
||
| blockName | str | 重力方块的identifier,包含命名空间及名称 |
|
||
| fallTickAmount | int | 下落的方块实体持续下落了多少tick |
|
||
| dimensionId | int | 下落的方块实体维度id |
|
||
| cancelDrop | bool | 是否取消方块物品掉落,可以在脚本层中设置 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有下落的方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/3-特殊方块/6-自定义重力方块.html">自定义重力方块</a>)
|
||
|
||
|
||
|
||
## FallingBlockCauseDamageBeforeClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当下落的方块开始计算砸到实体的伤害时,客户端触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| fallingBlockId | int | 下落的方块实体id |
|
||
| fallingBlockX | float | 下落的方块实体位置x |
|
||
| fallingBlockY | float | 下落的方块实体位置y |
|
||
| fallingBlockZ | float | 下落的方块实体位置z |
|
||
| blockName | str | 重力方块的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 下落的方块实体维度id |
|
||
| collidingEntitys | list(str) | 当前碰撞到的实体列表id(客户端只能获取到玩家),如果没有的话是None |
|
||
| fallTickAmount | int | 下落的方块实体持续下落了多少tick |
|
||
| fallDistance | float | 下落的方块实体持续下落了多少距离 |
|
||
| isHarmful | bool | 客户端始终为false,因为客户端不会计算伤害值 |
|
||
| fallDamage | int | 对实体的伤害 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有下落的方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/3-特殊方块/6-自定义重力方块.html">自定义重力方块</a>)
|
||
- 当该事件的参数数据(fallTickAmount,fallDistance,collidingEntitys,fallDamage)与服务端事件FallingBlockCauseDamageBeforeServerEvent数据有差异时,请以服务端事件数据为准。
|
||
|
||
|
||
|
||
## FallingBlockCauseDamageBeforeServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当下落的方块开始计算砸到实体的伤害时,服务端触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| fallingBlockId | str | 下落的方块实体id |
|
||
| fallingBlockX | float | 下落的方块实体位置x |
|
||
| fallingBlockY | float | 下落的方块实体位置y |
|
||
| fallingBlockZ | float | 下落的方块实体位置z |
|
||
| blockName | str | 重力方块的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 下落的方块实体维度id |
|
||
| collidingEntitys | list(str) | 当前碰撞到的实体列表id,如果没有的话是None |
|
||
| fallTickAmount | int | 下落的方块实体持续下落了多少tick |
|
||
| fallDistance | float | 下落的方块实体持续下落了多少距离 |
|
||
| isHarmful | bool | 是否计算对实体的伤害,引擎传来的值由json配置和伤害是否大于0决定,可在脚本层修改传回引擎 |
|
||
| fallDamage | int | 对实体的伤害,引擎传来的值距离和json配置决定,可在脚本层修改传回引擎 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有下落的方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/3-特殊方块/6-自定义重力方块.html">自定义重力方块</a>)
|
||
- 服务端通常触发在客户端之后,而且有时会相差一个tick,这就意味着可能发生以下现象:服务端fallTickAmount比配置强制破坏时间多1tick,下落的距离、下落的伤害计算出来比客户端时间多1tick的误差。
|
||
|
||
|
||
|
||
## FallingBlockReturnHeavyBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当下落的方块实体变回普通重力方块时,服务端触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| fallingBlockId | int | 下落的方块实体id |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| heavyBlockName | str | 重力方块的identifier,包含命名空间及名称 |
|
||
| prevHereBlockName | str | 变回重力方块时,原本方块位置的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 下落的方块实体维度id |
|
||
| fallTickAmount | int | 下落的方块实体持续下落了多少tick |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有下落的方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/3-特殊方块/6-自定义重力方块.html">自定义重力方块</a>)
|
||
|
||
|
||
|
||
## FarmBlockToDirtBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:耕地退化为泥土时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| dimension | int | 方块维度 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| setBlockType | int | 耕地退化为泥土的原因,参考[SetBlockType](../枚举值/SetBlockType.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 指令或者接口的设置不会触发该事件
|
||
|
||
|
||
|
||
## GrassBlockToDirtBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:草方块变成泥土方块时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| dimension | int | 方块维度 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 指令或者接口的设置不会触发该事件
|
||
|
||
|
||
|
||
## HeavyBlockStartFallingServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当重力方块变为下落的方块实体后,服务端触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| fallingBlockId | str | 下落的方块实体id |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 重力方块的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 下落的方块实体维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有下落的方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/3-特殊方块/6-自定义重力方块.html">自定义重力方块</a>)
|
||
|
||
|
||
|
||
## HopperTryPullInServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当漏斗上方连接容器后,容器往漏斗开始输入物品时触发,事件仅触发一次
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 漏斗位置x |
|
||
| y | int | 漏斗位置y |
|
||
| z | int | 漏斗位置z |
|
||
| abovePosX | int | 交互的容器位置x |
|
||
| abovePosY | int | 交互的容器位置y |
|
||
| abovePosZ | int | 交互的容器位置z |
|
||
| dimensionId | int | 维度id |
|
||
| canHopper | bool | 是否允许容器往漏斗加东西(要关闭此交互,需先监听此事件再放置容器) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## HopperTryPullOutServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当漏斗以毗邻的方式连接容器时,即从旁边连接容器时,漏斗向容器开始输出物品时触发,事件仅触发一次
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 漏斗位置x |
|
||
| y | int | 漏斗位置y |
|
||
| z | int | 漏斗位置z |
|
||
| attachedPosX | int | 交互的容器位置x |
|
||
| attachedPosY | int | 交互的容器位置y |
|
||
| attachedPosZ | int | 交互的容器位置z |
|
||
| dimensionId | int | 维度id |
|
||
| canHopper | bool | 是否允许漏斗往容器加东西(要关闭此交互,需先监听此事件再放置容器) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## OnAfterFallOnBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当实体降落到方块后客户端触发,主要用于力的计算
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| entityId | str | 实体id |
|
||
| posX | float | 实体位置x |
|
||
| posY | float | 实体位置y |
|
||
| posZ | float | 实体位置z |
|
||
| motionX | float | 瞬时移动X方向的力 |
|
||
| motionY | float | 瞬时移动Y方向的力 |
|
||
| motionZ | float | 瞬时移动Z方向的力 |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| calculate | bool | 是否按脚本层传值计算力 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>)
|
||
- 如果要在脚本层修改motion,回传的需要是浮点型,例如需要赋值0.0而不是0
|
||
- 如果需要修改实体的力,最好配合服务端事件同步修改,避免产生非预期现象
|
||
- 因为引擎最后一定会按照原版方块规则计算力(普通方块置0,床、粘液块等反弹),所以脚本层如果想直接修改当前力需要将calculate设为true取消原版计算,按照传回值计算
|
||
- 引擎在落地之后OnAfterFallOnBlockClientEvent会一直触发,因此请在脚本层中做对应的逻辑判断
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## OnAfterFallOnBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当实体降落到方块后服务端触发,主要用于力的计算
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| entityId | str | 实体id |
|
||
| posX | float | 实体位置x |
|
||
| posY | float | 实体位置y |
|
||
| posZ | float | 实体位置z |
|
||
| motionX | float | 瞬时移动X方向的力 |
|
||
| motionY | float | 瞬时移动Y方向的力 |
|
||
| motionZ | float | 瞬时移动Z方向的力 |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| calculate | bool | 是否按脚本层传值计算力 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>)
|
||
- 如果要在脚本层修改motion,回传的需要是浮点型,例如需要赋值0.0而不是0
|
||
- 如果需要修改实体的力,最好配合客户端事件同步修改,避免产生非预期现象
|
||
- 因为引擎最后一定会按照原版方块规则计算力(普通方块置0,床、粘液块等反弹),所以脚本层如果想直接修改当前力需要将calculate设为true取消原版计算,按照传回值计算
|
||
- 引擎在落地之后,OnAfterFallOnBlockServerEvent会一直触发,因此请在脚本层中做对应的逻辑判断
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## OnBeforeFallOnBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当实体刚降落到方块上时服务端触发,主要用于伤害计算
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| entityId | str | 实体id |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| fallDistance | float | 实体下降距离,可在脚本层传给引擎 |
|
||
| cancel | bool | 是否取消引擎对实体下降伤害的计算 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>)
|
||
- 如果要在脚本层修改fallDistance,回传的一定要是浮点型,例如需要赋值0.0而不是0
|
||
- 可能会因为轻微的反弹触发多次,可在脚本层针对fallDistance的值进行判断
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## OnEntityInsideBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当实体碰撞盒所在区域有方块时,客户端持续触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| entityId | str | 实体id |
|
||
| dimensionId | int | 实体所在维度id |
|
||
| slowdownMultiX | float | 实体移速X方向的减速比例 |
|
||
| slowdownMultiY | float | 实体移速Y方向的减速比例 |
|
||
| slowdownMultiZ | float | 实体移速Z方向的减速比例 |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| cancel | bool | 可由脚本层回传True给引擎,阻止触发后续原版逻辑 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>)
|
||
,原版方块需要先通过RegisterOnEntityInside接口注册才能触发
|
||
- 如果需要修改slowdownMulti/cancel,强烈建议与服务端事件同步修改,避免出现被服务端矫正等非预期现象。
|
||
- 如果要在脚本层修改slowdownMulti,回传的一定要是浮点型,例如需要赋值1.0而不是1
|
||
- 有任意slowdownMulti参数被传回非0值时生效减速比例
|
||
- slowdownMulti参数更像是一个Buff,例如并不是立刻计算,而是先保存在实体属性里延后计算、在已经有slowdownMulti属性的情况下会取最低的值、免疫掉落伤害等,与原版蜘蛛网逻辑基本一致。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnEntityInside"></span>
|
||
### RegisterOnEntityInside
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_entity_inside组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_entity_inside组件
|
||
- 可以多次调用修改原组件的值,删除组件请使用UnRegisterOnEntityInside接口
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnEntityInside("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnEntityInside"></span>
|
||
### UnRegisterOnEntityInside
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_entity_inside组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_entity_inside组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnEntityInside("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|
||
## OnEntityInsideBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当实体碰撞盒所在区域有方块时,服务端持续触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| entityId | str | 实体id |
|
||
| slowdownMultiX | float | 实体移速X方向的减速比例,可在脚本层被修改 |
|
||
| slowdownMultiY | float | 实体移速Y方向的减速比例,可在脚本层被修改 |
|
||
| slowdownMultiZ | float | 实体移速Z方向的减速比例,可在脚本层被修改 |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| cancel | bool | 可由脚本层回传True给引擎,阻止触发后续原版逻辑 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>)
|
||
,原版方块需要先通过RegisterOnEntityInside接口注册才能触发
|
||
- 如果需要修改slowdownMulti/cancel,强烈建议与客户端事件同步修改,避免出现客户端表现不一致等非预期现象。
|
||
- 如果要在脚本层修改slowdownMulti,回传的一定要是浮点型,例如需要赋值1.0而不是1
|
||
- 有任意slowdownMulti参数被传回非0值时生效减速比例
|
||
- slowdownMulti参数更像是一个Buff,例如并不是立刻计算,而是先保存在实体属性里延后计算、在已经有slowdownMulti属性的情况下会取最低的值、免疫掉落伤害等,与原版蜘蛛网逻辑基本一致。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnEntityInside"></span>
|
||
### RegisterOnEntityInside
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_entity_inside组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_entity_inside组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
- 可以多次调用修改原组件的值,删除组件请使用UnRegisterOnEntityInside接口
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnEntityInside("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnEntityInside"></span>
|
||
### UnRegisterOnEntityInside
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_entity_inside组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_entity_inside组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnEntityInside("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|
||
## OnModBlockNeteaseEffectCreatedClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
自定义方块实体绑定的特效创建成功事件,在自定义方块实体中绑定的特效创建成功时触发以及使用接口CreateFrameEffectForBlockEntity或CreateParticleEffectForBlockEntity为自定义方块实体添加特效成功时触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| effectName | str | 创建成功的特效的自定义键值名称 |
|
||
| id | int | 该特效的id |
|
||
| effectType | int | 该特效的类型,0为粒子特效,1为序列帧特效 |
|
||
| blockPos | tuple(float,float,float) | 该特效绑定的自定义方块实体的世界坐标 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## OnStandOnBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当实体站立到方块上时客户端持续触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| entityId | str | 实体id |
|
||
| dimensionId | int | 实体所在维度id |
|
||
| posX | float | 实体位置x |
|
||
| posY | float | 实体位置y |
|
||
| posZ | float | 实体位置z |
|
||
| motionX | float | 瞬时移动X方向的力 |
|
||
| motionY | float | 瞬时移动Y方向的力 |
|
||
| motionZ | float | 瞬时移动Z方向的力 |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| cancel | bool | 可由脚本层回传True给引擎,阻止触发后续原版逻辑 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>)
|
||
,原版方块需要先通过RegisterOnStandOn接口注册才能触发
|
||
- 如果要在脚本层修改motion/cancel,强烈建议配合OnStandOnBlockServerEvent服务端事件同步修改,避免出现被服务端矫正等非预期现象
|
||
- 如果要在脚本层修改motion,回传的一定要是浮点型,例如需要赋值0.0而不是0
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnStandOn"></span>
|
||
### RegisterOnStandOn
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_stand_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_stand_on组件
|
||
- 游戏原版逻辑是不会跑方块客户端OnStandOn相关逻辑,使用接口给原版方块添加客户端组件的话,无论是否发送python事件,都会使原版方块多跑客户端相关逻辑,
|
||
例如粘液块这种会有一定物理计算的方块,在客户端多跑一次计算之后,会有手感上的差别。
|
||
- 可以多次调用修改原组件的值,删除组件请使用UnRegisterOnStandOn接口
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnStandOn("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnStandOn"></span>
|
||
### UnRegisterOnStandOn
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_stand_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_stand_on组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnStandOn("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|
||
## OnStandOnBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当实体站立到方块上时服务端持续触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| entityId | str | 实体id |
|
||
| dimensionId | int | 实体所在维度id |
|
||
| posX | float | 实体位置x |
|
||
| posY | float | 实体位置y |
|
||
| posZ | float | 实体位置z |
|
||
| motionX | float | 瞬时移动X方向的力 |
|
||
| motionY | float | 瞬时移动Y方向的力 |
|
||
| motionZ | float | 瞬时移动Z方向的力 |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| cancel | bool | 可由脚本层回传True给引擎,阻止触发后续原版逻辑 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>)
|
||
,原版方块需要先通过RegisterOnStandOn接口注册才能触发
|
||
- 如果需要修改motion/cancel,强烈建议配合客户端事件同步修改,避免出现客户端表现不一致等现象
|
||
- 如果要在脚本层修改motion,回传的一定要是浮点型,例如需要赋值0.0而不是0
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnStandOn"></span>
|
||
### RegisterOnStandOn
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_stand_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_stand_on组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
- 游戏原版逻辑是不会跑方块客户端OnStandOn相关逻辑,使用接口给原版方块添加客户端组件的话,无论是否发送python事件,都会使原版方块多跑客户端相关逻辑,
|
||
例如粘液块这种会有一定物理计算的方块,在客户端多跑一次计算之后,会有手感上的差别。
|
||
- 可以多次调用修改原组件的值,删除组件请使用UnRegisterOnStandOn接口
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnStandOn("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnStandOn"></span>
|
||
### UnRegisterOnStandOn
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_stand_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_stand_on组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnStandOn("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|
||
## PistonActionServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:活塞或者粘性活塞推送/缩回影响附近方块时
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| cancel | bool | 是否允许触发,默认为False,若设为True,可阻止触发后续的事件 |
|
||
| action | str | 推送时=expanding;缩回时=retracting |
|
||
| pistonFacing | int | 活塞的朝向,参考[Facing枚举](../枚举值/Facing.md) |
|
||
| pistonMoveFacing | int | 活塞的运动方向,参考[Facing枚举](../枚举值/Facing.md) |
|
||
| dimensionId | int | 活塞方块所在的维度 |
|
||
| pistonX | int | 活塞方块的x坐标 |
|
||
| pistonY | int | 活塞方块的y坐标 |
|
||
| pistonZ | int | 活塞方块的z坐标 |
|
||
| blockList | list[(x,y,z),...] | 活塞运动影响到产生被移动效果的方块坐标(x,y,z),均为int类型 |
|
||
| breakBlockList | list[(x,y,z),...] | 活塞运动影响到产生被破坏效果的方块坐标(x,y,z),均为int类型 |
|
||
| entityList | list[string,...] | 活塞运动影响到产生被移动或被破坏效果的实体的ID列表 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## PlayerTryDestroyBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
当玩家即将破坏方块时,客户端线程触发该事件。主要用于床,旗帜,箱子这些根据方块实体数据进行渲染的方块,一般情况下请使用ServerPlayerTryDestroyBlockEvent
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| face | int | 方块被敲击的面向id,参考[Facing枚举](../枚举值/Facing.md) |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxData | int | 方块附加值 |
|
||
| playerId | str | 试图破坏方块的玩家ID |
|
||
| cancel | bool | 默认为False,在脚本层设置为True就能取消该方块的破坏 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## ServerBlockEntityTickEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:自定义方块配置了netease:block_entity组件并设tick为true,方块在玩家的模拟距离(新建存档时可以设置,默认为4个区块)内,或者在tickingarea内的时候触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 该方块名称 |
|
||
| dimension | int | 该方块所在的维度 |
|
||
| posX | int | 该方块的x坐标 |
|
||
| posY | int | 该方块的y坐标 |
|
||
| posZ | int | 该方块的z坐标 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- **方块实体的tick事件频率为每秒钟20次**
|
||
- 触发本事件时,若正在退出游戏,将无法获取到抛出本事件的方块实体数据(GetBlockEntityData函数返回None),也无法对其进行操作
|
||
|
||
|
||
|
||
## ServerBlockUseEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家右键点击新版自定义方块(或者通过接口AddBlockItemListenForUseEvent增加监听的MC原生游戏方块)时服务端抛出该事件(该事件tick执行,需要注意效率问题)。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家Id |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| aux | int | 方块附加值 |
|
||
| cancel | bool | 设置为True可拦截与方块交互的逻辑。 |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 当对原生方块进行使用时,如堆肥桶等类似有 使用 功能的方块使用物品时,会触发该事件,而ServerItemUseOnEvent则不会被触发。当需要获取触发时使用的物品时,可以通过item组件获取手上有的物品。对应的客户端事件同理。
|
||
- 有的方块是在ServerBlockUseEvent中设置cancel生效,但是有部分方块是在ClientBlockUseEvent中设置cancel才生效,如有需求建议在两个事件中同时设置cancel以保证生效。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="AddBlockItemListenForUseEvent"></span>
|
||
### AddBlockItemListenForUseEvent
|
||
|
||
method in mod.server.component.blockUseEventWhiteListCompServer.BlockUseEventWhiteListComponentServer
|
||
|
||
- 描述
|
||
|
||
增加blockName方块对ServerBlockUseEvent事件的脚本层监听
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块名称,格式:namespace:name:auxvalue,其中namespace:name:*匹配所有的auxvalue |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否增加成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockUseEventWhiteList(levelId)
|
||
comp.AddBlockItemListenForUseEvent("minecraft:nether_brick_stairs:2")
|
||
# 注意blockName格式为namespace:name:auxvalue,如果不填auxvalue,则默认为0
|
||
# auxValue详细值详见官方wiki,如https://minecraft-zh.gamepedia.com/楼梯 中的‘方块数据值’
|
||
```
|
||
|
||
|
||
|
||
<span id="RemoveBlockItemListenForUseEvent"></span>
|
||
### RemoveBlockItemListenForUseEvent
|
||
|
||
method in mod.server.component.blockUseEventWhiteListCompServer.BlockUseEventWhiteListComponentServer
|
||
|
||
- 描述
|
||
|
||
移除blockName方块对ServerBlockUseEvent事件的脚本层监听
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块名称,格式:namespace:name:auxvalue,其中namespace:name:*匹配所有的auxvalue |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否移除成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockUseEventWhiteList(levelId)
|
||
comp.RemoveBlockItemListenForUseEvent("minecraft:nether_brick_stairs:2")
|
||
# 注意blockName格式为namespace:name:auxvalue,如果不填auxvalue,则默认为0
|
||
# auxValue详细值详见官方wiki,如https://minecraft-zh.gamepedia.com/楼梯 中的‘方块数据值’
|
||
```
|
||
|
||
|
||
|
||
<span id="ClearAllListenForBlockUseEventItems"></span>
|
||
### ClearAllListenForBlockUseEventItems
|
||
|
||
method in mod.server.component.blockUseEventWhiteListCompServer.BlockUseEventWhiteListComponentServer
|
||
|
||
- 描述
|
||
|
||
清空所有已添加方块对ServerBlockUseEvent事件的脚本层监听
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否清空成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockUseEventWhiteList(levelId)
|
||
comp.ClearAllListenForBlockUseEventItems()
|
||
```
|
||
|
||
|
||
|
||
## ServerEntityTryPlaceBlockEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当生物试图放置方块时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| fullName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxData | int | 方块附加值 |
|
||
| entityId | str | 试图放置方块的生物ID |
|
||
| dimensionId | int | 维度id |
|
||
| face | int | 点击方块的面,参考[Facing枚举](../枚举值/Facing.md) |
|
||
| cancel | bool | 默认为False,在脚本层设置为True就能取消该方块的放置 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 部分放置后会产生实体的方块、可操作的方块、带有特殊逻辑的方块,不会触发该事件,包括但不限于床、门、告示牌、花盆、红石中继器、船、炼药锅、头部模型、蛋糕、酿造台、盔甲架等。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## ServerPlaceBlockEntityEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:手动放置或通过接口创建含自定义方块实体的方块时触发,此时可向该方块实体中存放数据
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 该方块名称 |
|
||
| dimension | int | 该方块所在的维度 |
|
||
| posX | int | 该方块的x坐标 |
|
||
| posY | int | 该方块的y坐标 |
|
||
| posZ | int | 该方块的z坐标 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## ServerPlayerTryDestroyBlockEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
当玩家即将破坏方块时,服务端线程触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| x | int | 方块x坐标 |
|
||
| y | int | 方块y坐标 |
|
||
| z | int | 方块z坐标 |
|
||
| face | int | 方块被敲击的面向id,参考[Facing枚举](../枚举值/Facing.md) |
|
||
| fullName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxData | int | 方块附加值 |
|
||
| playerId | str | 试图破坏方块的玩家ID |
|
||
| dimensionId | int | 维度id |
|
||
| cancel | bool | 默认为False,在脚本层设置为True就能取消该方块的破坏 |
|
||
| spawnResources | bool | 是否生成掉落物,默认为True,在脚本层设置为False就能取消生成掉落物 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 若需要禁止某些特殊方块的破坏,需要配合PlayerTryDestroyBlockClientEvent一起使用,例如床,旗帜,箱子这些根据方块实体数据进行渲染的方块
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## ShearsDestoryBlockBeforeClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家手持剪刀破坏方块时,有剪刀特殊效果的方块会在客户端线程触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxData | int | 方块附加值 |
|
||
| dropName | str | 触发剪刀效果的掉落物identifier,包含命名空间及名称 |
|
||
| dropCount | int | 触发剪刀效果的掉落物数量 |
|
||
| playerId | str | 触发剪刀效果的玩家id |
|
||
| dimensionId | int | 玩家触发时的维度id |
|
||
| cancelShears | bool | 是否取消剪刀效果 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 目前仅绊线会触发,需要取消剪刀效果得配合ShearsDestoryBlockBeforeServerEvent同时使用
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## ShearsDestoryBlockBeforeServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家手持剪刀破坏方块时,有剪刀特殊效果的方块会在服务端线程触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockX | int | 方块位置x |
|
||
| blockY | int | 方块位置y |
|
||
| blockZ | int | 方块位置z |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxData | int | 方块附加值 |
|
||
| dropName | str | 触发剪刀效果的掉落物identifier,包含命名空间及名称 |
|
||
| dropCount | int | 触发剪刀效果的掉落物数量 |
|
||
| playerId | str | 触发剪刀效果的玩家id |
|
||
| dimensionId | int | 玩家触发时的维度id |
|
||
| cancelShears | bool | 是否取消剪刀效果 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 该事件触发在ServerPlayerTryDestroyBlockEvent之后,如果在ServerPlayerTryDestroyBlockEvent事件中设置了取消Destory或取消掉落物会导致该事件不触发
|
||
- 取消剪刀效果后不掉落任何东西的方块类型:蜘蛛网、枯萎的灌木、草丛、下界苗、树叶、海草、藤蔓
|
||
- 绊线取消剪刀效果需要配合ShearsDestoryBlockBeforeClientEvent同时使用,否则在表现上可能展现出来的还是剪刀剪断后的效果。绊线取消剪刀效果后依然会掉落成线。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## StartDestroyBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
玩家开始挖方块时触发。创造模式下不触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| pos | tuple(float,float,float) | 方块的坐标 |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块的附加值 |
|
||
| playerId | str | 玩家id |
|
||
| cancel | bool | 修改为True时,可阻止玩家进入挖方块的状态。需要与StartDestroyBlockServerEvent一起修改。 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 如果是隔着火焰挖方块,即使将该事件cancel掉,火焰也会被扑灭。如果要阻止火焰扑灭,需要配合ExtinguishFireClientEvent使用
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## StartDestroyBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家开始挖方块时触发。创造模式下不触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| pos | tuple(float,float,float) | 方块的坐标 |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| auxValue | int | 方块的附加值 |
|
||
| playerId | str | 玩家id |
|
||
| dimensionId | int | 维度id |
|
||
| cancel | bool | 修改为True时,可阻止玩家进入挖方块的状态。需要与StartDestroyBlockClientEvent一起修改。 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 如果是隔着火焰挖方块,即使将该事件cancel掉,火焰也会被扑灭。如果要阻止火焰扑灭,需要配合ExtinguishFireServerEvent使用
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## StepOffBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:实体移动离开一个实心方块时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockX | int | 方块x坐标 |
|
||
| blockY | int | 方块y坐标 |
|
||
| blockZ | int | 方块z坐标 |
|
||
| entityId | str | 触发的entity的唯一ID |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,自定义方块需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>),
|
||
原版方块需要先通过RegisterOnStepOff接口注册才能触发
|
||
- 压力板与绊线钩这种非实心方块不会触发
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnStepOff"></span>
|
||
### RegisterOnStepOff
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_step_off组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_step_off组件
|
||
- 可以多次调用修改原组件的值,删除组件请使用UnRegisterOnStepOff接口
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnStepOff("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnStepOff"></span>
|
||
### UnRegisterOnStepOff
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_step_off组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_step_off组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnStepOff("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|
||
## StepOffBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:实体移动离开一个实心方块时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockX | int | 方块x坐标 |
|
||
| blockY | int | 方块y坐标 |
|
||
| blockZ | int | 方块z坐标 |
|
||
| entityId | str | 触发的entity的唯一ID |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 不是所有方块都会触发该事件,自定义方块需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>),
|
||
原版方块需要先通过RegisterOnStepOff接口注册才能触发
|
||
- 压力板与绊线钩这种非实心方块不会触发
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnStepOff"></span>
|
||
### RegisterOnStepOff
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_step_off组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_step_off组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
- 可以多次调用修改原组件的值,删除组件请使用UnRegisterOnStepOff接口
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnStepOff("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnStepOff"></span>
|
||
### UnRegisterOnStepOff
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_step_off组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_step_off组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnStepOff("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|
||
## StepOnBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:实体刚移动至一个新实心方块时触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| cancel | bool | 是否允许触发,默认为False,若设为True,可阻止触发后续原版逻辑 |
|
||
| blockX | int | 方块x坐标 |
|
||
| blockY | int | 方块y坐标 |
|
||
| blockZ | int | 方块z坐标 |
|
||
| entityId | str | 触发的entity的唯一ID |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 在合并微软更新之后,本事件触发时机与微软molang实验性玩法组件"minecraft:on_step_on"一致
|
||
- 压力板与绊线钩在过去的版本的事件是可以触发的,但在更新后这种非实心方块并不会触发,有需要的可以使用OnEntityInsideBlockClientEvent事件。
|
||
- 不是所有方块都会触发该事件,自定义方块需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>),
|
||
原版方块需要先通过RegisterOnStepOn接口注册才能触发。原版的红石矿默认注册了,但深层红石矿没有默认注册。
|
||
- 如果需要修改cancel,强烈建议配合服务端事件同步修改,避免出现被服务端矫正等非预期现象。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnStepOn"></span>
|
||
### RegisterOnStepOn
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_step_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_step_on组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnStepOn("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnStepOn"></span>
|
||
### UnRegisterOnStepOn
|
||
|
||
method in mod.client.component.blockInfoCompClient.BlockInfoComponentClient
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_step_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_step_on组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnStepOn("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|
||
## StepOnBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:实体刚移动至一个新实心方块时触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| cancel | bool | 是否允许触发,默认为False,若设为True,可阻止触发后续物理交互事件 |
|
||
| blockX | int | 方块x坐标 |
|
||
| blockY | int | 方块y坐标 |
|
||
| blockZ | int | 方块z坐标 |
|
||
| entityId | str | 触发的entity的唯一ID |
|
||
| blockName | str | 方块的identifier,包含命名空间及名称 |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 在合并微软更新之后,本事件触发时机与微软molang实验性玩法组件"minecraft:on_step_on"一致
|
||
- 压力板与绊线钩在过去的版本的事件是可以触发的,但在更新后这种非实心方块并不会触发,有需要的可以使用OnEntityInsideBlockServerEvent事件。
|
||
- 不是所有方块都会触发该事件,自定义方块需要在json中先配置触发开关(详情参考:<a href="../../../mcguide/20-玩法开发/15-自定义游戏内容/2-自定义方块/1-JSON组件.html">自定义方块JSON组件</a>),
|
||
原版方块需要先通过RegisterOnStepOn接口注册才能触发。原版的红石矿默认注册了,但深层红石矿没有默认注册。
|
||
- 如果需要修改cancel,强烈建议配合客户端事件同步修改,避免出现客户端表现不一致等非预期现象。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/2-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="RegisterOnStepOn"></span>
|
||
### RegisterOnStepOn
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态注册与修改netease:on_step_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
| sendPythonEvent | bool | 是否发送python事件,为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否注册成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态添加与修改原版方块的netease:on_step_on组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.RegisterOnStepOn("minecraft:redstone_ore", True)
|
||
```
|
||
|
||
|
||
|
||
<span id="UnRegisterOnStepOn"></span>
|
||
### UnRegisterOnStepOn
|
||
|
||
method in mod.server.component.blockInfoCompServer.BlockInfoComponentServer
|
||
|
||
- 描述
|
||
|
||
可以动态删除netease:on_step_on组件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| blockName | str | 方块标识符,包含命名空间,如minecraft:grass |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否删除成功 |
|
||
|
||
- 备注
|
||
- 目前仅能动态删除原版方块的netease:on_step_on组件
|
||
- (非租赁服联机)使用服务端接口注册会影响到房主客户端组件
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreateBlockInfo(levelId)
|
||
comp.UnRegisterOnStepOn("minecraft:redstone_ore")
|
||
```
|
||
|
||
|
||
|