Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 1x | const l10n = require("../helpers/l10n").default;
const id = "EVENT_SET_TIMER_SCRIPT";
const groups = ["EVENT_GROUP_TIMER"];
const subGroups = {
EVENT_GROUP_TIMER: "EVENT_GROUP_SCRIPT",
};
const autoLabel = (fetchArg) => {
return l10n("EVENT_SET_TIMER_SCRIPT_LABEL", {
timer: fetchArg("timer"),
});
};
const fields = [
{
key: "timer",
label: l10n("FIELD_TIMER"),
description: l10n("FIELD_TIMER_DESC"),
type: "togglebuttons",
options: [
[1, "1", `${l10n("FIELD_TIMER")} 1`],
[2, "2", `${l10n("FIELD_TIMER")} 2`],
[3, "3", `${l10n("FIELD_TIMER")} 3`],
[4, "4", `${l10n("FIELD_TIMER")} 4`],
],
allowNone: false,
defaultValue: 1,
},
{
type: "group",
fields: [
{
key: "duration",
type: "number",
label: l10n("FIELD_TIME_INTERVAL"),
description: l10n("FIELD_TIME_INTERVAL_TIMER_DESC"),
min: 0,
max: 60,
step: 0.1,
defaultValue: 0.5,
unitsField: "units",
unitsDefault: "time",
unitsAllowed: ["time", "frames"],
conditions: [
{
key: "units",
ne: "frames",
},
],
},
{
key: "frames",
label: l10n("FIELD_TIME_INTERVAL"),
description: l10n("FIELD_TIME_INTERVAL_TIMER_DESC"),
type: "number",
min: 0,
max: 3600,
step: 16,
width: "50%",
defaultValue: 30,
unitsField: "units",
unitsDefault: "time",
unitsAllowed: ["time", "frames"],
conditions: [
{
key: "units",
eq: "frames",
},
],
},
],
},
{
key: "__scriptTabs",
type: "tabs",
defaultValue: "end",
values: {
end: l10n("FIELD_ON_TIMER_TICK"),
},
},
{
key: "script",
label: l10n("FIELD_ON_TIMER_TICK"),
description: l10n("FIELD_ON_TIMER_TICK_DESC"),
type: "events",
allowedContexts: ["global", "entity", "prefab"],
conditions: [
{
key: "__scriptTabs",
in: [undefined, "end"],
},
],
},
];
const compile = (input, helpers) => {
const { timerScriptSet, event } = helpers;
let frames = 0;
Iif (input.units === "frames") {
frames = typeof input.frames === "number" ? input.frames : 30;
} else {
let duration = typeof input.duration === "number" ? input.duration : 10.0;
frames = Math.ceil(duration * 60);
}
timerScriptSet(frames, input.script, event.symbol, input.timer);
};
module.exports = {
id,
autoLabel,
description: l10n("EVENT_SET_TIMER_SCRIPT_DESC"),
groups,
subGroups,
fields,
compile,
editableSymbol: true,
allowChildrenBeforeInitFade: true,
};
|