feat(events): add C4 explosion event emission

This commit is contained in:
2026-01-21 22:54:06 +08:00
parent 1e27eb7e8c
commit 9d65768cd3
5 changed files with 25 additions and 0 deletions

View File

@@ -196,6 +196,17 @@ function handleC4Activated(event) {
// Assert C4 exsiting
if (toExplosionC4Map[newBlockPosString] === null) return;
// Emit C4 explosion event
/** @type {EventBus} */
const eventBus = /** @type {any} */ (global["eventBus"]);
if (eventBus === null) return;
eventBus.emit("C4Explosion", {
level: level,
position: c4BlockPos,
power: explosionPower,
});
level.explode(
/** @type {any} */ (null),
c4BlockPos.x + 0.5,

View File

View File

13
types/C4.d.ts vendored
View File

@@ -14,3 +14,16 @@ interface C4ActivatedEvent {
explosionTime: number;
explosionPower: number;
}
/**
* Event data for C4 explosion events.
*/
interface C4ExplosionEvent {
level: Internal.Level;
position: {
x: number;
y: number;
z: number;
};
power: number;
}

1
types/EventBus.d.ts vendored
View File

@@ -6,6 +6,7 @@ interface EventMap {
LivingEntityUseItemEvent$Finish: Internal.LivingEntityUseItemEvent$Finish;
C4Activated: C4ActivatedEvent;
C4UseStarted: C4UseStartedEvent;
C4Explosion: C4ExplosionEvent;
}
/**