diff --git a/images/couch-solid.svg b/images/couch-solid.svg new file mode 100644 index 00000000..250ee7a3 --- /dev/null +++ b/images/couch-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/locale/de.js b/locale/de.js index 3a788e8b..0178c908 100644 --- a/locale/de.js +++ b/locale/de.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funktionen", CATEGORY_SNIPPETS: "Snippets", CATEGORY_MOVEMENT: "Bewegung", + CATEGORY_SIT_DOWN: "Hinsetzen", // Color picker translations choose_a_color: "Wähle eine Farbe", diff --git a/locale/en.js b/locale/en.js index 6f248071..e2d070c1 100644 --- a/locale/en.js +++ b/locale/en.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Functions", CATEGORY_SNIPPETS: "Snippets", CATEGORY_MOVEMENT: "Movement", + CATEGORY_SIT_DOWN: "Sit Down", // Color picker translations choose_a_color: "Choose a Color", diff --git a/locale/es.js b/locale/es.js index 958443e3..06d96cc5 100644 --- a/locale/es.js +++ b/locale/es.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funciones", // human CATEGORY_SNIPPETS: "Fragmentos", // human CATEGORY_MOVEMENT: "Movimiento", // human + CATEGORY_SIT_DOWN: "Sentarse", // human // Color picker translations choose_a_color: "Elige un color", // human diff --git a/locale/fr.js b/locale/fr.js index c2cb848e..2480c08d 100644 --- a/locale/fr.js +++ b/locale/fr.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Fonctions", CATEGORY_SNIPPETS: "Extraits", CATEGORY_MOVEMENT: "Mouvement", + CATEGORY_SIT_DOWN: "S'asseoir", // Color picker translations choose_a_color: "Choisissez une couleur", diff --git a/locale/it.js b/locale/it.js index 98f8d2ae..45487345 100644 --- a/locale/it.js +++ b/locale/it.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funzioni", CATEGORY_SNIPPETS: "Frammenti", CATEGORY_MOVEMENT: "Movimento", + CATEGORY_SIT_DOWN: "Siediti", // Color picker translations choose_a_color: "Scegli un colore", diff --git a/locale/pl.js b/locale/pl.js index abdcbc58..a5e637e0 100644 --- a/locale/pl.js +++ b/locale/pl.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funkcje", CATEGORY_SNIPPETS: "Fragmenty", CATEGORY_MOVEMENT: "Ruch", + CATEGORY_SIT_DOWN: "Siadanie", // Color picker translations choose_a_color: "Wybierz kolor", diff --git a/locale/pt.js b/locale/pt.js index afe20e80..d62caef7 100644 --- a/locale/pt.js +++ b/locale/pt.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funções", CATEGORY_SNIPPETS: "Trechos", CATEGORY_MOVEMENT: "Movimento", + CATEGORY_SIT_DOWN: "Sentar-se", // Color picker translations choose_a_color: "Escolha uma cor", diff --git a/locale/sv.js b/locale/sv.js index 4e0619d0..ea6b41ee 100644 --- a/locale/sv.js +++ b/locale/sv.js @@ -26,6 +26,7 @@ export default { CATEGORY_FUNCTIONS: "Funktioner", CATEGORY_SNIPPETS: "Snippets", CATEGORY_MOVEMENT: "Rörelse", + CATEGORY_SIT_DOWN: "Sätt dig", // Color picker translations choose_a_color: "Välj en färg", diff --git a/toolbox.js b/toolbox.js index 59126293..020b232e 100644 --- a/toolbox.js +++ b/toolbox.js @@ -3504,6 +3504,411 @@ const toolboxMath = { ], }; +const toolboxSnippetsSitDown = { + kind: "category", + icon: "./images/couch-solid.svg", + categorystyle: "snippets_category", + name: "%{BKY_CATEGORY_SIT_DOWN}", + contents: [ + { + kind: "block", + type: "start", + inputs: { + DO: { + block: { + type: "create_box", + fields: { + ID_VAR: { + name: "seat", + }, + }, + inputs: { + COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#666666" + }, + }, + }, + WIDTH: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + HEIGHT: { + shadow: { + type: "math_number", + fields: { + NUM: 0.5, + }, + }, + }, + DEPTH: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + X: { + shadow: { + type: "math_number", + fields: { + NUM: 3, + }, + }, + }, + Y: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + Z: { + shadow: { + type: "math_number", + fields: { + NUM: -1, + }, + }, + }, + }, + next: { + block: { + type: "set_material", + fields: { + MESH: { + name: "seat", + }, + }, + inputs: { + MATERIAL: { + shadow: { + type: "material", + fields: { + TEXTURE_SET: "grass.png", + }, + inputs: { + BASE_COLOR: { + shadow: { + type: "colour", + fields: { + COLOR: "#666666", + }, + }, + }, + ALPHA: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + { + kind: "block", + type: "when_clicked", + fields: { + MODEL_VAR: { + name: "seat", + }, + TRIGGER: "OnPickTrigger", + }, + inputs: { + DO: { + block: { + type: "controls_if", + extraState: { + hasElse: true, + }, + inputs: { + IF0: { + block: { + type: "logic_negate", + inputs: { + BOOL: { + block: { + type: "variables_get", + fields: { + VAR: { + name: "sitting", + }, + }, + }, + }, + }, + }, + }, + DO0: { + block: { + type: "variables_set", + fields: { + VAR: { + name: "sitting", + }, + }, + inputs: { + VALUE: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + block: { + type: "logic_boolean", + fields: { + BOOL: "TRUE", + }, + }, + }, + }, + next: { + block: { + type: "look_at", + fields: { + MODEL1: { + name: "player", + }, + MODEL2: { + name: "seat", + }, + USE_Y: false, + }, + next: { + block: { + type: "switch_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Walk", + }, + }, + }, + }, + next: { + block: { + type: "glide_to_object", + fields: { + MODEL1: { + name: "player", + }, + MODEL2: { + name: "seat", + }, + MODE: "AWAIT", + REVERSE: false, + LOOP: false, + EASING: "Linear", + }, + inputs: { + DURATION: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + X_OFFSET: { + shadow: { + type: "math_number", + fields: { + NUM: -0.2, + }, + }, + }, + Y_OFFSET: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + Z_OFFSET: { + shadow: { + type: "math_number", + fields: { + NUM: 1, + }, + }, + }, + }, + next: { + block: { + type: "switch_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Idle", + }, + }, + }, + }, + next: { + block: { + type: "rotate_anim_seconds", + fields: { + MESH_VAR: { + name: "player", + }, + MODE: "AWAIT", + REVERSE: false, + LOOP: false, + EASING: "Linear", + }, + inputs: { + ROT_X: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + ROT_Y: { + shadow: { + type: "math_number", + fields: { + NUM: -180, + }, + }, + }, + ROT_Z: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + }, + DURATION: { + shadow: { + type: "math_number", + fields: { + NUM: 0.2, + }, + }, + }, + }, + next: { + block: { + type: "play_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Sit_Down", + }, + }, + }, + }, + next: { + block: { + type: "switch_animation", + fields: { + MODEL: { + name: "player", + }, + }, + inputs: { + ANIMATION_NAME: { + shadow: { + type: "animation_name", + fields: { + ANIMATION_NAME: "Sitting", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + ELSE: { + block: { + type: "variables_set", + fields: { + VAR: { + name: "sitting" + }, + }, + inputs: { + VALUE: { + shadow: { + type: "math_number", + fields: { + NUM: 0, + }, + }, + block: { + type: "logic_boolean", + fields: { + BOOL: "FALSE", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + ], +} + const toolboxSnippetsPhysics = { kind: "category", icon: "./images/physics.svg", @@ -4301,122 +4706,152 @@ const toolboxSnippets = { inputs: { DO: { block: { - type: "load_character", + type: "variables_set", fields: { - MODELS: "Block3.glb", - ID_VAR: { - name: "player", - type: "", + VAR: { + name: "sitting", }, }, inputs: { - SCALE: { - shadow: { - type: "math_number", + VALUE: { + block: { + 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, + }, + }, + }, + }, + next: { + block: { + type: "get_camera", + fields: { + VAR: { + name: "camera", + }, + }, }, }, }, @@ -4431,6 +4866,7 @@ const toolboxSnippets = { }, toolboxSnippetsMovement, toolboxSnippetsPhysics, + toolboxSnippetsSitDown, ], };