extends GridContainer
-@onready var viewport1: SubViewport = $SubViewportContainer/SubViewport
-@onready var viewport2: SubViewport = $SubViewportContainer2/SubViewport2
+@onready var _viewport1: SubViewport = %SubViewport_Player1
+@onready var _viewport2: SubViewport = %SubViewport_Player2
+@onready var _viewport_map: SubViewport = %SubViewport_map
func set_splitscreen(players: Array[Player]) -> void:
- var viewports = [viewport1, viewport2]
+ var viewports = [_viewport1, _viewport2]
for player in players:
var camera_rid = player.get_camera_rid()
var viewport_rid = viewports.pop_front().get_viewport_rid()
RenderingServer.viewport_attach_camera(viewport_rid, camera_rid)
+
+
+func set_map(camera: Camera3D) -> void:
+ var camera_rid = camera.get_camera_rid()
+ var viewport_rid = _viewport_map.get_viewport_rid()
+ RenderingServer.viewport_attach_camera(viewport_rid, camera_rid)
-[gd_scene load_steps=10 format=3 uid="uid://6tmryoxhs3yq"]
+[gd_scene load_steps=11 format=3 uid="uid://6tmryoxhs3yq"]
[ext_resource type="PackedScene" uid="uid://dysxftv7xniv0" path="res://player/player.tscn" id="1_3tqxd"]
[ext_resource type="Script" path="res://map/world.gd" id="1_mjcfj"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qttgn"]
data = PackedVector3Array(5, 0, 25, -5, 0, 25, 5, 0, -25, -5, 0, 25, -5, 0, -25, 5, 0, -25)
+[sub_resource type="Environment" id="Environment_h5n2a"]
+
[node name="World" type="Node3D"]
script = ExtResource("1_mjcfj")
color = Color(1, 0, 0, 1)
distance = 5.0
+[node name="topdown_camera" type="Camera3D" parent="."]
+transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 32.95, 0)
+environment = SubResource("Environment_h5n2a")
+projection = 1
+size = 50.0
+
[node name="SplitScreenContainer" type="GridContainer" parent="."]
custom_minimum_size = Vector2(3456, 1944)
anchors_preset = 15
grow_vertical = 2
script = ExtResource("4_nc5g8")
-[node name="SubViewportContainer" type="SubViewportContainer" parent="SplitScreenContainer"]
+[node name="HSplitContainer" type="HSplitContainer" parent="SplitScreenContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+size_flags_vertical = 3
+
+[node name="SubViewportContainer" type="SubViewportContainer" parent="SplitScreenContainer/HSplitContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+stretch = true
+
+[node name="SubViewport_map" type="SubViewport" parent="SplitScreenContainer/HSplitContainer/SubViewportContainer"]
+unique_name_in_owner = true
+handle_input_locally = false
+size = Vector2i(1722, 1944)
+render_target_update_mode = 4
+
+[node name="VSplitContainer" type="VSplitContainer" parent="SplitScreenContainer/HSplitContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="SubViewportContainer" type="SubViewportContainer" parent="SplitScreenContainer/HSplitContainer/VSplitContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
stretch = true
-[node name="SubViewport" type="SubViewport" parent="SplitScreenContainer/SubViewportContainer"]
+[node name="SubViewport_Player1" type="SubViewport" parent="SplitScreenContainer/HSplitContainer/VSplitContainer/SubViewportContainer"]
+unique_name_in_owner = true
handle_input_locally = false
-size = Vector2i(2, 2)
+size = Vector2i(1722, 966)
render_target_update_mode = 4
-[node name="SubViewportContainer2" type="SubViewportContainer" parent="SplitScreenContainer"]
+[node name="SubViewportContainer2" type="SubViewportContainer" parent="SplitScreenContainer/HSplitContainer/VSplitContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
stretch = true
-[node name="SubViewport2" type="SubViewport" parent="SplitScreenContainer/SubViewportContainer2"]
+[node name="SubViewport_Player2" type="SubViewport" parent="SplitScreenContainer/HSplitContainer/VSplitContainer/SubViewportContainer2"]
+unique_name_in_owner = true
handle_input_locally = false
-size = Vector2i(2, 2)
+size = Vector2i(1722, 966)
render_target_update_mode = 4
[connection signal="playerDestroyed" from="Player1" to="." method="_on_player_destroyed"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sk1tc"]
albedo_color = Color(0.716296, 0.716296, 0.716296, 1)
albedo_texture = ExtResource("2_uvwff")
+emission_enabled = true
emission = Color(0.726732, 0.726732, 0.726732, 1)
+emission_energy_multiplier = 0.25
uv1_triplanar = true
uv1_world_triplanar = true
[sub_resource type="BoxMesh" id="BoxMesh_p4d0s"]
material = SubResource("StandardMaterial3D_sk1tc")
-size = Vector3(1, 0.02, 1)
+size = Vector3(1, 0.04, 1)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_aaxpr"]
points = PackedVector3Array(0.508, 0.014, 0.5, -0.508, -0.018, -0.5, -0.508, 0.014, -0.5, 0.508, -0.018, -0.5, -0.508, -0.018, 0.5, -0.508, 0.014, 0.5, 0.508, 0.014, -0.5, 0.508, -0.018, 0.5)