All files / src/lib/events eventPlatformerCallbackScriptRemove.js

0% Statements 0/17
0% Branches 0/6
0% Functions 0/2
0% Lines 0/17

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                                                                                                                                                                                           
const l10n = require("../helpers/l10n").default;
 
const id = "EVENT_REMOVE_PLATFORMER_CALLBACK_SCRIPT";
const groups = ["EVENT_GROUP_ENGINE_FIELDS"];
const subGroups = {
  EVENT_GROUP_ENGINE_FIELDS: "GAMETYPE_PLATFORMER",
};
 
const labelsMap = {
  fallStart: l10n("FIELD_FALL_START"),
  fallEnd: l10n("FIELD_FALL_END"),
  groundStart: l10n("FIELD_GROUND_START"),
  groundEnd: l10n("FIELD_GROUND_END"),
  jumpStart: l10n("FIELD_JUMP_START"),
  jumpEnd: l10n("FIELD_JUMP_END"),
  dashStart: l10n("FIELD_DASH_START"),
  dashReady: l10n("FIELD_DASH_READY"),
  dashEnd: l10n("FIELD_DASH_END"),
  ladderStart: l10n("FIELD_LADDER_START"),
  ladderEnd: l10n("FIELD_LADDER_END"),
  wallStart: l10n("FIELD_WALL_START"),
  wallEnd: l10n("FIELD_WALL_END"),
  knockbackStart: l10n("FIELD_KNOCKBACK_START"),
  knockbackEnd: l10n("FIELD_KNOCKBACK_END"),
  blankStart: l10n("FIELD_BLANK_START"),
  blankEnd: l10n("FIELD_BLANK_END"),
  runStart: l10n("FIELD_RUN_START"),
  runEnd: l10n("FIELD_RUN_END"),
  floatStart: l10n("FIELD_FLOAT_START"),
  floatEnd: l10n("FIELD_FLOAT_END"),
};
 
const valuesMap = {
  fallStart: "PLATFORM_FALL_INIT",
  fallEnd: "PLATFORM_FALL_END",
  groundStart: "PLATFORM_GROUND_INIT",
  groundEnd: "PLATFORM_GROUND_END",
  jumpStart: "PLATFORM_JUMP_INIT",
  jumpEnd: "PLATFORM_JUMP_END",
  dashStart: "PLATFORM_DASH_INIT",
  dashReady: "PLATFORM_DASH_READY",
  dashEnd: "PLATFORM_DASH_END",
  ladderStart: "PLATFORM_LADDER_INIT",
  ladderEnd: "PLATFORM_LADDER_END",
  wallStart: "PLATFORM_WALL_INIT",
  wallEnd: "PLATFORM_WALL_END",
  knockbackStart: "PLATFORM_KNOCKBACK_INIT",
  knockbackEnd: "PLATFORM_KNOCKBACK_END",
  blankStart: "PLATFORM_BLANK_INIT",
  blankEnd: "PLATFORM_BLANK_END",
  runStart: "PLATFORM_RUN_INIT",
  runEnd: "PLATFORM_RUN_END",
  floatStart: "PLATFORM_FLOAT_INIT",
  floatEnd: "PLATFORM_FLOAT_END",
};
 
const autoLabel = (_, input) => {
  return l10n("EVENT_REMOVE_PLATFORMER_CALLBACK_SCRIPT_LABEL", {
    event: labelsMap[input.event] || l10n("FIELD_FALL_START"),
  });
};
 
const fields = [
  {
    key: "event",
    label: l10n("FIELD_EVENT"),
    type: "select",
    defaultValue: "fallStart",
    options: Object.entries(labelsMap),
  },
];
 
const compile = (input, helpers) => {
  const { _addComment, _stackPushConst, _callNative, _stackPop } = helpers;
 
  const callbackLabel = valuesMap[input.event] ?? valuesMap.fallStart;
 
  _addComment("Remove Platformer State Script");
  _stackPushConst(callbackLabel);
  _callNative("plat_callback_detach");
  _stackPop(1);
};
 
module.exports = {
  id,
  description: l10n("EVENT_REMOVE_PLATFORMER_CALLBACK_SCRIPT_DESC"),
  autoLabel,
  groups,
  subGroups,
  fields,
  compile,
  allowedBeforeInitFade: true,
};