diff --git a/Characters/test_player/test_player.gd b/Characters/test_player/test_player.gd index 9c2dd2b..99c53cf 100644 --- a/Characters/test_player/test_player.gd +++ b/Characters/test_player/test_player.gd @@ -9,6 +9,7 @@ extends CharacterBody2D @export var attack_speed := 2000 @export var throwback_strength := 2 @onready var player_sprite = $Sprite2D +@onready var player_cam = $player_cam @onready var player := get_node(".") #Animation @onready var anim_tree = $AnimationTree @@ -44,9 +45,19 @@ signal value_changed signal health_changed signal player_killed +func _enter_tree(): + set_multiplayer_authority(str(name).to_int()) + +@rpc("any_peer") +func set_spawn_location(spawn_position: Vector2): + print("RPC position update! from PEER ID: ", player.name, spawn_position) + set_position(spawn_position) + func _ready(): if not is_multiplayer_authority(): return - print("Setting IDLE") + print("Setting IDLE: ", get_position()) + player_cam.make_current() + #player_cam.current = true # for mp to set the camera #anim_mode.travel("idle") @@ -107,6 +118,9 @@ func attack_finished(): is_attacking = false func get_input(): + if Input.is_action_just_pressed("reset_pos"): + print("REsetting player POS: ") + set_position(Vector2(-110, 561)) if Input.is_action_just_pressed("print_pos"): print("PLAYER POSITION!: ", player.get_position()) if Input.is_action_just_pressed("show_inventory"): @@ -170,8 +184,10 @@ func get_input(): anim_tree.set("parameters/walkIdleBlend/blend_amount", 1) else: anim_tree.set("parameters/walkIdleBlend/blend_amount", 0) + func _physics_process(delta): + if not is_multiplayer_authority(): return # if not is_multiplayer_authority(): # get_input() # move_and_slide() @@ -185,7 +201,11 @@ func _physics_process(delta): var collider = collision.get_collider() if collider.is_in_group("moveable"): var normal = collision.get_normal() - collider.apply_central_impulse(-collision.get_normal() * push_power) + collider.apply_central_force(-collision.get_normal() * push_power) + #collider.applied_force = -collision.get_normal() * push_power + #collider.move_object.rpc() + + #collider.apply_central_impulse() # push back the player when player pushed #player_hit.is_player_hit = true #player_hit.hit_velocity = push_power * .1 diff --git a/Characters/test_player/test_player.tscn b/Characters/test_player/test_player.tscn index 8fe917b..946b8f4 100644 --- a/Characters/test_player/test_player.tscn +++ b/Characters/test_player/test_player.tscn @@ -1,12 +1,13 @@ -[gd_scene load_steps=20 format=3 uid="uid://c1gncjamuavvs"] +[gd_scene load_steps=22 format=3 uid="uid://c1gncjamuavvs"] [ext_resource type="Script" path="res://Characters/test_player/test_player.gd" id="1_6aci1"] [ext_resource type="Texture2D" uid="uid://cs5o8bykug82q" path="res://Characters/test_player/WARRIOR SKELETON SS 2.png" id="1_8pmbp"] +[ext_resource type="PackedScene" uid="uid://0ou4asf4vsc1" path="res://UI/Inventory/Inventory.tscn" id="3_fol83"] -[sub_resource type="RectangleShape2D" id="RectangleShape2D_a08cb"] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_3qub5"] size = Vector2(22, 20) -[sub_resource type="Animation" id="Animation_1103t"] +[sub_resource type="Animation" id="Animation_v17mb"] resource_name = "attack" length = 0.65 tracks/0/type = "value" @@ -22,7 +23,7 @@ tracks/0/keys = { "values": [Vector2i(0, 5), Vector2i(1, 5), Vector2i(2, 5), Vector2i(3, 5)] } -[sub_resource type="Animation" id="Animation_vnyb5"] +[sub_resource type="Animation" id="Animation_dhyjd"] resource_name = "damage" step = 0.01 tracks/0/type = "value" @@ -38,7 +39,7 @@ tracks/0/keys = { "values": [Color(0.792157, 0.0901961, 0.0901961, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(0.792157, 0.0901961, 0.0901961, 1), Color(1, 1, 1, 1)] } -[sub_resource type="Animation" id="Animation_gq32v"] +[sub_resource type="Animation" id="Animation_jals6"] resource_name = "die" tracks/0/type = "value" tracks/0/imported = false @@ -53,7 +54,7 @@ tracks/0/keys = { "values": [Vector2i(0, 4), Vector2i(1, 4), Vector2i(2, 4), Vector2i(3, 4), Vector2i(4, 4)] } -[sub_resource type="Animation" id="Animation_r2lqp"] +[sub_resource type="Animation" id="Animation_mhxr4"] resource_name = "idle" length = 2.0 loop_mode = 1 @@ -70,7 +71,7 @@ tracks/0/keys = { "values": [Vector2i(0, 0), Vector2i(1, 0), Vector2i(2, 0), Vector2i(3, 0), Vector2i(4, 0)] } -[sub_resource type="Animation" id="Animation_psmw8"] +[sub_resource type="Animation" id="Animation_5kwsw"] resource_name = "walk" loop_mode = 1 step = 0.01 @@ -87,81 +88,97 @@ tracks/0/keys = { "values": [Vector2i(0, 1), Vector2i(1, 1), Vector2i(2, 1), Vector2i(3, 1), Vector2i(4, 1), Vector2i(5, 1)] } -[sub_resource type="AnimationLibrary" id="AnimationLibrary_rx5pu"] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_mfcw3"] _data = { -"attack": SubResource("Animation_1103t"), -"damage": SubResource("Animation_vnyb5"), -"die": SubResource("Animation_gq32v"), -"idle": SubResource("Animation_r2lqp"), -"walk": SubResource("Animation_psmw8") +"attack": SubResource("Animation_v17mb"), +"damage": SubResource("Animation_dhyjd"), +"die": SubResource("Animation_jals6"), +"idle": SubResource("Animation_mhxr4"), +"walk": SubResource("Animation_5kwsw") } -[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_7kx25"] +[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_lqar1"] -[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_gm2dr"] +[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_vr7py"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_cl8pn"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_d7310"] animation = &"attack" -[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_tyu0k"] +[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_83svy"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f5cnp"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ixc0x"] animation = &"damage" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4qn65"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_wmn47"] animation = &"die" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kqkvd"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_poall"] animation = &"idle" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_66hu3"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cxexk"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_jxg51"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6a4lj"] animation = &"walk" -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_6ake6"] -graph_offset = Vector2(-1059.2, -82.3198) -nodes/AttackOneShot/node = SubResource("AnimationNodeOneShot_7kx25") +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_4pmjh"] +graph_offset = Vector2(-769.911, -161.25) +nodes/AttackOneShot/node = SubResource("AnimationNodeOneShot_lqar1") nodes/AttackOneShot/position = Vector2(-320, 60) -nodes/DieOneShot/node = SubResource("AnimationNodeOneShot_gm2dr") +nodes/DieOneShot/node = SubResource("AnimationNodeOneShot_vr7py") nodes/DieOneShot/position = Vector2(-120, 180) -nodes/attack_anim/node = SubResource("AnimationNodeAnimation_cl8pn") +nodes/attack_anim/node = SubResource("AnimationNodeAnimation_d7310") nodes/attack_anim/position = Vector2(-560, 200) -nodes/damageOneShot/node = SubResource("AnimationNodeOneShot_tyu0k") +nodes/damageOneShot/node = SubResource("AnimationNodeOneShot_83svy") nodes/damageOneShot/position = Vector2(100, 320) -nodes/damage_anim/node = SubResource("AnimationNodeAnimation_f5cnp") +nodes/damage_anim/node = SubResource("AnimationNodeAnimation_ixc0x") nodes/damage_anim/position = Vector2(-200, 460) -nodes/die_anim/node = SubResource("AnimationNodeAnimation_4qn65") +nodes/die_anim/node = SubResource("AnimationNodeAnimation_wmn47") nodes/die_anim/position = Vector2(-440, 340) -nodes/idle_anim/node = SubResource("AnimationNodeAnimation_kqkvd") +nodes/idle_anim/node = SubResource("AnimationNodeAnimation_poall") nodes/idle_anim/position = Vector2(-940, 60) nodes/output/position = Vector2(400, 340) -nodes/walkIdleBlend/node = SubResource("AnimationNodeBlend2_66hu3") +nodes/walkIdleBlend/node = SubResource("AnimationNodeBlend2_cxexk") nodes/walkIdleBlend/position = Vector2(-660, -40) -nodes/walk_anim/node = SubResource("AnimationNodeAnimation_jxg51") +nodes/walk_anim/node = SubResource("AnimationNodeAnimation_6a4lj") nodes/walk_anim/position = Vector2(-920, -80) node_connections = [&"output", 0, &"damageOneShot", &"AttackOneShot", 0, &"walkIdleBlend", &"AttackOneShot", 1, &"attack_anim", &"DieOneShot", 0, &"AttackOneShot", &"DieOneShot", 1, &"die_anim", &"damageOneShot", 0, &"DieOneShot", &"damageOneShot", 1, &"damage_anim", &"walkIdleBlend", 0, &"walk_anim", &"walkIdleBlend", 1, &"idle_anim"] +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_n4dy6"] +properties/0/path = NodePath(".:position") +properties/0/spawn = true +properties/0/sync = true +properties/1/path = NodePath(".:rotation") +properties/1/spawn = true +properties/1/sync = true +properties/2/path = NodePath("Sprite2D:frame") +properties/2/spawn = true +properties/2/sync = true +properties/3/path = NodePath("Sprite2D:flip_h") +properties/3/spawn = true +properties/3/sync = true + [node name="test_player" type="CharacterBody2D" groups=["player"]] +motion_mode = 1 script = ExtResource("1_6aci1") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(1, 2) -shape = SubResource("RectangleShape2D_a08cb") +shape = SubResource("RectangleShape2D_3qub5") [node name="Sprite2D" type="Sprite2D" parent="."] z_index = 1 texture = ExtResource("1_8pmbp") hframes = 6 vframes = 6 +frame = 4 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { -"": SubResource("AnimationLibrary_rx5pu") +"": SubResource("AnimationLibrary_mfcw3") } [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource("AnimationNodeBlendTree_6ake6") +tree_root = SubResource("AnimationNodeBlendTree_4pmjh") anim_player = NodePath("../AnimationPlayer") active = true parameters/AttackOneShot/active = false @@ -174,6 +191,13 @@ parameters/walkIdleBlend/blend_amount = 1.0 [node name="player_cam" type="Camera2D" parent="."] modulate = Color(0, 0, 0, 1) -current = true [node name="InvulnerableTimer" type="Timer" parent="."] + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="Inventory" parent="CanvasLayer" instance=ExtResource("3_fol83")] +mouse_filter = 2 + +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."] +replication_config = SubResource("SceneReplicationConfig_n4dy6") diff --git a/Game Manager/game_manager.gd b/Game Manager/game_manager.gd index 2049eaa..b7f059f 100644 --- a/Game Manager/game_manager.gd +++ b/Game Manager/game_manager.gd @@ -1,22 +1,81 @@ extends Node + + @onready var manager = get_node(".") +@onready var main_menu = $CanvasLayer/MainMenu +@onready var start_game_menu = $CanvasLayer/StartGameMenu +@onready var address_entry = $CanvasLayer/MainMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/AddressEntry +@onready var notifications = $CanvasLayer/notifications +@onready var spawner = $MultiplayerSpawner + + +var PORT = 9999 +var enet_peer = ENetMultiplayerPeer.new() + const Level1 = preload("res://Levels/Level1/Level1.tscn") const Player = preload("res://Characters/test_player/test_player.tscn") +var spawn_location: Vector2 = Vector2.ZERO + + # Called when the node enters the scene tree for the first time. func _ready(): + #get_tree().paused = true var level_1 = Level1.instantiate() - var spawn_location = level_1.get_node("PlayerSpawnLocation") - spawn_location.set_visible(false) - manager.add_child(level_1) - var new_player = Player.instantiate() - manager.add_child(new_player) - new_player.set_position(spawn_location.get_position()) + var spawn_location_in_level = level_1.get_node("PlayerSpawnLocation") + spawn_location = spawn_location_in_level.get_position() + spawn_location_in_level.set_visible(false) + add_child(level_1) + +func add_player(peer_id): + var player = Player.instantiate() + player.name = str(peer_id) + add_child(player) # Adds to current scene under root node + if peer_id == 1: + player.set_position(spawn_location) + else: + spawn_location = spawn_location + Vector2(50, 0) + player.set_spawn_location.rpc(spawn_location) + print("SPAWN LOCATION: ", spawn_location, " PEER ID: ", player.name) +# show_notification.rpc("Test Message") + + + +@rpc("call_local") +func show_notification(my_message: String): + notifications.show_new_notification(my_message) +func _on_host_button_pressed(): # When hosting a new game + main_menu.hide() + start_game_menu.show() + enet_peer.create_server(PORT) + multiplayer.multiplayer_peer = enet_peer + multiplayer.peer_connected.connect(add_player) + + add_player(multiplayer.get_unique_id()) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): pass + + +func _on_join_button_pressed(): + main_menu.hide() + enet_peer.create_client("localhost", PORT) + multiplayer.multiplayer_peer = enet_peer + + +func _on_start_game_button_pressed(): + start_game_menu.hide() + + +func _on_play_single_player_button_pressed(): + var player = Player.instantiate() + player.name = str(1) + add_child(player) + player.set_position(spawn_location) + main_menu.hide() + notifications.hide() diff --git a/Game Manager/game_manager.tscn b/Game Manager/game_manager.tscn index 6158f11..fad6954 100644 --- a/Game Manager/game_manager.tscn +++ b/Game Manager/game_manager.tscn @@ -2,5 +2,38 @@ [ext_resource type="Script" path="res://Game Manager/game_manager.gd" id="1_bkvdw"] -[node name="game_manager" type="Node2D"] +[node name="game_manager" type="Node"] script = ExtResource("1_bkvdw") + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="StartGameMenu" type="Control" parent="CanvasLayer"] +process_mode = 3 +visible = false +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer/StartGameMenu"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/StartGameMenu/PanelContainer"] +layout_mode = 2 + +[node name="StartGameButton" type="Button" parent="CanvasLayer/StartGameMenu/PanelContainer/MarginContainer"] +layout_mode = 2 +text = "Start Game" + +[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."] +_spawnable_scenes = PackedStringArray("res://Characters/test_player/test_player.tscn", "res://PhysicsObjects/HandStatue/HandStatue.tscn") +spawn_path = NodePath("..") + +[connection signal="pressed" from="CanvasLayer/StartGameMenu/PanelContainer/MarginContainer/StartGameButton" to="." method="_on_start_game_button_pressed"] diff --git a/Levels/Level1/Level1.tscn b/Levels/Level1/Level1.tscn index 4397c8a..1019326 100644 --- a/Levels/Level1/Level1.tscn +++ b/Levels/Level1/Level1.tscn @@ -9,11 +9,8 @@ [node name="TileMap" parent="." instance=ExtResource("1_1k16l")] layer_0/tile_data = PackedInt32Array(0, 0, 0, 65537, 0, 0, 131074, 0, 0, 131075, 0, 0, 196611, 0, 0, 196612, 0, 0, 262148, 0, 0, 262149, 0, 0, 327686, 0, 0, 327687, 0, 0, 327688, 0, 0, 393224, 0, 0, 458760, 0, 0, 1, 0, 0, 131073, 0, 0, 196609, 0, 0, 262145, 0, 0, 327681, 0, 0, 393217, 0, 0, 458753, 0, 0, 2, 0, 0, 65538, 0, 0, 196610, 0, 0, 262146, 0, 0, 327682, 0, 0, 393218, 0, 0, 458754, 0, 0, 3, 0, 0, 65539, 0, 0, 262147, 0, 0, 327683, 0, 0, 393219, 0, 0, 458755, 0, 0, 4, 0, 0, 65540, 0, 0, 131076, 0, 0, 327684, 0, 0, 393220, 0, 0, 458756, 0, 0, 5, 0, 0, 65541, 0, 0, 131077, 0, 0, 196613, 0, 0, 327685, 0, 0, 393221, 0, 0, 458757, 0, 0, 6, 0, 0, 65542, 0, 0, 131078, 0, 0, 196614, 0, 0, 262150, 0, 0, 393222, 0, 0, 458758, 0, 0, 7, 0, 0, 65543, 0, 0, 131079, 0, 0, 196615, 0, 0, 262151, 0, 0, 393223, 0, 0, 458759, 0, 0, 8, 0, 0, 65544, 0, 0, 131080, 0, 0, 196616, 0, 0, 262152, 0, 0, 65536, 0, 0, 131072, 0, 0, 196608, 0, 0, 262144, 0, 0, 327680, 0, 0, 393216, 0, 0, 458752, 0, 0, -65536, 0, 6, -65535, 0, 6, -65534, 0, 6, -65533, 0, 6, -65532, 0, 6, -65531, 0, 6, -65530, 0, 6, -65529, 0, 6, -65528, 0, 6, -131072, 0, 5, -131071, 0, 5, -131070, 0, 5, -131069, 0, 5, -131068, 0, 5, -131067, 0, 5, -131066, 0, 5, -131065, 0, 5, -131064, 0, 5, -196608, 0, 2, -196607, 0, 2, -196606, 0, 2, -196605, 0, 2, -196604, 0, 2, -196603, 0, 2, -196602, 0, 2, -196601, 0, 2, -196600, 0, 2, -196599, 65536, 3, -131063, 0, 1, -65527, 0, 1, 9, 0, 1, 65545, 0, 1, 131081, 0, 1, 196617, 0, 1, 262153, 0, 1, 327689, 0, 1, 393225, 0, 1, 458761, 0, 1, 524291, 196608, 0, 524292, 196608, 0, 589827, 196608, 0, 655363, 196608, 0, 720899, 196608, 0, 786435, 196608, 0, 851971, 196608, 0, 917507, 196608, 0, 983043, 196608, 0, 1048579, 196608, 0, 589828, 196608, 0, 655364, 196608, 0, 720900, 196608, 0, 786436, 196608, 0, 851972, 196608, 0, 917508, 196608, 0, 983044, 196608, 0, 1048580, 196608, 0, 524296, 65536, 2, 524295, 65536, 2, 524294, 65536, 2, 524293, 196608, 1, 524297, 65536, 4, 589829, 0, 1, 655365, 0, 1, 720901, 0, 1, 786437, 0, 1, 851973, 0, 1, 917509, 196608, 2, 983045, 0, 5, 1048581, 0, 6, -131073, 0, 3, -65537, 65536, 1, -1, 65536, 1, 65535, 65536, 1, 131071, 65536, 1, 196607, 65536, 1, 262143, 65536, 1, 327679, 65536, 1, 393215, 65536, 1, 458751, 65536, 1, 524287, 65536, 1, 524288, 65536, 2, 524289, 65536, 2, 524290, 262144, 1, 589826, 65536, 1, 655362, 65536, 1, 720898, 65536, 1, 786434, 65536, 1, 851970, 65536, 1, 917506, 262144, 2, 983042, 0, 5, 1048578, 0, 6, 589823, 0, 4, 1179643, 0, 0, 1245179, 0, 0, 1310715, 0, 0, 1376251, 0, 0, 1441787, 0, 0, 1507323, 0, 0, 1572859, 0, 0, 1638395, 0, 0, 1703931, 0, 0, 1769467, 0, 0, 1835003, 0, 0, 1900539, 0, 0, 1966075, 0, 0, 2031611, 0, 0, 2097147, 0, 0, 2162683, 0, 0, 1179644, 0, 0, 1245180, 0, 0, 1310716, 0, 0, 1376252, 0, 0, 1441788, 0, 0, 1507324, 0, 0, 1572860, 0, 0, 1638396, 0, 0, 1703932, 0, 0, 1769468, 0, 0, 1835004, 0, 0, 1900540, 0, 0, 1966076, 0, 0, 2031612, 0, 0, 2097148, 0, 0, 2162684, 0, 0, 1179645, 0, 0, 1245181, 0, 0, 1310717, 0, 0, 1376253, 0, 0, 1441789, 0, 0, 1507325, 0, 0, 1572861, 0, 0, 1638397, 0, 0, 1703933, 0, 0, 1769469, 0, 0, 1835005, 0, 0, 1900541, 0, 0, 1966077, 0, 0, 2031613, 0, 0, 2097149, 0, 0, 2162685, 0, 0, 1179646, 0, 0, 1245182, 0, 0, 1310718, 0, 0, 1376254, 327680, 0, 1441790, 327680, 0, 1507326, 327680, 0, 1572862, 0, 0, 1638398, 0, 0, 1703934, 0, 0, 1769470, 0, 0, 1835006, 0, 0, 1900542, 0, 0, 1966078, 0, 0, 2031614, 0, 0, 2097150, 0, 0, 2162686, 0, 0, 1179647, 0, 0, 1245183, 0, 0, 1310719, 0, 0, 1376255, 327680, 0, 1441791, 327680, 0, 1507327, 327680, 0, 1572863, 0, 0, 1638399, 0, 0, 1703935, 0, 0, 1769471, 0, 0, 1835007, 0, 0, 1900543, 0, 0, 1966079, 0, 0, 2031615, 0, 0, 2097151, 0, 0, 2162687, 0, 0, 1114112, 0, 0, 1179648, 0, 0, 1245184, 0, 0, 1310720, 327680, 0, 1376256, 327680, 0, 1441792, 327680, 0, 1507328, 0, 0, 1572864, 0, 0, 1638400, 0, 0, 1703936, 0, 0, 1769472, 0, 0, 1835008, 0, 0, 1900544, 0, 0, 1966080, 0, 0, 2031616, 0, 0, 2097152, 0, 0, 1114113, 0, 0, 1179649, 0, 0, 1245185, 0, 0, 1310721, 327680, 0, 1376257, 327680, 0, 1441793, 327680, 0, 1507329, 0, 0, 1572865, 0, 0, 1638401, 0, 0, 1703937, 0, 0, 1769473, 0, 0, 1835009, 0, 0, 1900545, 0, 0, 1966081, 0, 0, 2031617, 0, 0, 2097153, 0, 0, 1114114, 0, 0, 1179650, 0, 0, 1245186, 0, 0, 1310722, 0, 0, 1376258, 0, 0, 1441794, 0, 0, 1507330, 0, 0, 1572866, 0, 0, 1638402, 0, 0, 1703938, 0, 0, 1769474, 0, 0, 1835010, 0, 0, 1900546, 0, 0, 1966082, 0, 0, 2031618, 0, 0, 2097154, 0, 0, 1114115, 0, 0, 1179651, 0, 0, 1245187, 0, 0, 1310723, 0, 0, 1376259, 0, 0, 1441795, 0, 0, 1507331, 0, 0, 1572867, 0, 0, 1638403, 0, 0, 1703939, 0, 0, 1769475, 0, 0, 1835011, 0, 0, 1900547, 0, 0, 1966083, 0, 0, 2031619, 0, 0, 2097155, 0, 0, 1114116, 0, 0, 1179652, 0, 0, 1245188, 0, 0, 1310724, 0, 0, 1376260, 0, 0, 1441796, 0, 0, 1507332, 0, 0, 1572868, 0, 0, 1638404, 0, 0, 1703940, 0, 0, 1769476, 0, 0, 1835012, 0, 0, 1900548, 0, 0, 1966084, 0, 0, 2031620, 0, 0, 2097156, 0, 0, 1114117, 0, 0, 1179653, 0, 0, 1245189, 0, 0, 1310725, 0, 0, 1376261, 0, 0, 1441797, 0, 0, 1507333, 0, 0, 1572869, 0, 0, 1638405, 0, 0, 1703941, 0, 0, 1769477, 262144, 0, 1835013, 262144, 0, 1900549, 262144, 0, 1966085, 262144, 0, 2031621, 0, 0, 2097157, 0, 0, 1114118, 0, 0, 1179654, 0, 0, 1245190, 0, 0, 1310726, 0, 0, 1376262, 0, 0, 1441798, 0, 0, 1507334, 0, 0, 1572870, 0, 0, 1638406, 0, 0, 1703942, 0, 0, 1769478, 262144, 0, 1835014, 262144, 0, 1900550, 262144, 0, 1966086, 262144, 0, 2031622, 0, 0, 2097158, 0, 0, 1114119, 0, 0, 1179655, 0, 0, 1245191, 0, 0, 1310727, 0, 0, 1376263, 0, 0, 1441799, 0, 0, 1507335, 0, 0, 1572871, 0, 0, 1638407, 0, 0, 1703943, 0, 0, 1769479, 262144, 0, 1835015, 262144, 0, 1900551, 262144, 0, 1966087, 262144, 0, 2031623, 0, 0, 2097159, 0, 0, 1114120, 0, 0, 1179656, 0, 0, 1245192, 0, 0, 1310728, 0, 0, 1376264, 0, 0, 1441800, 0, 0, 1507336, 0, 0, 1572872, 0, 0, 1638408, 0, 0, 1703944, 0, 0, 1769480, 262144, 0, 1835016, 262144, 0, 1900552, 262144, 0, 1966088, 262144, 0, 2031624, 0, 0, 2097160, 0, 0, 1114121, 0, 0, 1179657, 0, 0, 1245193, 0, 0, 1310729, 0, 0, 1376265, 0, 0, 1441801, 0, 0, 1507337, 0, 0, 1572873, 0, 0, 1638409, 0, 0, 1703945, 0, 0, 1769481, 262144, 0, 1835017, 262144, 0, 1900553, 262144, 0, 1966089, 262144, 0, 2031625, 0, 0, 2097161, 0, 0, 1114122, 0, 0, 1179658, 0, 0, 1245194, 0, 0, 1310730, 0, 0, 1376266, 0, 0, 1441802, 0, 0, 1507338, 0, 0, 1572874, 0, 0, 1638410, 0, 0, 1703946, 0, 0, 1769482, 0, 0, 1835018, 0, 0, 1900554, 0, 0, 1966090, 0, 0, 2031626, 0, 0, 2097162, 0, 0, 1114123, 0, 0, 1179659, 0, 0, 1245195, 0, 0, 1310731, 0, 0, 1376267, 0, 0, 1441803, 0, 0, 1507339, 0, 0, 1572875, 0, 0, 1638411, 0, 0, 1703947, 0, 0, 1769483, 0, 0, 1835019, 0, 0, 1900555, 0, 0, 1966091, 0, 0, 2031627, 0, 0, 2097163, 0, 0, 1114124, 0, 0, 1179660, 0, 0, 1245196, 0, 0, 1310732, 0, 0, 1376268, 0, 0, 1441804, 0, 0, 1507340, 0, 0, 1572876, 0, 0, 1638412, 0, 0, 1703948, 0, 0, 1769484, 0, 0, 1835020, 0, 0, 1900556, 0, 0, 1966092, 0, 0, 2031628, 0, 0, 2097164, 0, 0, 1114125, 0, 0, 1179661, 0, 0, 1245197, 0, 0, 1310733, 0, 0, 1376269, 0, 0, 1441805, 0, 0, 1507341, 0, 0, 1572877, 0, 0, 1638413, 0, 0, 1703949, 0, 0, 1769485, 0, 0, 1835021, 0, 0, 1900557, 0, 0, 1966093, 0, 0, 2031629, 0, 0, 2097165, 0, 0, 1114126, 0, 0, 1179662, 0, 0, 1245198, 0, 0, 1310734, 0, 0, 1376270, 393216, 0, 1441806, 393216, 0, 1507342, 393216, 0, 1572878, 393216, 0, 1638414, 0, 0, 1703950, 0, 0, 1769486, 0, 0, 1835022, 0, 0, 1900558, 0, 0, 1966094, 0, 0, 2031630, 0, 0, 2097166, 0, 0, 1114127, 0, 0, 1179663, 0, 0, 1245199, 0, 0, 1310735, 0, 0, 1376271, 393216, 0, 1441807, 393216, 0, 1507343, 393216, 0, 1572879, 393216, 0, 1638415, 0, 0, 1703951, 0, 0, 1769487, 0, 0, 1835023, 0, 0, 1900559, 0, 0, 1966095, 0, 0, 2031631, 0, 0, 2097167, 0, 0, 1114128, 0, 0, 1179664, 0, 0, 1245200, 0, 0, 1310736, 0, 0, 1376272, 393216, 0, 1441808, 393216, 0, 1507344, 393216, 0, 1572880, 393216, 0, 1638416, 0, 0, 1703952, 0, 0, 1769488, 0, 0, 1835024, 0, 0, 1900560, 0, 0, 1966096, 0, 0, 2031632, 0, 0, 2097168, 0, 0, 1114129, 0, 0, 1179665, 0, 0, 1245201, 0, 0, 1310737, 0, 0, 1376273, 393216, 0, 1441809, 393216, 0, 1507345, 393216, 0, 1572881, 393216, 0, 1638417, 0, 0, 1703953, 0, 0, 1769489, 0, 0, 1835025, 0, 0, 1900561, 0, 0, 1966097, 0, 0, 2031633, 0, 0, 2097169, 0, 0, 1114130, 0, 0, 1179666, 0, 0, 1245202, 0, 0, 1310738, 0, 0, 1376274, 393216, 0, 1441810, 393216, 0, 1507346, 393216, 0, 1572882, 393216, 0, 1638418, 0, 0, 1703954, 0, 0, 1769490, 0, 0, 1835026, 0, 0, 1900562, 0, 0, 1966098, 0, 0, 2031634, 0, 0, 2097170, 0, 0, 1114131, 0, 0, 1179667, 0, 0, 1245203, 0, 0, 1310739, 0, 0, 1376275, 0, 0, 1441811, 0, 0, 1507347, 0, 0, 1572883, 0, 0, 1638419, 0, 0, 1703955, 0, 0, 1769491, 0, 0, 1835027, 0, 0, 1900563, 0, 0, 1966099, 0, 0, 2031635, 0, 0, 2097171, 0, 0, 1114132, 0, 0, 1179668, 0, 0, 1245204, 0, 0, 1310740, 0, 0, 1376276, 0, 0, 1441812, 0, 0, 1507348, 0, 0, 1572884, 0, 0, 1638420, 0, 0, 1703956, 0, 0, 1769492, 0, 0, 1835028, 0, 0, 1900564, 0, 0, 1966100, 0, 0, 2031636, 0, 0, 2097172, 0, 0, 1114133, 0, 0, 1179669, 0, 0, 1245205, 0, 0, 1310741, 0, 0, 1376277, 0, 0, 1441813, 0, 0, 1507349, 0, 0, 1572885, 0, 0, 1638421, 0, 0, 1703957, 0, 0, 1769493, 0, 0, 1835029, 0, 0, 1900565, 0, 0, 1966101, 0, 0, 2031637, 0, 0, 2097173, 0, 0, 1048582, 0, 6, 1048583, 0, 6, 1048584, 0, 6, 1048585, 0, 6, 1048586, 0, 6, 1048587, 0, 6, 1048588, 0, 6, 1048589, 0, 6, 1048590, 0, 6, 1048591, 0, 6, 1048592, 0, 6, 1048593, 0, 6, 1048594, 0, 6, 1048595, 0, 6, 1048596, 0, 6, 1048597, 0, 6, 1114134, 0, 1, 1179670, 0, 1, 1245206, 0, 1, 1310742, 0, 1, 1376278, 0, 1, 1441814, 0, 1, 1507350, 0, 1, 1572886, 0, 1, 1638422, 0, 1, 1703958, 0, 1, 1769494, 0, 1, 1835030, 0, 1, 1900566, 0, 1, 1966102, 0, 1, 2031638, 0, 1, 2097174, 0, 1, 2162709, 65536, 2, 2162708, 65536, 2, 2162707, 65536, 2, 2162706, 65536, 2, 2162705, 65536, 2, 2162704, 65536, 2, 2162703, 65536, 2, 2162702, 65536, 2, 2162701, 65536, 2, 2162700, 65536, 2, 2162699, 65536, 2, 2162698, 65536, 2, 2162697, 65536, 2, 2162696, 65536, 2, 2162695, 65536, 2, 2162694, 65536, 2, 2162693, 65536, 2, 2162692, 65536, 2, 2162691, 65536, 2, 2162690, 65536, 2, 2162689, 65536, 2, 2162688, 65536, 2, 2228223, 65536, 2, 2228222, 65536, 2, 2228221, 65536, 2, 2228220, 65536, 2, 2228219, 65536, 2, 2162682, 65536, 1, 2097146, 65536, 1, 2031610, 65536, 1, 1966074, 65536, 1, 1900538, 65536, 1, 1835002, 65536, 1, 1769466, 65536, 1, 1703930, 65536, 1, 1638394, 65536, 1, 1572858, 65536, 1, 1507322, 65536, 1, 1441786, 65536, 1, 1376250, 65536, 1, 1310714, 65536, 1, 1245178, 65536, 1, 1179642, 65536, 1, 1048577, 0, 6, 1048576, 0, 6, 1114111, 0, 6, 1114110, 0, 6, 1114109, 0, 6, 1114108, 0, 6, 1114107, 0, 6, 1114106, 65536, 1, 2228218, 0, 4, 2162710, 65536, 4, 1048598, 0, 1, 983046, 0, 5, 983047, 0, 5, 983048, 0, 5, 983049, 0, 5, 983050, 0, 5, 983051, 0, 5, 983052, 0, 5, 983053, 0, 5, 983054, 0, 5, 983055, 0, 5, 983056, 0, 5, 983057, 0, 5, 983058, 0, 5, 983059, 0, 5, 983060, 0, 5, 983061, 0, 5, 983041, 0, 5, 983040, 0, 5, 1048575, 0, 5, 1048574, 0, 5, 1048573, 0, 5, 1048572, 0, 5, 1048571, 0, 5, 1048570, 65536, 1, 983035, 0, 2, 983036, 0, 2, 983037, 0, 2, 983038, 0, 2, 983039, 0, 2, 917504, 0, 2, 917505, 0, 2, 917510, 0, 2, 917511, 0, 2, 917512, 0, 2, 917513, 0, 2, 917514, 0, 2, 917515, 0, 2, 917516, 0, 2, 917517, 0, 2, 917518, 0, 2, 917519, 0, 2, 917520, 0, 2, 917521, 0, 2, 917522, 0, 2, 917523, 0, 2, 917524, 0, 2, 917525, 0, 2, 983062, 0, 1, 917526, 65536, 3, 983034, 0, 3) -[node name="HandStatue" parent="." instance=ExtResource("2_jwx5u")] -position = Vector2(106, 343) - [node name="PlayerSpawnLocation" parent="." instance=ExtResource("3_h26d8")] -position = Vector2(215, 344) +position = Vector2(-10, 461) -[node name="HandStatue2" parent="." instance=ExtResource("2_jwx5u")] -position = Vector2(159, 346) +[node name="HandStatue" parent="." instance=ExtResource("2_jwx5u")] +position = Vector2(89, 378) diff --git a/PhysicsObjects/HandStatue/HandStatue.gd b/PhysicsObjects/HandStatue/HandStatue.gd index d8f6e62..b3eefdb 100644 --- a/PhysicsObjects/HandStatue/HandStatue.gd +++ b/PhysicsObjects/HandStatue/HandStatue.gd @@ -1,27 +1,34 @@ extends RigidBody2D -@onready var rigid_body = get_node(".") +@export var initial_impulse:Vector2 = Vector2(0,0) +@export var damage_speed:int = 50 +@export var max_speed:int = 150 +@export var push_strength:int = 20 + @onready var last_velocity:Vector2 = Vector2(0,0) @onready var current_player:CharacterBody2D = null -@export var initial_impulse:Vector2 = Vector2(0,0) - -# Called when the node enters the scene tree for the first time. -func _ready(): - print("Statue Ready!") - if initial_impulse != Vector2.ZERO: - rigid_body.apply_central_impulse(initial_impulse) - + +func _physics_process(delta): + last_velocity = get_linear_velocity() + if last_velocity.length() > damage_speed: + set_modulate(Color("8e2325")) + else: + set_modulate(Color("ffffff")) + if last_velocity.length() > max_speed: + set_linear_velocity(get_linear_velocity().normalized() * max_speed) + last_velocity.length() func _on_body_entered(body): - print("body entered! ") if body.is_in_group("player"): - print("Player collided!") - current_player = body - current_player.player_hit.is_player_hit = true - current_player.player_hit.hit_velocity = last_velocity - - if last_velocity.x > 50 or last_velocity.y < -50 or last_velocity.x < -50 or last_velocity.y > 50: + if last_velocity.length() > damage_speed: + current_player = body + current_player.player_hit.is_player_hit = true + current_player.player_hit.hit_velocity = last_velocity.normalized() * push_strength current_player.health_changed_func(-1) - rigid_body.set_sleeping(true) +# set_freeze_enabled(true) +# await get_tree().create_timer(0.5).timeout + set_sleeping(true) +# set_freeze_enabled(false) + diff --git a/PhysicsObjects/HandStatue/HandStatue.tscn b/PhysicsObjects/HandStatue/HandStatue.tscn index d5b6752..63a6db0 100644 --- a/PhysicsObjects/HandStatue/HandStatue.tscn +++ b/PhysicsObjects/HandStatue/HandStatue.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://ca4ghctk5gllj"] +[gd_scene load_steps=6 format=3 uid="uid://ca4ghctk5gllj"] [ext_resource type="Texture2D" uid="uid://cgtkkroa583fo" path="res://TileSets/Stuff.png" id="1_462gd"] [ext_resource type="Script" path="res://PhysicsObjects/HandStatue/HandStatue.gd" id="1_ap0lt"] @@ -12,12 +12,21 @@ bounce = 0.76 radius = 9.0 height = 34.0 +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_14ixl"] +properties/0/path = NodePath(".:position") +properties/0/spawn = false +properties/0/sync = false +properties/1/path = NodePath(".:linear_velocity") +properties/1/spawn = false +properties/1/sync = true + [node name="HandStatue" type="RigidBody2D" groups=["moveable"]] physics_material_override = SubResource("PhysicsMaterial_ho34d") +max_contacts_reported = 3 contact_monitor = true +can_sleep = false lock_rotation = true script = ExtResource("1_ap0lt") -initial_impulse = Vector2(200, 0) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, -4) @@ -29,4 +38,7 @@ texture = ExtResource("1_462gd") region_enabled = true region_rect = Rect2(48, 36, 16, 28) +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."] +replication_config = SubResource("SceneReplicationConfig_14ixl") + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/PhysicsObjects/HandStatue/MultiplayerSynchronizer.gd b/PhysicsObjects/HandStatue/MultiplayerSynchronizer.gd new file mode 100644 index 0000000..be3769c --- /dev/null +++ b/PhysicsObjects/HandStatue/MultiplayerSynchronizer.gd @@ -0,0 +1,18 @@ +extends MultiplayerSynchronizer + + +#func _enter_tree(): +# set_multiplayer_authority(1) +# +## Called when the node enters the scene tree for the first time. +#func _ready(): +# if not is_multiplayer_authority(): return +# +# +## Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# if not is_multiplayer_authority(): return +# +# +#func _physics_process(delta): +# if not is_multiplayer_authority(): return diff --git a/PickupableObjects/Bomb/bomb_anim.png b/PickupableObjects/Bomb/bomb_anim.png new file mode 100644 index 0000000..06b0ff0 Binary files /dev/null and b/PickupableObjects/Bomb/bomb_anim.png differ diff --git a/PickupableObjects/Bomb/bomb_anim.png.import b/PickupableObjects/Bomb/bomb_anim.png.import new file mode 100644 index 0000000..6415e12 --- /dev/null +++ b/PickupableObjects/Bomb/bomb_anim.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwqq3s0su5myy" +path="res://.godot/imported/bomb_anim.png-1c92dadf237f59ac8452a68f910adeb7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://PickupableObjects/Bomb/bomb_anim.png" +dest_files=["res://.godot/imported/bomb_anim.png-1c92dadf237f59ac8452a68f910adeb7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/PickupableObjects/Bomb/bomb_icon.png b/PickupableObjects/Bomb/bomb_icon.png new file mode 100644 index 0000000..3255a60 Binary files /dev/null and b/PickupableObjects/Bomb/bomb_icon.png differ diff --git a/PickupableObjects/Bomb/bomb_icon.png.import b/PickupableObjects/Bomb/bomb_icon.png.import new file mode 100644 index 0000000..6380092 --- /dev/null +++ b/PickupableObjects/Bomb/bomb_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmqfqmr16bdqk" +path="res://.godot/imported/bomb_icon.png-7e2eda12156138a4003e63cacc06b10a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://PickupableObjects/Bomb/bomb_icon.png" +dest_files=["res://.godot/imported/bomb_icon.png-7e2eda12156138a4003e63cacc06b10a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/TileSets/Stuff.png b/TileSets/Stuff.png index 5e262a1..612460d 100644 Binary files a/TileSets/Stuff.png and b/TileSets/Stuff.png differ diff --git a/TileSets/Stuff.png.import b/TileSets/Stuff.png.import index 9f01f3e..ce7a2ba 100644 --- a/TileSets/Stuff.png.import +++ b/TileSets/Stuff.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/Stuff.png-96e376a9d98d7c764e870eeeeddfebc9.ct [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false diff --git a/UI/MainMenu/MainMenu.tscn b/UI/MainMenu/MainMenu.tscn new file mode 100644 index 0000000..c916578 --- /dev/null +++ b/UI/MainMenu/MainMenu.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://bk6yvc16x1n2k"] + +[node name="MainMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 diff --git a/project.godot b/project.godot index 4402cc2..0a57a5e 100644 --- a/project.godot +++ b/project.godot @@ -17,10 +17,16 @@ config/icon="res://icon.svg" [display] +window/stretch/mode="viewport" window/stretch/scale=2.0 [input] +reset_pos={ +"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":4194439,"key_label":0,"unicode":49,"echo":false,"script":null) +] +} print_pos={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -61,6 +67,11 @@ show_inventory={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null) ] } +test_force={ +"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":4194441,"key_label":0,"unicode":51,"echo":false,"script":null) +] +} [physics] @@ -68,5 +79,4 @@ show_inventory={ [rendering] -renderer/rendering_method="gl_compatibility" textures/canvas_textures/default_texture_filter=0