UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

73 lines (72 loc) 2.55 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.ExploderEntityTrait = void 0; const ContentTraits_1 = require("./ContentTraits"); /** * Exploder - explodes when near target. */ class ExploderEntityTrait extends ContentTraits_1.EntityContentTrait { get id() { return "exploder"; } getData(config) { const power = config?.power ?? 3; const fuseTime = config?.fuseTime ?? 1.5; const causesFire = config?.causesFire ?? false; return { id: "exploder", displayName: "Exploder", description: "Explodes when near its target", category: "combat", components: {}, componentGroups: { exploder_idle: { "minecraft:behavior.nearest_attackable_target": { priority: 1, entity_types: [ { filters: { test: "is_family", subject: "other", value: "player" }, max_dist: 25, }, ], }, }, exploder_fuse_lit: { "minecraft:explode": { fuse_length: fuseTime, fuse_lit: true, power, causes_fire: causesFire, }, "minecraft:behavior.melee_attack": { priority: 2, speed_multiplier: 1.5, track_target: true, reach_multiplier: 0.0, }, }, }, events: { start_exploding: { remove: { component_groups: ["exploder_idle"] }, add: { component_groups: ["exploder_fuse_lit"] }, }, stop_exploding: { remove: { component_groups: ["exploder_fuse_lit"] }, add: { component_groups: ["exploder_idle"] }, }, }, spawnEvent: { add: { component_groups: ["exploder_idle"] }, }, resources: { sounds: { fuse: "mob.creeper.say", }, }, }; } } exports.ExploderEntityTrait = ExploderEntityTrait;