From 50f24ef24b9ba64179d6f3a4417761e35775a68a Mon Sep 17 00:00:00 2001 From: Marcus Brummer Date: Sun, 18 Aug 2024 23:29:41 +0200 Subject: [PATCH] The egg is back --- lorien/Assets/I18n/de.txt | 2 +- lorien/Assets/I18n/en.txt | 30 ++--- lorien/Assets/I18n/it.txt | 2 +- lorien/Assets/I18n/pt-BR.txt | 2 +- lorien/Assets/I18n/tr.txt | 2 +- lorien/Assets/I18n/uk.txt | 2 +- lorien/BrushStroke/BrushStroke.gd | 24 ++++ lorien/InfiniteCanvas/InfiniteCanvas.gd | 24 ++++ lorien/Main.gd | 66 ++++++----- lorien/Misc/Player/Player.gd | 80 ++++++------- lorien/Misc/Player/Player.tscn | 143 ++++++++++++++++-------- lorien/project.godot | 30 +++++ 12 files changed, 271 insertions(+), 136 deletions(-) diff --git a/lorien/Assets/I18n/de.txt b/lorien/Assets/I18n/de.txt index 31bfbb12..51136b41 100644 --- a/lorien/Assets/I18n/de.txt +++ b/lorien/Assets/I18n/de.txt @@ -147,5 +147,5 @@ ACTION_copy_strokes Kopieren ACTION_paste_strokes Einfügen ACTION_duplicate_strokes Auswahl duplizieren ACTION_toggle_distraction_free_mode Zen modus aktivieren -ACTION_toggle_player Easteregg +ACTION_toggle_player Toggle Easteregg ACTION_toggle_fullscreen Vollbildmodus \ No newline at end of file diff --git a/lorien/Assets/I18n/en.txt b/lorien/Assets/I18n/en.txt index dd972175..24c810a8 100644 --- a/lorien/Assets/I18n/en.txt +++ b/lorien/Assets/I18n/en.txt @@ -138,26 +138,26 @@ DELETE Delete # Action names # ----------------------------------------------------------------------------- -ACTION_shortcut_save_project Save file -ACTION_shortcut_new_project New file -ACTION_shortcut_open_project Open file +ACTION_shortcut_save_project Save File +ACTION_shortcut_new_project New File +ACTION_shortcut_open_project Open File ACTION_shortcut_undo Undo ACTION_shortcut_redo Redo -ACTION_shortcut_brush_tool Brush tool -ACTION_shortcut_line_tool Line tool -ACTION_shortcut_eraser_tool Eraser tool -ACTION_shortcut_select_tool Selection tool -ACTION_shortcut_rectangle_tool Rectangle tool -ACTION_shortcut_circle_tool Circle tool -ACTION_shortcut_export_project Export file -ACTION_deselect_all_strokes Deselect all strokes -ACTION_delete_selected_strokes Delete selected strokes +ACTION_shortcut_brush_tool Brush Tool +ACTION_shortcut_line_tool Line Tool +ACTION_shortcut_eraser_tool Eraser Tool +ACTION_shortcut_select_tool Selection Tool +ACTION_shortcut_rectangle_tool Rectangle Tool +ACTION_shortcut_circle_tool Circle Tool +ACTION_shortcut_export_project Export File +ACTION_deselect_all_strokes Deselect All Strokes +ACTION_delete_selected_strokes Delete Selected Strokes ACTION_copy_strokes Copy ACTION_paste_strokes Paste ACTION_duplicate_strokes Duplicate strokes -ACTION_toggle_distraction_free_mode Toggle distraction free mode -ACTION_toggle_player EFF TWELVE -ACTION_toggle_fullscreen Toggle fullscreen +ACTION_toggle_distraction_free_mode Zen Mode +ACTION_toggle_player Toggle Easteregg +ACTION_toggle_fullscreen Toggle Fullscreen # ----------------------------------------------------------------------------- # Kebindings dialog messages diff --git a/lorien/Assets/I18n/it.txt b/lorien/Assets/I18n/it.txt index f226c3dd..de0397b5 100644 --- a/lorien/Assets/I18n/it.txt +++ b/lorien/Assets/I18n/it.txt @@ -144,7 +144,7 @@ ACTION_copy_strokes Copia i tratti ACTION_paste_strokes Incolla i tratti ACTION_duplicate_strokes Duplica i tratti ACTION_toggle_distraction_free_mode Abilita la modalità senza distrazioni -ACTION_toggle_player EFF TWELVE +ACTION_toggle_player Toggle Easteregg ACTION_toggle_fullscreen Schermo intero #--------------------------------------------------------------------------- diff --git a/lorien/Assets/I18n/pt-BR.txt b/lorien/Assets/I18n/pt-BR.txt index 7cef2c96..ea0ea58e 100644 --- a/lorien/Assets/I18n/pt-BR.txt +++ b/lorien/Assets/I18n/pt-BR.txt @@ -151,7 +151,7 @@ ACTION_copy_strokes Copiar traços ACTION_paste_strokes Colar traços ACTION_duplicate_strokes Duplicar traços ACTION_toggle_distraction_free_mode (Des)ativar modo livre de distrações -ACTION_toggle_player (Des)ativar jogador +ACTION_toggle_player Toggle Easteregg ACTION_toggle_fullscreen (Des)ativar Tela Cheia # ----------------------------------------------------------------------------- diff --git a/lorien/Assets/I18n/tr.txt b/lorien/Assets/I18n/tr.txt index 43d9cc98..2c49c1d4 100644 --- a/lorien/Assets/I18n/tr.txt +++ b/lorien/Assets/I18n/tr.txt @@ -151,7 +151,7 @@ ACTION_copy_strokes Kopyala ACTION_paste_strokes Yapıştır ACTION_duplicate_strokes Vuruşlarıkopyala ACTION_toggle_distraction_free_mode Dikkat dağıtmama modu -ACTION_toggle_player EFF TWELVE +ACTION_toggle_player Toggle Easteregg ACTION_toggle_fullscreen Tam Ekran # ----------------------------------------------------------------------------- diff --git a/lorien/Assets/I18n/uk.txt b/lorien/Assets/I18n/uk.txt index 8a418594..b65c0ffa 100644 --- a/lorien/Assets/I18n/uk.txt +++ b/lorien/Assets/I18n/uk.txt @@ -154,7 +154,7 @@ ACTION_copy_strokes Скопіювати ACTION_paste_strokes Вставити ACTION_duplicate_strokes Дублювати штрихи ACTION_toggle_distraction_free_mode Перемкнути zen-режим -ACTION_toggle_player ЕФФ ДВАНАДЦЯТЬ +ACTION_toggle_player Toggle Easteregg ACTION_toggle_fullscreen Перемкнути повноекранний режим # ----------------------------------------------------------------------------- diff --git a/lorien/BrushStroke/BrushStroke.gd b/lorien/BrushStroke/BrushStroke.gd index d0b72ec6..c22d574a 100644 --- a/lorien/BrushStroke/BrushStroke.gd +++ b/lorien/BrushStroke/BrushStroke.gd @@ -6,6 +6,7 @@ const MAX_POINTS := 1000 const MAX_PRESSURE_VALUE := 255 const MIN_PRESSURE_VALUE := 30 const MAX_PRESSURE_DIFF := 20 +const COLLIDER_NODE_NAME := "StrokeCollider" const GROUP_ONSCREEN := "onscreen_stroke" const MAX_VECTOR2 := Vector2(2147483647, 2147483647) @@ -79,6 +80,29 @@ func remove_all_points() -> void: _line2d.points = PackedVector2Array() _line2d.width_curve.clear_points() +# ------------------------------------------------------------------------------------------------- +func enable_collider(enable: bool) -> void: + # Remove current collider + var collider = get_node_or_null(COLLIDER_NODE_NAME) + if collider != null: + remove_child(collider) + collider.queue_free() + + # Create new collider + if enable: + var body := StaticBody2D.new() + body.name = COLLIDER_NODE_NAME + var idx := 0 + while idx < points.size()-1: + var col := CollisionShape2D.new() + var shape := SegmentShape2D.new() + shape.a = points[idx] + shape.b = points[idx + 1] + col.shape = shape + body.add_child(col) + idx += 1 + add_child(body) + # ------------------------------------------------------------------------------------------------ func refresh() -> void: var max_pressure := float(MAX_PRESSURE_VALUE) diff --git a/lorien/InfiniteCanvas/InfiniteCanvas.gd b/lorien/InfiniteCanvas/InfiniteCanvas.gd index 139b872d..0ac13b29 100644 --- a/lorien/InfiniteCanvas/InfiniteCanvas.gd +++ b/lorien/InfiniteCanvas/InfiniteCanvas.gd @@ -3,6 +3,7 @@ class_name InfiniteCanvas # ------------------------------------------------------------------------------------------------- const BRUSH_STROKE = preload("res://BrushStroke/BrushStroke.tscn") +const PLAYER = preload("res://Misc/Player/Player.tscn") # ------------------------------------------------------------------------------------------------- @onready var _brush_tool: BrushTool = $BrushTool @@ -30,6 +31,8 @@ var _current_stroke: BrushStroke var _current_project: Project var _use_optimizer := true var _optimizer: BrushStrokeOptimizer +var _player: Player = null +var _player_enabled := false # ------------------------------------------------------------------------------------------------- func _ready(): @@ -137,6 +140,23 @@ func set_background_color(color: Color) -> void: RenderingServer.set_default_clear_color(_background_color) _grid.set_canvas_color(_background_color) +# ------------------------------------------------------------------------------------------------- +func enable_player(enable: bool) -> void: + _player_enabled = enable + + # colliders + for stroke in _strokes_parent.get_children(): + stroke.enable_collider(enable) + + # player + if enable: + _player = PLAYER.instantiate() + _player.reset(_active_tool.get_cursor().global_position) + _viewport.add_child(_player) + else: + _viewport.remove_child(_player) + _player = null + # ------------------------------------------------------------------------------------------------- func enable_grid(e: bool) -> void: _grid.enable(e) @@ -226,6 +246,10 @@ func end_stroke() -> void: # TODO: not sure if needed here _current_stroke.refresh() + # Colliders for the platformer easter-egg + if _player_enabled: + _current_stroke.enable_collider(true) + # Remove the line temporally from the node tree, so the adding is registered in the undo-redo histrory below _strokes_parent.remove_child(_current_stroke) diff --git a/lorien/Main.gd b/lorien/Main.gd index 14a9c379..437fc17d 100644 --- a/lorien/Main.gd +++ b/lorien/Main.gd @@ -25,6 +25,7 @@ extends Control var _ui_visible := true var _exit_requested := false var _dirty_project_to_close: Project = null +var _player_enabled := false # ------------------------------------------------------------------------------------------------- func _ready(): @@ -141,34 +142,43 @@ func _process(delta): # ------------------------------------------------------------------------------------------------- func _unhandled_input(event): if !is_dialog_open(): - if Utils.event_pressed_bug_workaround("shortcut_new_project", event): - _on_create_new_project() - elif Utils.event_pressed_bug_workaround("shortcut_open_project", event): - _toolbar._on_OpenFileButton_pressed() - elif Utils.event_pressed_bug_workaround("shortcut_save_project", event): - _on_save_project() - elif Utils.event_pressed_bug_workaround("shortcut_export_project", event): - _export_svg() - elif Utils.event_pressed_bug_workaround("shortcut_undo", event): - _on_undo_action() - elif Utils.event_pressed_bug_workaround("shortcut_redo", event): - _on_redo_action() - elif Utils.event_pressed_bug_workaround("shortcut_brush_tool", event): - _toolbar.enable_tool(Types.Tool.BRUSH) - elif Utils.event_pressed_bug_workaround("shortcut_rectangle_tool", event): - _toolbar.enable_tool(Types.Tool.RECTANGLE) - elif Utils.event_pressed_bug_workaround("shortcut_circle_tool", event): - _toolbar.enable_tool(Types.Tool.CIRCLE) - elif Utils.event_pressed_bug_workaround("shortcut_line_tool", event): - _toolbar.enable_tool(Types.Tool.LINE) - elif Utils.event_pressed_bug_workaround("shortcut_eraser_tool", event): - _toolbar.enable_tool(Types.Tool.ERASER) - elif Utils.event_pressed_bug_workaround("shortcut_select_tool", event): - _toolbar.enable_tool(Types.Tool.SELECT) - elif Utils.event_pressed_bug_workaround("toggle_distraction_free_mode", event): - _toggle_distraction_free_mode() - elif Utils.event_pressed_bug_workaround("toggle_fullscreen", event): - _toggle_fullscreen() + if Utils.event_pressed_bug_workaround("toggle_player", event): + _toggle_player() + + if !_player_enabled: + if Utils.event_pressed_bug_workaround("shortcut_new_project", event): + _on_create_new_project() + elif Utils.event_pressed_bug_workaround("shortcut_open_project", event): + _toolbar._on_OpenFileButton_pressed() + elif Utils.event_pressed_bug_workaround("shortcut_save_project", event): + _on_save_project() + elif Utils.event_pressed_bug_workaround("shortcut_export_project", event): + _export_svg() + elif Utils.event_pressed_bug_workaround("shortcut_undo", event): + _on_undo_action() + elif Utils.event_pressed_bug_workaround("shortcut_redo", event): + _on_redo_action() + elif Utils.event_pressed_bug_workaround("shortcut_brush_tool", event): + _toolbar.enable_tool(Types.Tool.BRUSH) + elif Utils.event_pressed_bug_workaround("shortcut_rectangle_tool", event): + _toolbar.enable_tool(Types.Tool.RECTANGLE) + elif Utils.event_pressed_bug_workaround("shortcut_circle_tool", event): + _toolbar.enable_tool(Types.Tool.CIRCLE) + elif Utils.event_pressed_bug_workaround("shortcut_line_tool", event): + _toolbar.enable_tool(Types.Tool.LINE) + elif Utils.event_pressed_bug_workaround("shortcut_eraser_tool", event): + _toolbar.enable_tool(Types.Tool.ERASER) + elif Utils.event_pressed_bug_workaround("shortcut_select_tool", event): + _toolbar.enable_tool(Types.Tool.SELECT) + elif Utils.event_pressed_bug_workaround("toggle_distraction_free_mode", event): + _toggle_distraction_free_mode() + elif Utils.event_pressed_bug_workaround("toggle_fullscreen", event): + _toggle_fullscreen() + +# ------------------------------------------------------------------------------------------------- +func _toggle_player() -> void: + _player_enabled = !_player_enabled + _canvas.enable_player(_player_enabled) # ------------------------------------------------------------------------------------------------- func _save_state() -> void: diff --git a/lorien/Misc/Player/Player.gd b/lorien/Misc/Player/Player.gd index 385105c9..c927d382 100644 --- a/lorien/Misc/Player/Player.gd +++ b/lorien/Misc/Player/Player.gd @@ -2,43 +2,43 @@ class_name Player extends CharacterBody2D # ------------------------------------------------------------------------------------------------- -#export var speed: float = 400 -#export var jump_power: float = 1000 -#export var gravity: float = 60 -#onready var _sprite: AnimatedSprite = $AnimatedSprite -#onready var _col_shape_normal: CollisionShape2D = $CollisionShapeNormal -#onready var _col_shape_crouching: CollisionShape2D = $CollisionShapeCrouching -#var _velocity: Vector2 = Vector2.ZERO -# -#func _physics_process(delta: float) -> void: -# var is_crouching := false -# _velocity.y += gravity -# if Input.is_action_pressed("player_move_left"): -# _velocity.x = -speed -# _sprite.play("walk") -# _sprite.flip_h = true -# elif Input.is_action_pressed("player_move_right"): -# _velocity.x = speed -# _sprite.play("walk") -# _sprite.flip_h = false -# elif Input.is_action_pressed("player_crouch"): -# is_crouching = true -# _sprite.play("crouch") -# elif is_on_floor(): -# _velocity.x = 0 -# _sprite.play("idle") -# -# if is_on_floor() && Input.is_action_just_pressed("player_jump"): -# _velocity.y -= jump_power -# _sprite.play("jump") -# -# _col_shape_crouching.disabled = !is_crouching -# _col_shape_normal.disabled = is_crouching -# -# -# _velocity = move_and_slide(_velocity, Vector2.UP, false, 4, PI/4.0, false) -# -## ------------------------------------------------------------------------------------------------- -#func reset(global_pos: Vector2) -> void: -# global_position = global_pos -# _velocity = Vector2.ZERO +@export var speed: float = 600 +@export var jump_power: float = 1000 +@export var gravity: float = 60 + +@onready var _sprite: AnimatedSprite2D = $AnimatedSprite2D +@onready var _col_shape_normal: CollisionShape2D = $CollisionShapeNormal +@onready var _col_shape_crouching: CollisionShape2D = $CollisionShapeCrouching + +# ------------------------------------------------------------------------------------------------- +func _physics_process(delta: float) -> void: + var is_crouching := false + velocity.y += gravity + if Input.is_action_pressed("player_crouch"): + is_crouching = true + _sprite.play("crouch") + elif Input.is_action_pressed("player_move_left"): + velocity.x = -speed + _sprite.play("walk") + _sprite.flip_h = true + elif Input.is_action_pressed("player_move_right"): + velocity.x = speed + _sprite.play("walk") + _sprite.flip_h = false + elif is_on_floor(): + velocity.x = 0 + _sprite.play("idle") + + if is_on_floor() && Input.is_action_just_pressed("player_jump"): + velocity.y -= jump_power + _sprite.play("jump") + + _col_shape_crouching.disabled = !is_crouching + _col_shape_normal.disabled = is_crouching + + move_and_slide() + +# ------------------------------------------------------------------------------------------------- +func reset(global_pos: Vector2) -> void: + global_position = global_pos + velocity = Vector2.ZERO diff --git a/lorien/Misc/Player/Player.tscn b/lorien/Misc/Player/Player.tscn index 6c1e6954..9318afac 100644 --- a/lorien/Misc/Player/Player.tscn +++ b/lorien/Misc/Player/Player.tscn @@ -1,74 +1,121 @@ -[gd_scene load_steps=20 format=2] +[gd_scene load_steps=20 format=3 uid="uid://dsfivcktd8k5d"] -[ext_resource path="res://Misc/Player/Player.gd" type="Script" id=1] -[ext_resource path="res://Assets/Player/p1_stand.png" type="Texture2D" id=2] -[ext_resource path="res://Assets/Player/p1_jump.png" type="Texture2D" id=3] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk08.png" type="Texture2D" id=4] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk09.png" type="Texture2D" id=5] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk04.png" type="Texture2D" id=6] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk10.png" type="Texture2D" id=7] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk01.png" type="Texture2D" id=8] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk11.png" type="Texture2D" id=9] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk06.png" type="Texture2D" id=10] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk05.png" type="Texture2D" id=11] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk07.png" type="Texture2D" id=12] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk02.png" type="Texture2D" id=13] -[ext_resource path="res://Assets/Player/p1_walk/p1_walk03.png" type="Texture2D" id=14] -[ext_resource path="res://Assets/Player/p1_hurt.png" type="Texture2D" id=15] -[ext_resource path="res://Assets/Player/p1_duck.png" type="Texture2D" id=16] +[ext_resource type="Script" path="res://Misc/Player/Player.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://ffgv0s7vrro5" path="res://Assets/Player/p1_stand.png" id="2"] +[ext_resource type="Texture2D" uid="uid://cqyukg3uuycf4" path="res://Assets/Player/p1_jump.png" id="3"] +[ext_resource type="Texture2D" uid="uid://dwuysgyc8j82w" path="res://Assets/Player/p1_walk/p1_walk08.png" id="4"] +[ext_resource type="Texture2D" uid="uid://danut7sqbg40s" path="res://Assets/Player/p1_walk/p1_walk09.png" id="5"] +[ext_resource type="Texture2D" uid="uid://cfltcpca42j7y" path="res://Assets/Player/p1_walk/p1_walk04.png" id="6"] +[ext_resource type="Texture2D" uid="uid://b8cmwiibg70sy" path="res://Assets/Player/p1_walk/p1_walk10.png" id="7"] +[ext_resource type="Texture2D" uid="uid://byicebm3xqqvf" path="res://Assets/Player/p1_walk/p1_walk01.png" id="8"] +[ext_resource type="Texture2D" uid="uid://dy4wi0nvwge3k" path="res://Assets/Player/p1_walk/p1_walk11.png" id="9"] +[ext_resource type="Texture2D" uid="uid://col76yk5anc3w" path="res://Assets/Player/p1_walk/p1_walk06.png" id="10"] +[ext_resource type="Texture2D" uid="uid://dnc8qra7ik1og" path="res://Assets/Player/p1_walk/p1_walk05.png" id="11"] +[ext_resource type="Texture2D" uid="uid://di3s8n8y1er54" path="res://Assets/Player/p1_walk/p1_walk07.png" id="12"] +[ext_resource type="Texture2D" uid="uid://c0b2kwqc11hmp" path="res://Assets/Player/p1_walk/p1_walk02.png" id="13"] +[ext_resource type="Texture2D" uid="uid://c0a6dcqg7ifki" path="res://Assets/Player/p1_walk/p1_walk03.png" id="14"] +[ext_resource type="Texture2D" uid="uid://rnedtmq7m02m" path="res://Assets/Player/p1_hurt.png" id="15"] +[ext_resource type="Texture2D" uid="uid://b122l270v6tvm" path="res://Assets/Player/p1_duck.png" id="16"] -[sub_resource type="CapsuleShape2D" id=1] -radius = 35.7294 -height = 34.0149 - -[sub_resource type="CapsuleShape2D" id=4] -radius = 35.7294 -height = 10.4698 - -[sub_resource type="SpriteFrames" id=3] -animations = [ { -"frames": [ ExtResource( 16 ) ], +[sub_resource type="SpriteFrames" id="3"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("16") +}], "loop": false, -"name": "crouch", +"name": &"crouch", "speed": 5.0 }, { -"frames": [ ExtResource( 3 ) ], +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3") +}], "loop": false, -"name": "falling", +"name": &"falling", "speed": 5.0 }, { -"frames": [ ExtResource( 15 ) ], +"frames": [{ +"duration": 1.0, +"texture": ExtResource("15") +}], "loop": false, -"name": "hurt", +"name": &"hurt", "speed": 5.0 }, { -"frames": [ ExtResource( 2 ) ], +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2") +}], "loop": false, -"name": "idle", +"name": &"idle", "speed": 5.0 }, { -"frames": [ ExtResource( 3 ) ], +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3") +}], "loop": false, -"name": "jump", +"name": &"jump", "speed": 5.0 }, { -"frames": [ ExtResource( 8 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 6 ), ExtResource( 11 ), ExtResource( 10 ), ExtResource( 12 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 7 ), ExtResource( 9 ) ], +"frames": [{ +"duration": 1.0, +"texture": ExtResource("8") +}, { +"duration": 1.0, +"texture": ExtResource("13") +}, { +"duration": 1.0, +"texture": ExtResource("14") +}, { +"duration": 1.0, +"texture": ExtResource("6") +}, { +"duration": 1.0, +"texture": ExtResource("11") +}, { +"duration": 1.0, +"texture": ExtResource("10") +}, { +"duration": 1.0, +"texture": ExtResource("12") +}, { +"duration": 1.0, +"texture": ExtResource("4") +}, { +"duration": 1.0, +"texture": ExtResource("5") +}, { +"duration": 1.0, +"texture": ExtResource("7") +}, { +"duration": 1.0, +"texture": ExtResource("9") +}], "loop": true, -"name": "walk", +"name": &"walk", "speed": 12.0 -} ] +}] + +[sub_resource type="CapsuleShape2D" id="1"] +radius = 33.0 +height = 98.0 + +[sub_resource type="CapsuleShape2D" id="4"] +radius = 30.0 +height = 70.0 [node name="Player" type="CharacterBody2D"] -script = ExtResource( 1 ) +script = ExtResource("1") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("3") +animation = &"walk" [node name="CollisionShapeNormal" type="CollisionShape2D" parent="."] -shape = SubResource( 1 ) +shape = SubResource("1") [node name="CollisionShapeCrouching" type="CollisionShape2D" parent="."] -shape = SubResource( 4 ) +shape = SubResource("4") disabled = true - -[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] -frames = SubResource( 3 ) -animation = "crouch" -playing = true diff --git a/lorien/project.godot b/lorien/project.godot index 2a634c45..69014a37 100644 --- a/lorien/project.godot +++ b/lorien/project.godot @@ -201,6 +201,36 @@ shortcut_export_project={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +toggle_player={ +"deadzone": 0.5, +"events": [null, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194343,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +player_move_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +player_move_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +player_crouch={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +player_jump={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} [locale]