diff --git a/.gitignore b/.gitignore index e12574b..0a6c96f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ *.pck *.x86_64 *.log -/Godot-Multiplayer-Shooter /.import +/test \ No newline at end of file diff --git a/Game_4/.import/floor.svg-297905206d682966af5dba035b7d5368.md5 b/Game_4/.import/floor.svg-297905206d682966af5dba035b7d5368.md5 deleted file mode 100644 index c543f2c..0000000 --- a/Game_4/.import/floor.svg-297905206d682966af5dba035b7d5368.md5 +++ /dev/null @@ -1,3 +0,0 @@ -source_md5="9c64c312fe0c5859c87280aebe19b452" -dest_md5="7e50e59190bf14295c7cbedc26ee3b24" - diff --git a/Game_4/.import/floor.svg-297905206d682966af5dba035b7d5368.stex b/Game_4/.import/floor.svg-297905206d682966af5dba035b7d5368.stex deleted file mode 100644 index bc3dc9a..0000000 Binary files a/Game_4/.import/floor.svg-297905206d682966af5dba035b7d5368.stex and /dev/null differ diff --git a/Game_4/code/game.gd b/Game_4/code/game.gd deleted file mode 100644 index 8264d8d..0000000 --- a/Game_4/code/game.gd +++ /dev/null @@ -1,10 +0,0 @@ -extends Node2D - -func _ready() -> void: - get_tree().connect("network_peer_disconnected", self, "_player_disconnected") - - -func _player_disconnected(id) -> void: - if Players.has_node(str(id)): - Players.get_node(str(id)).username_text_instance.queue_free() - Players.get_node(str(id)).queue_free() diff --git a/Game_4/scenes/game.tscn b/Game_4/scenes/game.tscn deleted file mode 100644 index efe7e23..0000000 --- a/Game_4/scenes/game.tscn +++ /dev/null @@ -1,11 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://scenes/floor.tscn" type="PackedScene" id=1] -[ext_resource path="res://code/game.gd" type="Script" id=2] - -[node name="game" type="Node2D"] -script = ExtResource( 2 ) - -[node name="floor" parent="." instance=ExtResource( 1 )] -position = Vector2( 960, 1056 ) -scale = Vector2( 2, 1 ) diff --git a/Game_4/.import/floor.png-8870646e23ec8c3ad77089faabc9e773.md5 b/kristofers/game/.import/floor.png-8870646e23ec8c3ad77089faabc9e773.md5 similarity index 100% rename from Game_4/.import/floor.png-8870646e23ec8c3ad77089faabc9e773.md5 rename to kristofers/game/.import/floor.png-8870646e23ec8c3ad77089faabc9e773.md5 diff --git a/kristofers/game/.import/floor.svg-297905206d682966af5dba035b7d5368.md5 b/kristofers/game/.import/floor.svg-297905206d682966af5dba035b7d5368.md5 new file mode 100644 index 0000000..61691d3 --- /dev/null +++ b/kristofers/game/.import/floor.svg-297905206d682966af5dba035b7d5368.md5 @@ -0,0 +1,3 @@ +source_md5="ea99925cae38c148dc6a1c29df4fb92e" +dest_md5="f73af61b19494ec5bf488ba2a748b42b" + diff --git a/kristofers/game/.import/floor.svg-297905206d682966af5dba035b7d5368.stex b/kristofers/game/.import/floor.svg-297905206d682966af5dba035b7d5368.stex new file mode 100644 index 0000000..f9dd86d Binary files /dev/null and b/kristofers/game/.import/floor.svg-297905206d682966af5dba035b7d5368.stex differ diff --git a/Game_1/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/kristofers/game/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 similarity index 100% rename from Game_1/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 rename to kristofers/game/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 diff --git a/Game_1/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/kristofers/game/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex similarity index 100% rename from Game_1/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex rename to kristofers/game/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex diff --git a/Game_4/.import/sphere.png-b735a7d58a47546099ef1144a282cd43.md5 b/kristofers/game/.import/sphere.png-b735a7d58a47546099ef1144a282cd43.md5 similarity index 100% rename from Game_4/.import/sphere.png-b735a7d58a47546099ef1144a282cd43.md5 rename to kristofers/game/.import/sphere.png-b735a7d58a47546099ef1144a282cd43.md5 diff --git a/Game_4/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.md5 b/kristofers/game/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.md5 similarity index 100% rename from Game_4/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.md5 rename to kristofers/game/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.md5 diff --git a/Game_4/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.stex b/kristofers/game/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.stex similarity index 100% rename from Game_4/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.stex rename to kristofers/game/.import/square.svg-eb5ce7ff66dca983c1acbf7134c96e32.stex diff --git a/kristofers/game/code/UI.gd b/kristofers/game/code/UI.gd new file mode 100644 index 0000000..69c8493 --- /dev/null +++ b/kristofers/game/code/UI.gd @@ -0,0 +1,9 @@ +extends CanvasLayer + + +func _ready() -> void: + Global.ui = self + + +func _exit_tree() -> void: + Global.ui = null diff --git a/kristofers/game/code/game.gd b/kristofers/game/code/game.gd new file mode 100644 index 0000000..4783d8c --- /dev/null +++ b/kristofers/game/code/game.gd @@ -0,0 +1,27 @@ +extends Node2D + +var current_spawn_location_instance_number = 1 +var current_player_location_instance_number = null + + +func _ready() -> void: + get_tree().connect("network_peer_disconnected", self, "_player_disconnected") + + if get_tree().is_network_server(): + setup_player_positions() + + +func setup_player_positions() -> void: + for player in Players.get_children(): + if player.is_in_group("player"): + for spawn_location in $spawn_locations.get_children(): + if int(spawn_location.name) == current_spawn_location_instance_number and current_player_location_instance_number != player: + player.rpc("update_position", spawn_location.global_position) + current_spawn_location_instance_number += 1 + current_player_location_instance_number = player + + +func _player_disconnected(id) -> void: + if Players.has_node(str(id)): + Players.get_node(str(id)).username_text_instance.queue_free() + Players.get_node(str(id)).queue_free() diff --git a/Game_4/code/global.gd b/kristofers/game/code/global.gd similarity index 96% rename from Game_4/code/global.gd rename to kristofers/game/code/global.gd index 52f2229..127368e 100644 --- a/Game_4/code/global.gd +++ b/kristofers/game/code/global.gd @@ -1,5 +1,7 @@ extends Node +var ui = null + func instance_node_at_location(node: Object, parent: Object, location: Vector2) -> Object: var node_instance = instance_node(node, parent) node_instance.global_position = location diff --git a/Game_4/code/network.gd b/kristofers/game/code/network.gd similarity index 75% rename from Game_4/code/network.gd rename to kristofers/game/code/network.gd index d96e2a1..283a1ba 100644 --- a/Game_4/code/network.gd +++ b/kristofers/game/code/network.gd @@ -39,9 +39,24 @@ func join_server() -> void: get_tree().set_network_peer(client) +func reset_network_connections(): + if get_tree().has_network_peer(): + get_tree().network_peer = null + + func _connected_to_server() -> void: print("Successfully connected to the server") func _server_disconnected() -> void: print("Disconnected from the server") + + for child in Players.get_children(): + if child.is_in_group("Net"): + child.queue_free() + + reset_network_connections() + + if Global.ui != null: + var prompt = Global.instance_node(load("res://scenes/simple_prompt.tscn"), Global.ui) + prompt.set_text("Disconnected from server") diff --git a/Game_4/code/network_setup.gd b/kristofers/game/code/network_setup.gd similarity index 94% rename from Game_4/code/network_setup.gd rename to kristofers/game/code/network_setup.gd index f5361ce..8be66d2 100644 --- a/Game_4/code/network_setup.gd +++ b/kristofers/game/code/network_setup.gd @@ -4,8 +4,8 @@ var player = load("res://scenes/player.tscn") onready var multiplayer_config_ui = $multiplayer_configure onready var username_text_edit = $multiplayer_configure/username_text_edit -onready var device_ip_address = $CanvasLayer/device_ip_address -onready var start_game = $CanvasLayer/start_game +onready var device_ip_address = $UI/device_ip_address +onready var start_game = $UI/start_game func _ready(): diff --git a/Game_4/code/player.gd b/kristofers/game/code/player.gd similarity index 100% rename from Game_4/code/player.gd rename to kristofers/game/code/player.gd diff --git a/Game_4/code/server_advertiser.gd b/kristofers/game/code/server_advertiser.gd similarity index 100% rename from Game_4/code/server_advertiser.gd rename to kristofers/game/code/server_advertiser.gd diff --git a/Game_4/code/server_browser.gd b/kristofers/game/code/server_browser.gd similarity index 100% rename from Game_4/code/server_browser.gd rename to kristofers/game/code/server_browser.gd diff --git a/Game_4/code/server_display.gd b/kristofers/game/code/server_display.gd similarity index 100% rename from Game_4/code/server_display.gd rename to kristofers/game/code/server_display.gd diff --git a/Game_4/code/server_listener.gd b/kristofers/game/code/server_listener.gd similarity index 100% rename from Game_4/code/server_listener.gd rename to kristofers/game/code/server_listener.gd diff --git a/kristofers/game/code/simple_prompt.gd b/kristofers/game/code/simple_prompt.gd new file mode 100644 index 0000000..b1e9d1b --- /dev/null +++ b/kristofers/game/code/simple_prompt.gd @@ -0,0 +1,10 @@ +extends Control + + +func _on_ok_pressed(): + get_tree().change_scene("res://scenes/main_menu.tscn") + + + +func set_text(text) -> void: + $Label.text = text diff --git a/Game_4/code/username_text.gd b/kristofers/game/code/username_text.gd similarity index 100% rename from Game_4/code/username_text.gd rename to kristofers/game/code/username_text.gd diff --git a/Game_1/default_env.tres b/kristofers/game/default_env.tres similarity index 100% rename from Game_1/default_env.tres rename to kristofers/game/default_env.tres diff --git a/Game_4/export_presets.cfg b/kristofers/game/export_presets.cfg similarity index 100% rename from Game_4/export_presets.cfg rename to kristofers/game/export_presets.cfg diff --git a/Game_3/Roboto-Regular.ttf b/kristofers/game/font/Roboto-Regular.ttf similarity index 100% rename from Game_3/Roboto-Regular.ttf rename to kristofers/game/font/Roboto-Regular.ttf diff --git a/Game_4/font/roboto.tres b/kristofers/game/font/roboto.tres similarity index 100% rename from Game_4/font/roboto.tres rename to kristofers/game/font/roboto.tres diff --git a/Game_1/icon.png b/kristofers/game/icon.png similarity index 100% rename from Game_1/icon.png rename to kristofers/game/icon.png diff --git a/Game_1/icon.png.import b/kristofers/game/icon.png.import similarity index 100% rename from Game_1/icon.png.import rename to kristofers/game/icon.png.import diff --git a/Game_4/project.godot b/kristofers/game/project.godot similarity index 99% rename from Game_4/project.godot rename to kristofers/game/project.godot index cd1bf4f..88876aa 100644 --- a/Game_4/project.godot +++ b/kristofers/game/project.godot @@ -10,7 +10,7 @@ config_version=4 [application] -config/name="Game #4" +config/name="Game_4" run/main_scene="res://scenes/main_menu.tscn" config/icon="res://icon.png" diff --git a/Game_4/scenes/floor.tscn b/kristofers/game/scenes/floor.tscn similarity index 100% rename from Game_4/scenes/floor.tscn rename to kristofers/game/scenes/floor.tscn diff --git a/kristofers/game/scenes/game.tscn b/kristofers/game/scenes/game.tscn new file mode 100644 index 0000000..bc23185 --- /dev/null +++ b/kristofers/game/scenes/game.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://scenes/floor.tscn" type="PackedScene" id=1] +[ext_resource path="res://code/game.gd" type="Script" id=2] + +[node name="game" type="Node2D"] +script = ExtResource( 2 ) + +[node name="floor" parent="." instance=ExtResource( 1 )] +position = Vector2( 960, 1056 ) +scale = Vector2( 2, 1 ) + +[node name="spawn_locations" type="Node" parent="."] + +[node name="1" type="Position2D" parent="spawn_locations"] +position = Vector2( 512, 810 ) + +[node name="2" type="Position2D" parent="spawn_locations"] +position = Vector2( 1408, 810 ) + +[node name="3" type="Position2D" parent="spawn_locations"] +position = Vector2( 512, 270 ) + +[node name="4" type="Position2D" parent="spawn_locations"] +position = Vector2( 1408, 270 ) diff --git a/Game_4/scenes/main_menu.tscn b/kristofers/game/scenes/main_menu.tscn similarity index 84% rename from Game_4/scenes/main_menu.tscn rename to kristofers/game/scenes/main_menu.tscn index 939bad0..06e6ab9 100644 --- a/Game_4/scenes/main_menu.tscn +++ b/kristofers/game/scenes/main_menu.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=4 format=2] [ext_resource path="res://font/roboto.tres" type="DynamicFont" id=1] [ext_resource path="res://code/network_setup.gd" type="Script" id=2] +[ext_resource path="res://code/UI.gd" type="Script" id=3] [node name="network_setup" type="Control"] anchor_right = 1.0 @@ -62,9 +63,10 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="CanvasLayer" type="CanvasLayer" parent="."] +[node name="UI" type="CanvasLayer" parent="."] +script = ExtResource( 3 ) -[node name="start_game" type="Button" parent="CanvasLayer"] +[node name="start_game" type="Button" parent="UI"] margin_left = 27.0 margin_top = 27.0 margin_right = 391.0 @@ -75,7 +77,7 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="device_ip_address" type="Label" parent="CanvasLayer"] +[node name="device_ip_address" type="Label" parent="UI"] anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 @@ -89,4 +91,4 @@ __meta__ = { [connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"] [connection signal="pressed" from="multiplayer_configure/join_server" to="." method="_on_join_server_pressed"] -[connection signal="pressed" from="CanvasLayer/start_game" to="." method="_on_start_game_pressed"] +[connection signal="pressed" from="UI/start_game" to="." method="_on_start_game_pressed"] diff --git a/Game_4/scenes/player.tscn b/kristofers/game/scenes/player.tscn similarity index 100% rename from Game_4/scenes/player.tscn rename to kristofers/game/scenes/player.tscn diff --git a/Game_4/scenes/players.tscn b/kristofers/game/scenes/players.tscn similarity index 100% rename from Game_4/scenes/players.tscn rename to kristofers/game/scenes/players.tscn diff --git a/Game_4/scenes/server_advertiser.tscn b/kristofers/game/scenes/server_advertiser.tscn similarity index 100% rename from Game_4/scenes/server_advertiser.tscn rename to kristofers/game/scenes/server_advertiser.tscn diff --git a/Game_4/scenes/server_browser.tscn b/kristofers/game/scenes/server_browser.tscn similarity index 100% rename from Game_4/scenes/server_browser.tscn rename to kristofers/game/scenes/server_browser.tscn diff --git a/Game_4/scenes/server_display.tscn b/kristofers/game/scenes/server_display.tscn similarity index 100% rename from Game_4/scenes/server_display.tscn rename to kristofers/game/scenes/server_display.tscn diff --git a/Game_4/scenes/server_listener.tscn b/kristofers/game/scenes/server_listener.tscn similarity index 100% rename from Game_4/scenes/server_listener.tscn rename to kristofers/game/scenes/server_listener.tscn diff --git a/kristofers/game/scenes/simple_prompt.tscn b/kristofers/game/scenes/simple_prompt.tscn new file mode 100644 index 0000000..9500bad --- /dev/null +++ b/kristofers/game/scenes/simple_prompt.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://font/Roboto-Regular.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://code/simple_prompt.gd" type="Script" id=2] + +[sub_resource type="DynamicFont" id=1] +size = 100 +use_mipmaps = true +use_filter = true +font_data = ExtResource( 1 ) + +[sub_resource type="DynamicFont" id=2] +size = 100 +use_mipmaps = true +use_filter = true +font_data = ExtResource( 1 ) + +[node name="simple_prompt" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Panel" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -704.0 +margin_top = -330.0 +margin_right = 704.0 +margin_bottom = 330.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ok" type="Button" parent="Panel"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = -257.0 +margin_top = -310.0 +margin_right = 257.0 +margin_bottom = -113.0 +custom_fonts/font = SubResource( 1 ) +text = "OK" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -516.0 +margin_top = -155.5 +margin_right = 516.0 +margin_bottom = -68.5 +custom_fonts/font = SubResource( 2 ) +text = "Simple prompt" +align = 1 +valign = 1 + +[connection signal="pressed" from="Panel/ok" to="." method="_on_ok_pressed"] diff --git a/Game_4/scenes/username_text.tscn b/kristofers/game/scenes/username_text.tscn similarity index 100% rename from Game_4/scenes/username_text.tscn rename to kristofers/game/scenes/username_text.tscn diff --git a/Game_4/sprites/floor.svg b/kristofers/game/sprites/floor.svg similarity index 89% rename from Game_4/sprites/floor.svg rename to kristofers/game/sprites/floor.svg index 37a5ab5..4d53002 100644 --- a/Game_4/sprites/floor.svg +++ b/kristofers/game/sprites/floor.svg @@ -25,9 +25,9 @@ showgrid="false" width="7256.6929px" units="px" - inkscape:zoom="1.1224747" - inkscape:cx="959.93251" - inkscape:cy="109.5793" + inkscape:zoom="0.14030934" + inkscape:cx="416.9359" + inkscape:cy="1297.1339" inkscape:window-width="1920" inkscape:window-height="1006" inkscape:window-x="1920" @@ -41,7 +41,7 @@ inkscape:groupmode="layer" id="layer1">