diff --git a/scene/GameScene.tscn b/scene/GameScene.tscn index b8a5a71..5d372c3 100644 --- a/scene/GameScene.tscn +++ b/scene/GameScene.tscn @@ -1,13 +1,14 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://scene/EscapeMenu.tscn" type="PackedScene" id=1] [ext_resource path="res://src/Cursor.cs" type="Script" id=2] [ext_resource path="res://src/Game.cs" type="Script" id=3] [ext_resource path="res://gfx/cursor.png" type="Texture" id=4] -[ext_resource path="res://scene/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://scene/LocalPlayer.tscn" type="PackedScene" id=5] [ext_resource path="res://scene/Block.tscn" type="PackedScene" id=6] [ext_resource path="res://src/Viewport.cs" type="Script" id=7] [ext_resource path="res://src/Network.cs" type="Script" id=8] +[ext_resource path="res://scene/Player.tscn" type="PackedScene" id=9] [node name="Game" type="Node"] script = ExtResource( 3 ) @@ -19,6 +20,8 @@ script = ExtResource( 7 ) [node name="Network" type="Node" parent="."] script = ExtResource( 8 ) +PlayerContainerPath = NodePath("..") +OtherPlayer = ExtResource( 9 ) [node name="HUD" type="CanvasLayer" parent="."] diff --git a/scene/LocalPlayer.tscn b/scene/LocalPlayer.tscn new file mode 100644 index 0000000..6e45e2e --- /dev/null +++ b/scene/LocalPlayer.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://scene/Player.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/Player.cs" type="Script" id=3] + +[node name="Player" instance=ExtResource( 1 )] +script = ExtResource( 3 ) + +[node name="Camera2D" type="Camera2D" parent="." index="0"] +current = true diff --git a/scene/OtherPlayer.tscn b/scene/OtherPlayer.tscn deleted file mode 100644 index 4b28165..0000000 --- a/scene/OtherPlayer.tscn +++ /dev/null @@ -1,15 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://gfx/player.png" type="Texture" id=2] - -[sub_resource type="CircleShape2D" id=1] -radius = 8.0 - -[node name="OtherPlayer" type="KinematicBody2D"] -collision_layer = 0 - -[node name="CircleShape" type="CollisionShape2D" parent="."] -shape = SubResource( 1 ) - -[node name="Sprite" type="Sprite" parent="."] -texture = ExtResource( 2 ) diff --git a/scene/Player.tscn b/scene/Player.tscn index 7d0c128..911a079 100644 --- a/scene/Player.tscn +++ b/scene/Player.tscn @@ -1,19 +1,12 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=3 format=2] -[ext_resource path="res://src/Camera.cs" type="Script" id=1] [ext_resource path="res://gfx/player.png" type="Texture" id=2] -[ext_resource path="res://src/Player.cs" type="Script" id=3] [sub_resource type="CircleShape2D" id=1] radius = 8.0 [node name="Player" type="KinematicBody2D"] collision_layer = 0 -script = ExtResource( 3 ) - -[node name="Camera2D" type="Camera2D" parent="."] -current = true -script = ExtResource( 1 ) [node name="CircleShape" type="CollisionShape2D" parent="."] shape = SubResource( 1 ) diff --git a/src/Network.cs b/src/Network.cs index a00a342..6350fa7 100644 --- a/src/Network.cs +++ b/src/Network.cs @@ -16,17 +16,18 @@ public class Network : Node [Export] public ushort DefaultPort { get; set; } = 42005; [Export] public string DefaultAddress { get; set; } = "localhost"; + [Export] public NodePath PlayerContainerPath { get; set; } + [Export] public PackedScene OtherPlayer { get; set; } + public Node PlayerContainer { get; private set; } - public Player OwnPlayer { get; private set; } - public PackedScene OtherPlayer { get; private set; } + public Player OwnPlayer { get; private set; } public Status CurrentStatus { get; private set; } = Status.NoConnection; [Signal] public delegate void StatusChanged(Status status); public override void _Ready() { - OtherPlayer = GD.Load("res://scene/OtherPlayer.tscn"); - PlayerContainer = GetParent(); + PlayerContainer = GetNode(PlayerContainerPath); GetTree().Connect("connected_to_server", this, "OnClientConnected"); GetTree().Connect("connection_failed", this, "DisconnectFromServer");