Skip to content

Commit 2aac996

Browse files
committed
refactor: optimize ActorDamageCause
1 parent e03d4d1 commit 2aac996

File tree

10 files changed

+171
-146
lines changed

10 files changed

+171
-146
lines changed

docs/apis/EventAPI/EntityEvents.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,53 @@ Note that when the player dies, in addition to triggering `onPlayerDie` event, t
2626
The entity that dealt the damage (may be `Null`).
2727
- damage : `Integer`
2828
The amount of damage dealt.
29-
- cause : `Integer`
29+
- cause : `ActorDamageCause`
3030
Cause of injury
3131

3232
- Intercept events: function returns `false`
3333

34+
Here are values of `ActorDamageCause`:
35+
36+
| ActorDamageCause | Enum Value |
37+
|------------------|------------|
38+
| None | -1 |
39+
| Override | 0 |
40+
| Contact | 1 |
41+
| EntityAttack | 2 |
42+
| Projectile | 3 |
43+
| Suffocation | 4 |
44+
| Fall | 5 |
45+
| Fire | 6 |
46+
| FireTick | 7 |
47+
| Lava | 8 |
48+
| Drowning | 9 |
49+
| BlockExplosion | 10 |
50+
| EntityExplosion | 11 |
51+
| Void | 12 |
52+
| Suicide | 13 |
53+
| Magic | 14 |
54+
| Wither | 15 |
55+
| Starve | 16 |
56+
| Anvil | 17 |
57+
| Thorns | 18 |
58+
| FallingBlock | 19 |
59+
| Piston | 20 |
60+
| FlyIntoWall | 21 |
61+
| Magma | 22 |
62+
| Fireworks | 23 |
63+
| Lightning | 24 |
64+
| Charging | 25 |
65+
| Temperature | 26 |
66+
| Freezing | 27 |
67+
| Stalactite | 28 |
68+
| Stalagmite | 29 |
69+
| RamAttack | 30 |
70+
| SonicBoom | 31 |
71+
| Campfire | 32 |
72+
| SoulCampfire | 33 |
73+
| MaceSmash | 34 |
74+
| All | 35 |
75+
3476
#### `"onEntityExplode"` - Entity Explosion Event
3577

3678
- Listener function prototype

docs/apis/EventAPI/EntityEvents.zh.md

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -27,46 +27,51 @@
2727
伤害来源的实体对象(可能为`Null`
2828
- damage : `Float`
2929
受到的伤害数值
30-
- cause : `DamageCause`
30+
- cause : `ActorDamageCause`
3131
受伤原因
3232
- 拦截事件:函数返回`false`
3333

34-
DamageCause 为伤害原因枚举,枚举值如下,有问号的待验证,???待补充
35-
36-
| 伤害原因 | 枚举值 | 解释 |
37-
|-----------------|-------|----------------------------------------|
38-
| None | -0x01 | 其他 |
39-
| Override | 0x00 | 非正常方式(如脚本直接设置血量为0),这种方式的伤害不会被盔甲与buff吸收 |
40-
| Contact | 0x01 | 接触伤害(如仙人掌) |
41-
| EntityAttack | 0x02 | 实体攻击 |
42-
| Projectile | 0x03 | 抛射物攻击 |
43-
| Suffocation | 0x04 | 窒息(密封空间) |
44-
| Fall | 0x05 | 掉落 |
45-
| Fire | 0x06 | 燃烧 |
46-
| FireTick | 0x07 | 点燃 |
47-
| Lava | 0x08 | 熔岩 |
48-
| Drowning | 0x09 | 溺水 |
49-
| BlockExplosion | 0x0A | 方块爆炸 |
50-
| EntityExplosion | 0x0B | 实体爆炸 |
51-
| Void | 0x0C | 虚空 |
52-
| Suicide | 0x0D | 自杀 |
53-
| Magic | 0x0E | 尖牙对生物造成的伤害、守卫者对生物造成的魔法伤害和药水伤害等 |
54-
| Wither | 0x0F | 凋零效果 |
55-
| Starve | 0x10 | 饥饿 |
56-
| Anvil | 0x11 | 下落的铁砧 |
57-
| Thorns | 0x12 | 荆棘 |
58-
| FallingBlock | 0x13 | 下落的方块 |
59-
| Piston | 0x14 | 活塞 |
60-
| FlyIntoWall | 0x15 | 动能(滑翔撞墙) |
61-
| Magma | 0x16 | 岩浆块 |
62-
| Fireworks | 0x17 | 烟花 |
63-
| Lightning | 0x18 | 闪电 |
64-
| Charging | 0x19 | 充能(?) |
65-
| Temperature | 0x1A | 温度 (雪人?) |
66-
| Freezing | 0x1B | 冰冻 |
67-
| Stalactite | 0x1C | 被钟乳石砸到 |
68-
| Stalagmite | 0x1D | 掉落到石笋上 |
69-
| All | 0x1F | 所有 |
34+
ActorDamageCause 为伤害原因枚举,枚举值如下,有问号的待验证,???待补充
35+
36+
| 伤害原因 | 枚举值 | 解释 |
37+
|-----------------|-----|----------------------------------------|
38+
| None | -1 | 其他 |
39+
| Override | 0 | 非正常方式(如脚本直接设置血量为0),这种方式的伤害不会被盔甲与buff吸收 |
40+
| Contact | 1 | 接触伤害(如仙人掌) |
41+
| EntityAttack | 2 | 实体攻击 |
42+
| Projectile | 3 | 抛射物攻击 |
43+
| Suffocation | 4 | 窒息(密封空间) |
44+
| Fall | 5 | 掉落 |
45+
| Fire | 6 | 燃烧 |
46+
| FireTick | 7 | 点燃 |
47+
| Lava | 8 | 熔岩 |
48+
| Drowning | 9 | 溺水 |
49+
| BlockExplosion | 10 | 方块爆炸 |
50+
| EntityExplosion | 11 | 实体爆炸 |
51+
| Void | 12 | 虚空 |
52+
| Suicide | 13 | 自杀 |
53+
| Magic | 14 | 尖牙对生物造成的伤害、守卫者对生物造成的魔法伤害和药水伤害等 |
54+
| Wither | 15 | 凋零效果 |
55+
| Starve | 16 | 饥饿 |
56+
| Anvil | 17 | 下落的铁砧 |
57+
| Thorns | 18 | 荆棘 |
58+
| FallingBlock | 19 | 下落的方块 |
59+
| Piston | 20 | 活塞 |
60+
| FlyIntoWall | 21 | 动能(滑翔撞墙) |
61+
| Magma | 22 | 岩浆块 |
62+
| Fireworks | 23 | 烟花 |
63+
| Lightning | 24 | 闪电 |
64+
| Charging | 25 | 充能(?) |
65+
| Temperature | 26 | 温度 (雪人?) |
66+
| Freezing | 27 | 冰冻 |
67+
| Stalactite | 28 | 被钟乳石砸到 |
68+
| Stalagmite | 29 | 掉落到石笋上 |
69+
| RamAttack | 30 | 山羊冲撞 |
70+
| SonicBoom | 31 | 坚守着音爆攻击 |
71+
| Campfire | 32 | 营火 |
72+
| SoulCampfire | 33 | 灵魂营火 |
73+
| MaceSmash | 34 | 下落攻击 |
74+
| All | 35 | 所有 |
7075

7176
#### `"onEntityExplode"` - 发生由实体引起的爆炸
7277

docs/apis/GameAPI/Entity.md

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -203,38 +203,44 @@ Each entity object contains some member functions (member methods) that can be e
203203

204204
Note that the damage dealt here is real damage and cannot be reduced by protective equipment such as armor.
205205

206-
| ActorDamageCause ENUM |
207-
|------------------------------------|
208-
| `ActorDamageCause.Override` |
209-
| `ActorDamageCause.Contact ` |
210-
| `ActorDamageCause.EntityAttack` |
211-
| `ActorDamageCause.Projectile` |
212-
| `ActorDamageCause.Suffocation` |
213-
| `ActorDamageCause.All` |
214-
| `ActorDamageCause.Fire` |
215-
| `ActorDamageCause.FireTick` |
216-
| `ActorDamageCause.Lava` |
217-
| `ActorDamageCause.Drowning ` |
218-
| `ActorDamageCause.BlockExplosion` |
219-
| `ActorDamageCause.EntityExplosion` |
220-
| `ActorDamageCause.Void` |
221-
| `ActorDamageCause.Suicide` |
222-
| `ActorDamageCause.Magic` |
223-
| `ActorDamageCause.Wither` |
224-
| `ActorDamageCause.Starve` |
225-
| `ActorDamageCause.Anvil` |
226-
| `ActorDamageCause.Thorns` |
227-
| `ActorDamageCause.FallingBlock` |
228-
| `ActorDamageCause.Piston` |
229-
| `ActorDamageCause.FlyIntoWall` |
230-
| `ActorDamageCause.Magma` |
231-
| `ActorDamageCause.Fireworks` |
232-
| `ActorDamageCause.Lightning` |
233-
| `ActorDamageCause.Charging` |
234-
| `ActorDamageCause.Temperature` |
235-
| `ActorDamageCause.Freezing` |
236-
| `ActorDamageCause.Stalactite` |
237-
| `ActorDamageCause.Stalagmite` |
206+
| ActorDamageCause ENUM | Value |
207+
|------------------------------------|-------|
208+
| `ActorDamageCause.Override` | -1 |
209+
| `ActorDamageCause.Contact ` | 0 |
210+
| `ActorDamageCause.EntityAttack` | 1 |
211+
| `ActorDamageCause.Projectile` | 2 |
212+
| `ActorDamageCause.Suffocation` | 3 |
213+
| `ActorDamageCause.All` | 4 |
214+
| `ActorDamageCause.Fire` | 5 |
215+
| `ActorDamageCause.FireTick` | 6 |
216+
| `ActorDamageCause.Lava` | 7 |
217+
| `ActorDamageCause.Drowning ` | 8 |
218+
| `ActorDamageCause.BlockExplosion` | 9 |
219+
| `ActorDamageCause.EntityExplosion` | 10 |
220+
| `ActorDamageCause.Void` | 11 |
221+
| `ActorDamageCause.Suicide` | 12 |
222+
| `ActorDamageCause.Magic` | 13 |
223+
| `ActorDamageCause.Wither` | 14 |
224+
| `ActorDamageCause.Starve` | 15 |
225+
| `ActorDamageCause.Anvil` | 16 |
226+
| `ActorDamageCause.Thorns` | 17 |
227+
| `ActorDamageCause.FallingBlock` | 18 |
228+
| `ActorDamageCause.Piston` | 19 |
229+
| `ActorDamageCause.FlyIntoWall` | 20 |
230+
| `ActorDamageCause.Magma` | 21 |
231+
| `ActorDamageCause.Fireworks` | 22 |
232+
| `ActorDamageCause.Lightning` | 23 |
233+
| `ActorDamageCause.Charging` | 24 |
234+
| `ActorDamageCause.Temperature` | 25 |
235+
| `ActorDamageCause.Freezing` | 26 |
236+
| `ActorDamageCause.Stalactite` | 27 |
237+
| `ActorDamageCause.Stalagmite` | 28 |
238+
| `ActorDamageCause.RamAttack` | 29 |
239+
| `ActorDamageCause.SonicBoom` | 30 |
240+
| `ActorDamageCause.Campfire` | 31 |
241+
| `ActorDamageCause.SoulCampfire` | 32 |
242+
| `ActorDamageCause.MaceSmash` | 33 |
243+
| `ActorDamageCause.All` | 34 |
238244

239245
#### Heal the Entity
240246

docs/apis/GameAPI/Entity.zh.md

Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -193,39 +193,44 @@
193193

194194
注意,此处造成的伤害为真实伤害,无法被盔甲等保护装备减免
195195

196-
| 伤害类型枚举 |
197-
|------------------------------------|
198-
| `ActorDamageCause.Override` |
199-
| `ActorDamageCause.Contact ` |
200-
| `ActorDamageCause.EntityAttack` |
201-
| `ActorDamageCause.Projectile` |
202-
| `ActorDamageCause.Suffocation` |
203-
| `ActorDamageCause.All` |
204-
| `ActorDamageCause.Fire` |
205-
| `ActorDamageCause.FireTick` |
206-
| `ActorDamageCause.Lava` |
207-
| `ActorDamageCause.Drowning ` |
208-
| `ActorDamageCause.BlockExplosion` |
209-
| `ActorDamageCause.EntityExplosion` |
210-
| `ActorDamageCause.Void` |
211-
| `ActorDamageCause.Suicide` |
212-
| `ActorDamageCause.Magic` |
213-
| `ActorDamageCause.Wither` |
214-
| `ActorDamageCause.Starve` |
215-
| `ActorDamageCause.Anvil` |
216-
| `ActorDamageCause.Thorns` |
217-
| `ActorDamageCause.FallingBlock` |
218-
| `ActorDamageCause.Piston` |
219-
| `ActorDamageCause.FlyIntoWall` |
220-
| `ActorDamageCause.Magma` |
221-
| `ActorDamageCause.Fireworks` |
222-
| `ActorDamageCause.Lightning` |
223-
| `ActorDamageCause.Charging` |
224-
| `ActorDamageCause.Temperature` |
225-
| `ActorDamageCause.Freezing` |
226-
| `ActorDamageCause.Stalactite` |
227-
| `ActorDamageCause.Stalagmite` |
228-
| `ActorDamageCause.All` |
196+
| 伤害类型枚举 | 枚举值 |
197+
|------------------------------------|-----|
198+
| `ActorDamageCause.Override` | -1 |
199+
| `ActorDamageCause.Contact ` | 0 |
200+
| `ActorDamageCause.EntityAttack` | 1 |
201+
| `ActorDamageCause.Projectile` | 2 |
202+
| `ActorDamageCause.Suffocation` | 3 |
203+
| `ActorDamageCause.All` | 4 |
204+
| `ActorDamageCause.Fire` | 5 |
205+
| `ActorDamageCause.FireTick` | 6 |
206+
| `ActorDamageCause.Lava` | 7 |
207+
| `ActorDamageCause.Drowning ` | 8 |
208+
| `ActorDamageCause.BlockExplosion` | 9 |
209+
| `ActorDamageCause.EntityExplosion` | 10 |
210+
| `ActorDamageCause.Void` | 11 |
211+
| `ActorDamageCause.Suicide` | 12 |
212+
| `ActorDamageCause.Magic` | 13 |
213+
| `ActorDamageCause.Wither` | 14 |
214+
| `ActorDamageCause.Starve` | 15 |
215+
| `ActorDamageCause.Anvil` | 16 |
216+
| `ActorDamageCause.Thorns` | 17 |
217+
| `ActorDamageCause.FallingBlock` | 18 |
218+
| `ActorDamageCause.Piston` | 19 |
219+
| `ActorDamageCause.FlyIntoWall` | 20 |
220+
| `ActorDamageCause.Magma` | 21 |
221+
| `ActorDamageCause.Fireworks` | 22 |
222+
| `ActorDamageCause.Lightning` | 23 |
223+
| `ActorDamageCause.Charging` | 24 |
224+
| `ActorDamageCause.Temperature` | 25 |
225+
| `ActorDamageCause.Freezing` | 26 |
226+
| `ActorDamageCause.Stalactite` | 27 |
227+
| `ActorDamageCause.Stalagmite` | 28 |
228+
| `ActorDamageCause.RamAttack` | 29 |
229+
| `ActorDamageCause.SonicBoom` | 30 |
230+
| `ActorDamageCause.Campfire` | 31 |
231+
| `ActorDamageCause.SoulCampfire` | 32 |
232+
| `ActorDamageCause.MaceSmash` | 33 |
233+
| `ActorDamageCause.All` | 34 |
229234

230235
#### 治疗实体
231236

docs/apis/GameAPI/Player.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -329,13 +329,13 @@ var open = pl.runcmd("tp ~ ~+50 ~");
329329

330330
#### Speak to a Player as a Player
331331

332-
`pl.talkTo(target,text)`
332+
`pl.talkTo(text,target)`
333333

334334
- Parameters:
335-
- target : `Player`
336-
The player who will be spoken to.
337335
- text : `String`
338336
The text the player will be made to say.
337+
- target : `Player`
338+
The player who will be spoken to.
339339
- Return value: Whether the execution was successful.
340340
- Return value type: `Boolean`
341341

docs/apis/GameAPI/Player.zh.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -362,13 +362,13 @@
362362

363363
#### 以某个玩家身份向某玩家说话
364364

365-
`pl.talkTo(target,text)`
365+
`pl.talkTo(text,target)`
366366

367367
- 参数:
368-
- target : `Player`
369-
模拟说话对象
370368
- text : `String`
371369
模拟说话内容
370+
- target : `Player`
371+
模拟说话对象
372372
- 返回值:是否执行成功
373373
- 返回值类型: `Boolean`
374374

src/legacy/api/BaseAPI.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
///////////////////// Enum //////////////////////
1515
ClassDefine<void> DamageCauseEnumBuilder = EnumDefineBuilder<ActorDamageCause>::build("DamageCause");
16+
// For compatibility
17+
ClassDefine<void> ActorDamageCauseEnumBuilder = EnumDefineBuilder<ActorDamageCause>::build("ActorDamageCause");
1618

1719
//////////////////// Class Definition ////////////////////
1820

src/legacy/api/BaseAPI.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class BlockSource;
88

99
///////////////////// Enum //////////////////////
1010
extern ClassDefine<void> DamageCauseEnumBuilder;
11+
extern ClassDefine<void> ActorDamageCauseEnumBuilder;
1112

1213
//////////////////// Classes ////////////////////
1314
class IntPos : public IntVec4, public ScriptClass {

src/legacy/api/EntityAPI.cpp

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -145,43 +145,6 @@ ClassDefine<EntityClass> EntityClassBuilder =
145145

146146
//////////////////// Classes ////////////////////
147147

148-
// clang-format off
149-
ClassDefine<void> ActorDamageCauseBuilder =
150-
defineClass("ActorDamageCause")
151-
.property("Override", []() { return Number::newNumber(0); })
152-
.property("Contact", []() { return Number::newNumber(1); })
153-
.property("EntityAttack", []() { return Number::newNumber(2); })
154-
.property("Projectile", []() { return Number::newNumber(3); })
155-
.property("Suffocation", []() { return Number::newNumber(4); })
156-
.property("Fall", []() { return Number::newNumber(5); })
157-
.property("Fire", []() { return Number::newNumber(6); })
158-
.property("FireTick", []() { return Number::newNumber(7); })
159-
.property("Lava", []() { return Number::newNumber(8); })
160-
.property("Drowning", []() { return Number::newNumber(9); })
161-
.property("BlockExplosion", []() { return Number::newNumber(10); })
162-
.property("EntityExplosion", []() { return Number::newNumber(11); })
163-
.property("Void", []() { return Number::newNumber(12); })
164-
.property("Suicide", []() { return Number::newNumber(13); })
165-
.property("Magic", []() { return Number::newNumber(14); })
166-
.property("Wither", []() { return Number::newNumber(15); })
167-
.property("Starve", []() { return Number::newNumber(16); })
168-
.property("Anvil", []() { return Number::newNumber(17); })
169-
.property("Thorns", []() { return Number::newNumber(18); })
170-
.property("FallingBlock", []() { return Number::newNumber(19); })
171-
.property("Piston", []() { return Number::newNumber(20); })
172-
.property("FlyIntoWall", []() { return Number::newNumber(21); })
173-
.property("Magma", []() { return Number::newNumber(22); })
174-
.property("Fireworks", []() { return Number::newNumber(23); })
175-
.property("Lightning", []() { return Number::newNumber(24); })
176-
.property("Charging", []() { return Number::newNumber(25); })
177-
.property("Temperature", []() { return Number::newNumber(26); })
178-
.property("Freezing", []() { return Number::newNumber(27); })
179-
.property("Stalactite", []() { return Number::newNumber(28); })
180-
.property("Stalagmite", []() { return Number::newNumber(29); })
181-
.build();
182-
183-
// clang-format on
184-
185148
// 生成函数
186149
Local<Object> EntityClass::newEntity(Actor* actor) {
187150
auto newp = new EntityClass(actor);

0 commit comments

Comments
 (0)