diff --git a/toolbox.js b/toolbox.js index d738f9bc..bf8ad90b 100644 --- a/toolbox.js +++ b/toolbox.js @@ -4202,6 +4202,314 @@ const toolboxSnippetsMovement = { }, }, }, + { + kind: "block", + type: "forever", + extraState: "", + inputs: { + DO: { + block: { + type: "controls_if", + inputs: { + IF0: { + block: { + type: "logic_operation", + fields: { + OP: "AND", + }, + inputs: { + A: { + block: { + type: "variables_get", + fields: { + VAR: { + name: "jumping", + }, + }, + }, + }, + B: { + block: { + type: "touching_surface", + fields: { + MODEL_VAR: { + name: "player", + }, + }, + }, + }, + }, + }, + }, + DO0: { + block: { + type: "variables_set", + fields: { + VAR: { + name: "jumping", + }, + }, + inputs: { + VALUE: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + block: { + type: "logic_boolean", + fields: { + BOOL: "FALSE", + }, + }, + }, + }, + next: { + block: { + type: "broadcast_event", + inputs: { + EVENT_NAME: { + shadow: { + type: "text", + fields: { + TEXT: "landed", + }, + }, + }, + }, + }, + }, + }, + }, + }, + next: { + block: { + type: "controls_if", + inputs: { + IF0: { + block: { + type: "logic_operation", + fields: { + OP: "AND", + }, + inputs: { + A: { + block: { + type: "action_pressed", + fields: { + ACTION: "BUTTON4", + }, + }, + }, + B: { + block: { + type: "logic_negate", + inputs: { + BOOL: { + block: { + type: "variables_get", + fields: { + VAR: { + name: "jumping", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + DO0: { + block: { + type: "apply_force", + fields: { + MESH_VAR: { + name: "player", + }, + }, + inputs: { + X: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + Y: { + shadow: { + type: "math_number", + fields: { + NUM: 2, + }, + }, + }, + Z: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + }, + next: { + block: { + type: "variables_set", + fields: { + VAR: { + name: "jumping", + }, + }, + inputs: { + VALUE: { + block: { + type: "logic_boolean", + fields: { + BOOL: "TRUE", + }, + }, + }, + }, + next: { + block: { + type: "broadcast_event", + inputs: { + EVENT_NAME: { + block: { + type: "text", + fields: { + TEXT: "jumped", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + { + kind: "block", + type: "on_event", + extraState: "", + inputs: { + EVENT_NAME: { + block: { + type: "text", + fields: { + TEXT: "jumped", + }, + }, + }, + DO: { + block: { + type: "play_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "JumpUp", + }, + }, + }, + }, + next: { + block: { + type: "play_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "JumpIdle", + }, + }, + }, + }, + next: { + block: { + type: "play_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "JumpLand", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + { + kind: "block", + type: "on_event", + extraState: "", + inputs: { + EVENT_NAME: { + block: { + type: "text", + fields: { + TEXT: "landed", + }, + }, + }, + DO: { + block: { + type: "switch_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Idle", + }, + }, + }, + }, + }, + }, + }, + }, ] } @@ -4292,122 +4600,142 @@ const toolboxSnippets = { inputs: { DO: { block: { - type: "load_character", + type: "variables_set", fields: { - MODELS: "Block3.glb", - ID_VAR: { - name: "player", - type: "", + VAR: { + name: "jumping", }, }, inputs: { - SCALE: { + VALUE: { shadow: { - type: "math_number", + type: "logic_boolean", fields: { - NUM: 1, + BOOL: "FALSE", }, }, }, - X: { - shadow: { - type: "math_number", - fields: { - NUM: 0, + }, + next: { + block: { + type: "load_character", + fields: { + MODELS: "Block3.glb", + ID_VAR: { + name: "player", + type: "", }, }, - }, - Y: { - shadow: { - type: "math_number", - fields: { - NUM: 0, + inputs: { + SCALE: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, }, - }, - }, - Z: { - shadow: { - type: "math_number", - fields: { - NUM: 0, + X: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, }, - }, - }, - HAIR_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#000000", + Y: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, }, - }, - }, - SKIN_COLOR: { - shadow: { - type: "skin_colour", - fields: { - COLOR: "#a15c33", + Z: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, }, - }, - }, - EYES_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#000000", + HAIR_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#000000", + }, + }, }, - }, - }, - SLEEVES_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#008b8b", + SKIN_COLOR: { + shadow: { + type: "skin_colour", + fields: { + COLOR: "#a15c33", + }, + }, }, - }, - }, - SHORTS_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#00008b", + EYES_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#000000", + }, + }, }, - }, - }, - TSHIRT_COLOR: { - shadow: { - type: "colour", - fields: { - COLOR: "#ff8f60", + SLEEVES_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#008b8b", + }, + }, }, - }, - }, - }, - next: { - block: { - type: "add_physics", - fields: { - MODEL_VAR: { - name: "player", - type: "", + SHORTS_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#00008b", + }, + }, + }, + TSHIRT_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#ff8f60", + }, + }, }, - PHYSICS_TYPE: - "DYNAMIC", }, next: { block: { - type: "camera_follow", + type: "add_physics", fields: { - MESH_VAR: { + MODEL_VAR: { name: "player", type: "", }, + PHYSICS_TYPE: + "DYNAMIC", }, - inputs: { - RADIUS: { - block: { - type: "math_number", - fields: { - NUM: 7, + next: { + block: { + type: "camera_follow", + fields: { + MESH_VAR: { + name: "player", + type: "", + }, + }, + inputs: { + RADIUS: { + block: { + type: "math_number", + fields: { + NUM: 7, + }, + }, }, }, },