From a4e612c1d37e9f4c650c66704509614d0fc3e2c8 Mon Sep 17 00:00:00 2001 From: Voyager Date: Mon, 27 Jul 2026 03:30:58 -0400 Subject: [PATCH] Remove obsolete graybox worlds --- world/README-WORLD-GRAYBOX.md | 73 ---------- world/regions/coastal_dock_region.tscn | 140 ------------------- world/regions/graybox_region.gd | 43 ------ world/regions/graybox_region.gd.uid | 1 - world/regions/lake_region.tscn | 141 ------------------- world/regions/marsh_region.tscn | 164 ---------------------- world/regions/river_region.tscn | 143 -------------------- world/regions/starter_pond_region.tscn | 114 ---------------- world/regions/village_region.tscn | 179 ------------------------- 9 files changed, 998 deletions(-) delete mode 100644 world/README-WORLD-GRAYBOX.md delete mode 100644 world/regions/coastal_dock_region.tscn delete mode 100644 world/regions/graybox_region.gd delete mode 100644 world/regions/graybox_region.gd.uid delete mode 100644 world/regions/lake_region.tscn delete mode 100644 world/regions/marsh_region.tscn delete mode 100644 world/regions/river_region.tscn delete mode 100644 world/regions/starter_pond_region.tscn delete mode 100644 world/regions/village_region.tscn diff --git a/world/README-WORLD-GRAYBOX.md b/world/README-WORLD-GRAYBOX.md deleted file mode 100644 index 3cee61e..0000000 --- a/world/README-WORLD-GRAYBOX.md +++ /dev/null @@ -1,73 +0,0 @@ -# NETFISHING test world - -`world/test_world.tscn` remains the active world composition. It currently -instances `world/regions/starter_island_region.tscn`, a Godot-owned gameplay -wrapper around the human-authored starter-island GLB. - -## Starter-island ownership - -```text -TestWorld -├── Environment -├── Regions -│ └── StarterIslandRegion -│ ├── Visuals -│ │ ├── StarterIslandModel -│ │ ├── OceanWater -│ │ └── PondWater -│ ├── StaticCollision -│ ├── FishingWater -│ ├── WaterRecovery -│ ├── SafeRespawns -│ ├── PlayerSpawn -│ └── Interactables -├── Safety -└── WorldBounds -``` - -The imported GLB is visual source content and remains at identity scale. The -wrapper creates concave static collision from its explicit mesh reference and -owns all water, fishing, recovery, spawn, and service placement. - -Move the complete `StarterIslandRegion` root to keep visuals and gameplay -volumes synchronized. When editing inside the wrapper, keep each water mesh -aligned with its matching `FishingWater` and `WaterRecovery` shapes. Safe -respawns and `PlayerSpawn` must remain on broad upper terrain. - -Rename-sensitive paths: - -- `TestWorld/Regions` -- `TestWorld/Regions/StarterIslandRegion` -- the NodePaths exported by `StarterIslandRegion` -- each region's `FishingWater`, `WaterRecovery`, and `SafeRespawns` roots - -## Reverting to the modular graybox - -The previous region scenes remain unchanged under `world/regions/`. To restore -the prior holdover world, restore `world/test_world.tscn` and -`world/test_world.gd` from commit `633bbd9`, then remove the player-spawn -composition line added to `main/main.gd`. That composition instances: - -- `village_region.tscn` -- `starter_pond_region.tscn` -- `river_region.tscn` -- `lake_region.tscn` -- `marsh_region.tscn` -- `coastal_dock_region.tscn` - -No region asset needs to be reconstructed or recovered from deleted content. - -## Water and recovery - -The pond and surrounding ocean remain separate fishable regions using the -existing test pool. Ocean fishing and recovery use four collision shapes so -the raised island interior is not classified as ocean. Regional recovery is -supplemented by `TestWorld/Safety/BelowWorldFailsafe`. - -The pond surface is at `y=2.10`. The ocean is at `y=-0.45`, between the -authored upper beach and submerged shelf rings. Fishable regions explicitly -provide their surface heights to the shared fishing presentation. - -The Fishing Shop remains a complete instanced interactable. The Pelican perch -remains convenience signage only; Pelican selling is available through the -Cooler from anywhere. diff --git a/world/regions/coastal_dock_region.tscn b/world/regions/coastal_dock_region.tscn deleted file mode 100644 index 475d91d..0000000 --- a/world/regions/coastal_dock_region.tscn +++ /dev/null @@ -1,140 +0,0 @@ -[gd_scene load_steps=21 format=3] - -[ext_resource type="Script" path="res://world/regions/graybox_region.gd" id="1_region"] -[ext_resource type="Script" path="res://world/fishable_water_region.gd" id="2_water"] -[ext_resource type="Resource" path="res://fish/pools/test_water_pool.tres" id="3_pool"] -[ext_resource type="Script" path="res://world/player_water_trigger.gd" id="4_trigger"] -[ext_resource type="Script" path="res://world/safe_respawn_point.gd" id="5_safe"] - -[sub_resource type="BoxShape3D" id="ShoreShape"] -size = Vector3(90, 6, 18) -[sub_resource type="BoxMesh" id="ShoreMesh"] -size = Vector3(90, 6, 18) -[sub_resource type="BoxShape3D" id="DockShape"] -size = Vector3(7, 0.4, 25) -[sub_resource type="BoxMesh" id="DockMesh"] -size = Vector3(7, 0.4, 25) -[sub_resource type="BoxShape3D" id="DockRampShape"] -size = Vector3(7, 0.35, 4) -[sub_resource type="BoxMesh" id="DockRampMesh"] -size = Vector3(7, 0.35, 4) -[sub_resource type="CylinderMesh" id="TowerMesh"] -top_radius = 2.4 -bottom_radius = 3.4 -height = 13 -[sub_resource type="CylinderMesh" id="BeaconMesh"] -top_radius = 1.4 -bottom_radius = 1.4 -height = 2.5 -[sub_resource type="BoxMesh" id="CraneArmMesh"] -size = Vector3(1, 1, 10) -[sub_resource type="PlaneMesh" id="WaterMesh"] -size = Vector2(90, 54) -[sub_resource type="BoxShape3D" id="WaterShape"] -size = Vector3(90, 0.2, 54) -[sub_resource type="BoxShape3D" id="RecoveryShape"] -size = Vector3(90, 5, 54) -[sub_resource type="StandardMaterial3D" id="ShoreMaterial"] -albedo_color = Color(0.7, 0.66, 0.5, 1) -[sub_resource type="StandardMaterial3D" id="DockMaterial"] -albedo_color = Color(0.58, 0.4, 0.2, 1) -[sub_resource type="StandardMaterial3D" id="TowerMaterial"] -albedo_color = Color(0.92, 0.9, 0.76, 1) -[sub_resource type="StandardMaterial3D" id="BeaconMaterial"] -albedo_color = Color(0.95, 0.28, 0.22, 1) -[sub_resource type="StandardMaterial3D" id="WaterMaterial"] -transparency = 1 -albedo_color = Color(0.04, 0.3, 0.62, 0.84) - -[node name="CoastalDockRegion" type="Node3D"] -script = ExtResource("1_region") -region_id = &"coast" -[node name="Visuals" type="Node3D" parent="."] -[node name="Shore" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, 22) -mesh = SubResource("ShoreMesh") -material_override = SubResource("ShoreMaterial") -[node name="Ocean" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.2, -14) -mesh = SubResource("WaterMesh") -material_override = SubResource("WaterMaterial") -[node name="MainDock" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.45, -3.5) -mesh = SubResource("DockMesh") -material_override = SubResource("DockMaterial") -[node name="DockApproachRamp" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.155, 11) -rotation_degrees = Vector3(9, 0, 0) -mesh = SubResource("DockRampMesh") -material_override = SubResource("DockMaterial") -[node name="Lighthouse" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-32, 6.5, 20) -mesh = SubResource("TowerMesh") -material_override = SubResource("TowerMaterial") -[node name="Beacon" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-32, 14, 20) -mesh = SubResource("BeaconMesh") -material_override = SubResource("BeaconMaterial") -[node name="CraneArm" type="MeshInstance3D" parent="Visuals"] -position = Vector3(17, 5, 19) -rotation_degrees = Vector3(0, 0, 60) -mesh = SubResource("CraneArmMesh") -material_override = SubResource("BeaconMaterial") -[node name="CoastLabel" type="Label3D" parent="Visuals"] -position = Vector3(25, 3.2, 23) -text = "coast" -font_size = 38 -outline_size = 8 -billboard = 1 -no_depth_test = true - -[node name="StaticCollision" type="Node3D" parent="."] -[node name="Shore" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/Shore"] -position = Vector3(0, -3, 22) -shape = SubResource("ShoreShape") -[node name="MainDock" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/MainDock"] -position = Vector3(0, 0.45, -3.5) -shape = SubResource("DockShape") -[node name="DockApproachRamp" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/DockApproachRamp"] -position = Vector3(0, 0.155, 11) -rotation_degrees = Vector3(9, 0, 0) -shape = SubResource("DockRampShape") - -[node name="FishingWater" type="Node3D" parent="."] -[node name="CoastalWater" type="Area3D" parent="FishingWater"] -position = Vector3(0, 0.2, -14) -collision_layer = 4 -collision_mask = 0 -monitoring = false -script = ExtResource("2_water") -location_tags = Array[StringName]([&"coast"]) -fish_pool = ExtResource("3_pool") -[node name="Shape" type="CollisionShape3D" parent="FishingWater/CoastalWater"] -shape = SubResource("WaterShape") - -[node name="WaterRecovery" type="Node3D" parent="."] -[node name="CoastalRecovery" type="Area3D" parent="WaterRecovery"] -position = Vector3(0, -2.3, -14) -collision_layer = 8 -collision_mask = 2 -script = ExtResource("4_trigger") -surface_height = 0.2 -[node name="Shape" type="CollisionShape3D" parent="WaterRecovery/CoastalRecovery"] -shape = SubResource("RecoveryShape") - -[node name="SafeRespawns" type="Node3D" parent="."] -[node name="DockApproach" type="Marker3D" parent="SafeRespawns"] -position = Vector3(8, 0.58, 23) -rotation_degrees = Vector3(0, 180, 0) -script = ExtResource("5_safe") -[node name="DockMidpoint" type="Marker3D" parent="SafeRespawns"] -position = Vector3(0, 1.23, 0) -rotation_degrees = Vector3(0, 180, 0) -script = ExtResource("5_safe") -[node name="LighthouseShore" type="Marker3D" parent="SafeRespawns"] -position = Vector3(-24, 0.58, 24) -rotation_degrees = Vector3(0, -135, 0) -script = ExtResource("5_safe") diff --git a/world/regions/graybox_region.gd b/world/regions/graybox_region.gd deleted file mode 100644 index 3edff84..0000000 --- a/world/regions/graybox_region.gd +++ /dev/null @@ -1,43 +0,0 @@ -class_name GrayboxRegion -extends Node3D - -@export var region_id: StringName -@export var fishable_water_root: NodePath = ^"FishingWater" -@export var water_recovery_root: NodePath = ^"WaterRecovery" -@export var safe_respawns_root: NodePath = ^"SafeRespawns" - - -func get_fishable_water_regions() -> Array[FishableWaterRegion]: - var regions: Array[FishableWaterRegion] = [] - var root: Node = get_node_or_null(fishable_water_root) - if root == null: - return regions - for child: Node in root.get_children(): - var water: FishableWaterRegion = child as FishableWaterRegion - if water != null: - regions.append(water) - return regions - - -func get_water_recovery_triggers() -> Array[PlayerWaterTrigger]: - var triggers: Array[PlayerWaterTrigger] = [] - var root: Node = get_node_or_null(water_recovery_root) - if root == null: - return triggers - for child: Node in root.get_children(): - var trigger: PlayerWaterTrigger = child as PlayerWaterTrigger - if trigger != null: - triggers.append(trigger) - return triggers - - -func get_safe_respawn_points() -> Array[SafeRespawnPoint]: - var points: Array[SafeRespawnPoint] = [] - var root: Node = get_node_or_null(safe_respawns_root) - if root == null: - return points - for child: Node in root.get_children(): - var point: SafeRespawnPoint = child as SafeRespawnPoint - if point != null: - points.append(point) - return points diff --git a/world/regions/graybox_region.gd.uid b/world/regions/graybox_region.gd.uid deleted file mode 100644 index c0b07d7..0000000 --- a/world/regions/graybox_region.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bb1j0uhvrbf5n diff --git a/world/regions/lake_region.tscn b/world/regions/lake_region.tscn deleted file mode 100644 index 7e9259b..0000000 --- a/world/regions/lake_region.tscn +++ /dev/null @@ -1,141 +0,0 @@ -[gd_scene load_steps=17 format=3] - -[ext_resource type="Script" path="res://world/regions/graybox_region.gd" id="1_region"] -[ext_resource type="Script" path="res://world/fishable_water_region.gd" id="2_water"] -[ext_resource type="Resource" path="res://fish/pools/test_water_pool.tres" id="3_pool"] -[ext_resource type="Script" path="res://world/player_water_trigger.gd" id="4_trigger"] -[ext_resource type="Script" path="res://world/safe_respawn_point.gd" id="5_safe"] - -[sub_resource type="BoxShape3D" id="BankNSShape"] -size = Vector3(58, 6, 10) -[sub_resource type="BoxShape3D" id="BankEWShape"] -size = Vector3(8, 6, 36) -[sub_resource type="BoxMesh" id="BankNSMesh"] -size = Vector3(58, 6, 10) -[sub_resource type="BoxMesh" id="BankEWMesh"] -size = Vector3(8, 6, 36) -[sub_resource type="BoxShape3D" id="DockShape"] -size = Vector3(10, 0.4, 7) -[sub_resource type="BoxMesh" id="DockMesh"] -size = Vector3(10, 0.4, 7) -[sub_resource type="BoxShape3D" id="DockRampShape"] -size = Vector3(4, 0.35, 7) -[sub_resource type="BoxMesh" id="DockRampMesh"] -size = Vector3(4, 0.35, 7) -[sub_resource type="PlaneMesh" id="WaterMesh"] -size = Vector2(42, 36) -[sub_resource type="BoxShape3D" id="WaterShape"] -size = Vector3(42, 0.2, 36) -[sub_resource type="BoxShape3D" id="RecoveryShape"] -size = Vector3(42, 5, 36) -[sub_resource type="StandardMaterial3D" id="GrassMaterial"] -albedo_color = Color(0.34, 0.65, 0.3, 1) -[sub_resource type="StandardMaterial3D" id="DockMaterial"] -albedo_color = Color(0.55, 0.34, 0.16, 1) -[sub_resource type="StandardMaterial3D" id="WaterMaterial"] -transparency = 1 -albedo_color = Color(0.08, 0.43, 0.75, 0.82) - -[node name="LakeRegion" type="Node3D"] -script = ExtResource("1_region") -region_id = &"lake" -[node name="Visuals" type="Node3D" parent="."] -[node name="NorthBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, 23) -mesh = SubResource("BankNSMesh") -material_override = SubResource("GrassMaterial") -[node name="SouthBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, -23) -mesh = SubResource("BankNSMesh") -material_override = SubResource("GrassMaterial") -[node name="WestBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-25, -3, 0) -mesh = SubResource("BankEWMesh") -material_override = SubResource("GrassMaterial") -[node name="EastBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(25, -3, 0) -mesh = SubResource("BankEWMesh") -material_override = SubResource("GrassMaterial") -[node name="Water" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.2, 0) -mesh = SubResource("WaterMesh") -material_override = SubResource("WaterMaterial") -[node name="WestDock" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-12, 0.45, 0) -mesh = SubResource("DockMesh") -material_override = SubResource("DockMaterial") -[node name="WestDockRamp" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-19, 0.155, 0) -rotation_degrees = Vector3(0, 0, 9) -mesh = SubResource("DockRampMesh") -material_override = SubResource("DockMaterial") -[node name="LakeLabel" type="Label3D" parent="Visuals"] -position = Vector3(-25, 3, 20) -text = "lake" -font_size = 38 -outline_size = 8 -billboard = 1 -no_depth_test = true - -[node name="StaticCollision" type="Node3D" parent="."] -[node name="NorthBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/NorthBank"] -position = Vector3(0, -3, 23) -shape = SubResource("BankNSShape") -[node name="SouthBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/SouthBank"] -position = Vector3(0, -3, -23) -shape = SubResource("BankNSShape") -[node name="WestBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestBank"] -position = Vector3(-25, -3, 0) -shape = SubResource("BankEWShape") -[node name="EastBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/EastBank"] -position = Vector3(25, -3, 0) -shape = SubResource("BankEWShape") -[node name="WestDock" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestDock"] -position = Vector3(-12, 0.45, 0) -shape = SubResource("DockShape") -[node name="WestDockRamp" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestDockRamp"] -position = Vector3(-19, 0.155, 0) -rotation_degrees = Vector3(0, 0, 9) -shape = SubResource("DockRampShape") - -[node name="FishingWater" type="Node3D" parent="."] -[node name="LakeWater" type="Area3D" parent="FishingWater"] -position = Vector3(0, 0.2, 0) -collision_layer = 4 -collision_mask = 0 -monitoring = false -script = ExtResource("2_water") -location_tags = Array[StringName]([&"lake"]) -fish_pool = ExtResource("3_pool") -[node name="Shape" type="CollisionShape3D" parent="FishingWater/LakeWater"] -shape = SubResource("WaterShape") - -[node name="WaterRecovery" type="Node3D" parent="."] -[node name="LakeRecovery" type="Area3D" parent="WaterRecovery"] -position = Vector3(0, -2.3, 0) -collision_layer = 8 -collision_mask = 2 -script = ExtResource("4_trigger") -surface_height = 0.2 -[node name="Shape" type="CollisionShape3D" parent="WaterRecovery/LakeRecovery"] -shape = SubResource("RecoveryShape") - -[node name="SafeRespawns" type="Node3D" parent="."] -[node name="WestDockApproach" type="Marker3D" parent="SafeRespawns"] -position = Vector3(-25, 0.58, 8) -rotation_degrees = Vector3(0, -90, 0) -script = ExtResource("5_safe") -[node name="NorthShore" type="Marker3D" parent="SafeRespawns"] -position = Vector3(0, 0.58, 24) -rotation_degrees = Vector3(0, 180, 0) -script = ExtResource("5_safe") -[node name="SouthEastShore" type="Marker3D" parent="SafeRespawns"] -position = Vector3(25, 0.58, -23) -rotation_degrees = Vector3(0, 45, 0) -script = ExtResource("5_safe") diff --git a/world/regions/marsh_region.tscn b/world/regions/marsh_region.tscn deleted file mode 100644 index 29fea93..0000000 --- a/world/regions/marsh_region.tscn +++ /dev/null @@ -1,164 +0,0 @@ -[gd_scene load_steps=20 format=3] - -[ext_resource type="Script" path="res://world/regions/graybox_region.gd" id="1_region"] -[ext_resource type="Script" path="res://world/fishable_water_region.gd" id="2_water"] -[ext_resource type="Resource" path="res://fish/pools/test_water_pool.tres" id="3_pool"] -[ext_resource type="Script" path="res://world/player_water_trigger.gd" id="4_trigger"] -[ext_resource type="Script" path="res://world/safe_respawn_point.gd" id="5_safe"] - -[sub_resource type="BoxShape3D" id="BankNSShape"] -size = Vector3(50, 6, 8) -[sub_resource type="BoxShape3D" id="BankEWShape"] -size = Vector3(8, 6, 30) -[sub_resource type="BoxMesh" id="BankNSMesh"] -size = Vector3(50, 6, 8) -[sub_resource type="BoxMesh" id="BankEWMesh"] -size = Vector3(8, 6, 30) -[sub_resource type="BoxShape3D" id="BoardwalkShape"] -size = Vector3(6, 0.4, 22) -[sub_resource type="BoxMesh" id="BoardwalkMesh"] -size = Vector3(6, 0.4, 22) -[sub_resource type="BoxShape3D" id="BoardwalkRampShape"] -size = Vector3(6, 0.35, 4) -[sub_resource type="BoxMesh" id="BoardwalkRampMesh"] -size = Vector3(6, 0.35, 4) -[sub_resource type="CylinderMesh" id="ReedMesh"] -top_radius = 0.06 -bottom_radius = 0.1 -height = 2.2 -[sub_resource type="PlaneMesh" id="WaterMesh"] -size = Vector2(38, 30) -[sub_resource type="BoxShape3D" id="WaterShape"] -size = Vector3(38, 0.2, 30) -[sub_resource type="BoxShape3D" id="RecoveryShape"] -size = Vector3(38, 5, 30) -[sub_resource type="StandardMaterial3D" id="BankMaterial"] -albedo_color = Color(0.38, 0.53, 0.27, 1) -[sub_resource type="StandardMaterial3D" id="BoardwalkMaterial"] -albedo_color = Color(0.48, 0.32, 0.18, 1) -[sub_resource type="StandardMaterial3D" id="ReedMaterial"] -albedo_color = Color(0.59, 0.67, 0.2, 1) -[sub_resource type="StandardMaterial3D" id="WaterMaterial"] -transparency = 1 -albedo_color = Color(0.1, 0.48, 0.48, 0.8) - -[node name="MarshRegion" type="Node3D"] -script = ExtResource("1_region") -region_id = &"marsh" -[node name="Visuals" type="Node3D" parent="."] -[node name="NorthBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, 19) -mesh = SubResource("BankNSMesh") -material_override = SubResource("BankMaterial") -[node name="SouthBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, -19) -mesh = SubResource("BankNSMesh") -material_override = SubResource("BankMaterial") -[node name="WestBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-23, -3, 0) -mesh = SubResource("BankEWMesh") -material_override = SubResource("BankMaterial") -[node name="EastBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(23, -3, 0) -mesh = SubResource("BankEWMesh") -material_override = SubResource("BankMaterial") -[node name="Water" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.2, 0) -mesh = SubResource("WaterMesh") -material_override = SubResource("WaterMaterial") -[node name="Boardwalk" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.45, 0) -mesh = SubResource("BoardwalkMesh") -material_override = SubResource("BoardwalkMaterial") -[node name="BoardwalkNorthRamp" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.155, 13) -rotation_degrees = Vector3(9, 0, 0) -mesh = SubResource("BoardwalkRampMesh") -material_override = SubResource("BoardwalkMaterial") -[node name="BoardwalkSouthRamp" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.155, -13) -rotation_degrees = Vector3(-9, 0, 0) -mesh = SubResource("BoardwalkRampMesh") -material_override = SubResource("BoardwalkMaterial") -[node name="ReedWest" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-13, 1.1, -8) -mesh = SubResource("ReedMesh") -material_override = SubResource("ReedMaterial") -[node name="ReedEast" type="MeshInstance3D" parent="Visuals"] -position = Vector3(12, 1.1, 7) -mesh = SubResource("ReedMesh") -material_override = SubResource("ReedMaterial") -[node name="MarshLabel" type="Label3D" parent="Visuals"] -position = Vector3(21, 3, 17) -text = "marsh" -font_size = 36 -outline_size = 8 -billboard = 1 -no_depth_test = true - -[node name="StaticCollision" type="Node3D" parent="."] -[node name="NorthBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/NorthBank"] -position = Vector3(0, -3, 19) -shape = SubResource("BankNSShape") -[node name="SouthBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/SouthBank"] -position = Vector3(0, -3, -19) -shape = SubResource("BankNSShape") -[node name="WestBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestBank"] -position = Vector3(-23, -3, 0) -shape = SubResource("BankEWShape") -[node name="EastBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/EastBank"] -position = Vector3(23, -3, 0) -shape = SubResource("BankEWShape") -[node name="Boardwalk" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/Boardwalk"] -position = Vector3(0, 0.45, 0) -shape = SubResource("BoardwalkShape") -[node name="BoardwalkNorthRamp" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/BoardwalkNorthRamp"] -position = Vector3(0, 0.155, 13) -rotation_degrees = Vector3(9, 0, 0) -shape = SubResource("BoardwalkRampShape") -[node name="BoardwalkSouthRamp" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/BoardwalkSouthRamp"] -position = Vector3(0, 0.155, -13) -rotation_degrees = Vector3(-9, 0, 0) -shape = SubResource("BoardwalkRampShape") - -[node name="FishingWater" type="Node3D" parent="."] -[node name="MarshWater" type="Area3D" parent="FishingWater"] -position = Vector3(0, 0.2, 0) -collision_layer = 4 -collision_mask = 0 -monitoring = false -script = ExtResource("2_water") -location_tags = Array[StringName]([&"marsh"]) -fish_pool = ExtResource("3_pool") -[node name="Shape" type="CollisionShape3D" parent="FishingWater/MarshWater"] -shape = SubResource("WaterShape") - -[node name="WaterRecovery" type="Node3D" parent="."] -[node name="MarshRecovery" type="Area3D" parent="WaterRecovery"] -position = Vector3(0, -2.3, 0) -collision_layer = 8 -collision_mask = 2 -script = ExtResource("4_trigger") -surface_height = 0.2 -[node name="Shape" type="CollisionShape3D" parent="WaterRecovery/MarshRecovery"] -shape = SubResource("RecoveryShape") - -[node name="SafeRespawns" type="Node3D" parent="."] -[node name="BoardwalkNorth" type="Marker3D" parent="SafeRespawns"] -position = Vector3(8, 0.58, 19) -rotation_degrees = Vector3(0, 180, 0) -script = ExtResource("5_safe") -[node name="BoardwalkSouth" type="Marker3D" parent="SafeRespawns"] -position = Vector3(-8, 0.58, -19) -script = ExtResource("5_safe") -[node name="EastBank" type="Marker3D" parent="SafeRespawns"] -position = Vector3(23, 0.58, 7) -rotation_degrees = Vector3(0, 90, 0) -script = ExtResource("5_safe") diff --git a/world/regions/river_region.tscn b/world/regions/river_region.tscn deleted file mode 100644 index 02fcdd9..0000000 --- a/world/regions/river_region.tscn +++ /dev/null @@ -1,143 +0,0 @@ -[gd_scene load_steps=19 format=3] - -[ext_resource type="Script" path="res://world/regions/graybox_region.gd" id="1_region"] -[ext_resource type="Script" path="res://world/fishable_water_region.gd" id="2_water"] -[ext_resource type="Resource" path="res://fish/pools/test_water_pool.tres" id="3_pool"] -[ext_resource type="Script" path="res://world/player_water_trigger.gd" id="4_trigger"] -[ext_resource type="Script" path="res://world/safe_respawn_point.gd" id="5_safe"] - -[sub_resource type="BoxShape3D" id="BankShape"] -size = Vector3(13, 6, 61) -[sub_resource type="BoxMesh" id="BankMesh"] -size = Vector3(13, 6, 61) -[sub_resource type="BoxShape3D" id="BridgeShape"] -size = Vector3(6, 0.4, 7) -[sub_resource type="BoxMesh" id="BridgeMesh"] -size = Vector3(6, 0.4, 7) -[sub_resource type="BoxShape3D" id="BridgeRampShape"] -size = Vector3(4, 0.35, 7) -[sub_resource type="BoxMesh" id="BridgeRampMesh"] -size = Vector3(4, 0.35, 7) -[sub_resource type="BoxMesh" id="RailMesh"] -size = Vector3(14, 0.25, 0.25) -[sub_resource type="PlaneMesh" id="WaterMesh"] -size = Vector2(14, 58) -[sub_resource type="BoxShape3D" id="WaterShape"] -size = Vector3(14, 0.2, 58) -[sub_resource type="BoxShape3D" id="RecoveryShape"] -size = Vector3(14, 5, 58) -[sub_resource type="StandardMaterial3D" id="BankMaterial"] -albedo_color = Color(0.31, 0.61, 0.37, 1) -[sub_resource type="StandardMaterial3D" id="BridgeMaterial"] -albedo_color = Color(0.58, 0.58, 0.54, 1) -[sub_resource type="StandardMaterial3D" id="RailMaterial"] -albedo_color = Color(0.3, 0.32, 0.34, 1) -[sub_resource type="StandardMaterial3D" id="WaterMaterial"] -transparency = 1 -albedo_color = Color(0.12, 0.48, 0.72, 0.8) - -[node name="RiverRegion" type="Node3D"] -script = ExtResource("1_region") -region_id = &"river" -[node name="Visuals" type="Node3D" parent="."] -[node name="WestBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-13.5, -3, -1.5) -mesh = SubResource("BankMesh") -material_override = SubResource("BankMaterial") -[node name="EastBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(13.5, -3, -1.5) -mesh = SubResource("BankMesh") -material_override = SubResource("BankMaterial") -[node name="Water" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.2, 0) -mesh = SubResource("WaterMesh") -material_override = SubResource("WaterMaterial") -[node name="Bridge" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.45, 7) -mesh = SubResource("BridgeMesh") -material_override = SubResource("BridgeMaterial") -[node name="WestBridgeRamp" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-5, 0.155, 7) -rotation_degrees = Vector3(0, 0, 9) -mesh = SubResource("BridgeRampMesh") -material_override = SubResource("BridgeMaterial") -[node name="EastBridgeRamp" type="MeshInstance3D" parent="Visuals"] -position = Vector3(5, 0.155, 7) -rotation_degrees = Vector3(0, 0, -9) -mesh = SubResource("BridgeRampMesh") -material_override = SubResource("BridgeMaterial") -[node name="NorthRail" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 1.15, 10.2) -mesh = SubResource("RailMesh") -material_override = SubResource("RailMaterial") -[node name="SouthRail" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 1.15, 3.8) -mesh = SubResource("RailMesh") -material_override = SubResource("RailMaterial") -[node name="RiverLabel" type="Label3D" parent="Visuals"] -position = Vector3(-16, 3, 20) -text = "river" -font_size = 34 -outline_size = 7 -billboard = 1 -no_depth_test = true - -[node name="StaticCollision" type="Node3D" parent="."] -[node name="WestBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestBank"] -position = Vector3(-13.5, -3, -1.5) -shape = SubResource("BankShape") -[node name="EastBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/EastBank"] -position = Vector3(13.5, -3, -1.5) -shape = SubResource("BankShape") -[node name="Bridge" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/Bridge"] -position = Vector3(0, 0.45, 7) -shape = SubResource("BridgeShape") -[node name="WestBridgeRamp" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestBridgeRamp"] -position = Vector3(-5, 0.155, 7) -rotation_degrees = Vector3(0, 0, 9) -shape = SubResource("BridgeRampShape") -[node name="EastBridgeRamp" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/EastBridgeRamp"] -position = Vector3(5, 0.155, 7) -rotation_degrees = Vector3(0, 0, -9) -shape = SubResource("BridgeRampShape") - -[node name="FishingWater" type="Node3D" parent="."] -[node name="RiverWater" type="Area3D" parent="FishingWater"] -position = Vector3(0, 0.2, 0) -collision_layer = 4 -collision_mask = 0 -monitoring = false -script = ExtResource("2_water") -location_tags = Array[StringName]([&"river"]) -fish_pool = ExtResource("3_pool") -[node name="Shape" type="CollisionShape3D" parent="FishingWater/RiverWater"] -shape = SubResource("WaterShape") - -[node name="WaterRecovery" type="Node3D" parent="."] -[node name="RiverRecovery" type="Area3D" parent="WaterRecovery"] -position = Vector3(0, -2.3, 0) -collision_layer = 8 -collision_mask = 2 -script = ExtResource("4_trigger") -surface_height = 0.2 -[node name="Shape" type="CollisionShape3D" parent="WaterRecovery/RiverRecovery"] -shape = SubResource("RecoveryShape") - -[node name="SafeRespawns" type="Node3D" parent="."] -[node name="BridgeWest" type="Marker3D" parent="SafeRespawns"] -position = Vector3(-15, 0.58, 14) -rotation_degrees = Vector3(0, -90, 0) -script = ExtResource("5_safe") -[node name="NorthEastBank" type="Marker3D" parent="SafeRespawns"] -position = Vector3(14, 0.58, 24) -rotation_degrees = Vector3(0, 90, 0) -script = ExtResource("5_safe") -[node name="SouthWestBank" type="Marker3D" parent="SafeRespawns"] -position = Vector3(-14, 0.58, -25) -rotation_degrees = Vector3(0, -90, 0) -script = ExtResource("5_safe") diff --git a/world/regions/starter_pond_region.tscn b/world/regions/starter_pond_region.tscn deleted file mode 100644 index f484beb..0000000 --- a/world/regions/starter_pond_region.tscn +++ /dev/null @@ -1,114 +0,0 @@ -[gd_scene load_steps=14 format=3] - -[ext_resource type="Script" path="res://world/regions/graybox_region.gd" id="1_region"] -[ext_resource type="Script" path="res://world/fishable_water_region.gd" id="2_water"] -[ext_resource type="Resource" path="res://fish/pools/test_water_pool.tres" id="3_pool"] -[ext_resource type="Script" path="res://world/player_water_trigger.gd" id="4_trigger"] -[ext_resource type="Script" path="res://world/safe_respawn_point.gd" id="5_safe"] - -[sub_resource type="BoxShape3D" id="BankNSShape"] -size = Vector3(36, 6, 8) -[sub_resource type="BoxShape3D" id="BankEWShape"] -size = Vector3(6, 6, 20) -[sub_resource type="BoxMesh" id="BankNSMesh"] -size = Vector3(36, 6, 8) -[sub_resource type="BoxMesh" id="BankEWMesh"] -size = Vector3(6, 6, 20) -[sub_resource type="PlaneMesh" id="WaterMesh"] -size = Vector2(24, 20) -[sub_resource type="BoxShape3D" id="WaterShape"] -size = Vector3(24, 0.2, 20) -[sub_resource type="BoxShape3D" id="RecoveryShape"] -size = Vector3(24, 5, 20) -[sub_resource type="StandardMaterial3D" id="GrassMaterial"] -albedo_color = Color(0.43, 0.75, 0.34, 1) -[sub_resource type="StandardMaterial3D" id="WaterMaterial"] -transparency = 1 -albedo_color = Color(0.16, 0.58, 0.78, 0.78) -roughness = 0.25 - -[node name="StarterPondRegion" type="Node3D"] -script = ExtResource("1_region") -region_id = &"starter_pond" - -[node name="Visuals" type="Node3D" parent="."] -[node name="NorthBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, 14) -mesh = SubResource("BankNSMesh") -material_override = SubResource("GrassMaterial") -[node name="SouthBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, -14) -mesh = SubResource("BankNSMesh") -material_override = SubResource("GrassMaterial") -[node name="WestBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-15, -3, 0) -mesh = SubResource("BankEWMesh") -material_override = SubResource("GrassMaterial") -[node name="EastBank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(15, -3, 0) -mesh = SubResource("BankEWMesh") -material_override = SubResource("GrassMaterial") -[node name="Water" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.2, 0) -mesh = SubResource("WaterMesh") -material_override = SubResource("WaterMaterial") -[node name="PondLabel" type="Label3D" parent="Visuals"] -position = Vector3(-14, 2.4, 11) -text = "pond" -font_size = 34 -outline_size = 7 -billboard = 1 -no_depth_test = true - -[node name="StaticCollision" type="Node3D" parent="."] -[node name="NorthBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/NorthBank"] -position = Vector3(0, -3, 14) -shape = SubResource("BankNSShape") -[node name="SouthBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/SouthBank"] -position = Vector3(0, -3, -14) -shape = SubResource("BankNSShape") -[node name="WestBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestBank"] -position = Vector3(-15, -3, 0) -shape = SubResource("BankEWShape") -[node name="EastBank" type="StaticBody3D" parent="StaticCollision"] -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/EastBank"] -position = Vector3(15, -3, 0) -shape = SubResource("BankEWShape") - -[node name="FishingWater" type="Node3D" parent="."] -[node name="StarterPondWater" type="Area3D" parent="FishingWater"] -position = Vector3(0, 0.2, 0) -collision_layer = 4 -collision_mask = 0 -monitoring = false -script = ExtResource("2_water") -location_tags = Array[StringName]([&"starter_pond"]) -fish_pool = ExtResource("3_pool") -[node name="Shape" type="CollisionShape3D" parent="FishingWater/StarterPondWater"] -shape = SubResource("WaterShape") - -[node name="WaterRecovery" type="Node3D" parent="."] -[node name="StarterPondRecovery" type="Area3D" parent="WaterRecovery"] -position = Vector3(0, -2.3, 0) -collision_layer = 8 -collision_mask = 2 -script = ExtResource("4_trigger") -surface_height = 0.2 -[node name="Shape" type="CollisionShape3D" parent="WaterRecovery/StarterPondRecovery"] -shape = SubResource("RecoveryShape") - -[node name="SafeRespawns" type="Node3D" parent="."] -[node name="EastShore" type="Marker3D" parent="SafeRespawns"] -position = Vector3(15, 0.58, 4) -rotation_degrees = Vector3(0, 90, 0) -script = ExtResource("5_safe") -[node name="NorthShore" type="Marker3D" parent="SafeRespawns"] -position = Vector3(0, 0.58, 14) -rotation_degrees = Vector3(0, 180, 0) -script = ExtResource("5_safe") -[node name="SouthShore" type="Marker3D" parent="SafeRespawns"] -position = Vector3(0, 0.58, -14) -script = ExtResource("5_safe") diff --git a/world/regions/village_region.tscn b/world/regions/village_region.tscn deleted file mode 100644 index 10a4527..0000000 --- a/world/regions/village_region.tscn +++ /dev/null @@ -1,179 +0,0 @@ -[gd_scene load_steps=16 format=3] - -[ext_resource type="Script" path="res://world/regions/graybox_region.gd" id="1_region"] -[ext_resource type="Script" path="res://world/safe_respawn_point.gd" id="2_safe"] -[ext_resource type="PackedScene" path="res://world/interactables/fishing_shop_world.tscn" id="3_shop"] -[ext_resource type="PackedScene" path="res://world/interactables/pelican_buyer_world.tscn" id="4_pelican"] - -[sub_resource type="BoxShape3D" id="GroundShape"] -size = Vector3(48, 6, 36) - -[sub_resource type="BoxShape3D" id="BuildingShape"] -size = Vector3(8, 5, 7) - -[sub_resource type="BoxMesh" id="GroundMesh"] -size = Vector3(48, 6, 36) - -[sub_resource type="BoxMesh" id="PlazaMesh"] -size = Vector3(22, 0.02, 18) - -[sub_resource type="BoxMesh" id="BuildingMesh"] -size = Vector3(8, 5, 7) - -[sub_resource type="CylinderMesh" id="RoofMesh"] -top_radius = 0 -bottom_radius = 5.5 -height = 3 -radial_segments = 4 - -[sub_resource type="CylinderMesh" id="TowerMesh"] -top_radius = 2.4 -bottom_radius = 2.4 -height = 8 - -[sub_resource type="CylinderMesh" id="TowerTankMesh"] -top_radius = 3.2 -bottom_radius = 3.2 -height = 3.2 - -[sub_resource type="BoxMesh" id="PavilionRoofMesh"] -size = Vector3(9, 0.35, 7) - -[sub_resource type="BoxMesh" id="PavilionPostMesh"] -size = Vector3(0.3, 3.2, 0.3) - -[sub_resource type="StandardMaterial3D" id="GrassMaterial"] -albedo_color = Color(0.37, 0.68, 0.3, 1) - -[sub_resource type="StandardMaterial3D" id="PlazaMaterial"] -albedo_color = Color(0.76, 0.69, 0.54, 1) - -[sub_resource type="StandardMaterial3D" id="BuildingMaterial"] -albedo_color = Color(0.92, 0.55, 0.34, 1) - -[sub_resource type="StandardMaterial3D" id="RoofMaterial"] -albedo_color = Color(0.2, 0.46, 0.53, 1) - -[sub_resource type="StandardMaterial3D" id="LandmarkMaterial"] -albedo_color = Color(0.95, 0.82, 0.28, 1) - -[node name="VillageRegion" type="Node3D"] -script = ExtResource("1_region") -region_id = &"village" - -[node name="Visuals" type="Node3D" parent="."] - -[node name="Ground" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, -3, 0) -mesh = SubResource("GroundMesh") -material_override = SubResource("GrassMaterial") - -[node name="Plaza" type="MeshInstance3D" parent="Visuals"] -position = Vector3(0, 0.011, 0) -mesh = SubResource("PlazaMesh") -material_override = SubResource("PlazaMaterial") - -[node name="WestBuilding" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-17, 2.5, 9) -mesh = SubResource("BuildingMesh") -material_override = SubResource("BuildingMaterial") - -[node name="WestRoof" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-17, 6.1, 9) -rotation_degrees = Vector3(0, 45, 0) -mesh = SubResource("RoofMesh") -material_override = SubResource("RoofMaterial") - -[node name="NorthBuilding" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-7, 2.5, 13) -mesh = SubResource("BuildingMesh") -material_override = SubResource("BuildingMaterial") - -[node name="NorthRoof" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-7, 6.1, 13) -rotation_degrees = Vector3(0, 45, 0) -mesh = SubResource("RoofMesh") -material_override = SubResource("RoofMaterial") - -[node name="WaterTower" type="MeshInstance3D" parent="Visuals"] -position = Vector3(18, 4, 11) -mesh = SubResource("TowerMesh") -material_override = SubResource("RoofMaterial") - -[node name="WaterTank" type="MeshInstance3D" parent="Visuals"] -position = Vector3(18, 8.5, 11) -mesh = SubResource("TowerTankMesh") -material_override = SubResource("LandmarkMaterial") - -[node name="PavilionRoof" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-12, 3.3, -10) -mesh = SubResource("PavilionRoofMesh") -material_override = SubResource("LandmarkMaterial") - -[node name="PavilionPostNW" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-15.5, 1.6, -12.5) -mesh = SubResource("PavilionPostMesh") -material_override = SubResource("RoofMaterial") - -[node name="PavilionPostSE" type="MeshInstance3D" parent="Visuals"] -position = Vector3(-8.5, 1.6, -7.5) -mesh = SubResource("PavilionPostMesh") -material_override = SubResource("RoofMaterial") - -[node name="VillageLabel" type="Label3D" parent="Visuals"] -position = Vector3(0, 3.2, 7) -text = "village" -font_size = 42 -outline_size = 8 -billboard = 1 -no_depth_test = true - -[node name="StaticCollision" type="Node3D" parent="."] - -[node name="Ground" type="StaticBody3D" parent="StaticCollision"] - -[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticCollision/Ground"] -position = Vector3(0, -3, 0) -shape = SubResource("GroundShape") - -[node name="WestBuilding" type="StaticBody3D" parent="StaticCollision"] - -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/WestBuilding"] -position = Vector3(-17, 2.5, 9) -shape = SubResource("BuildingShape") - -[node name="NorthBuilding" type="StaticBody3D" parent="StaticCollision"] - -[node name="Shape" type="CollisionShape3D" parent="StaticCollision/NorthBuilding"] -position = Vector3(-7, 2.5, 13) -shape = SubResource("BuildingShape") - -[node name="FishingWater" type="Node3D" parent="."] - -[node name="WaterRecovery" type="Node3D" parent="."] - -[node name="SafeRespawns" type="Node3D" parent="."] - -[node name="VillageCenter" type="Marker3D" parent="SafeRespawns"] -position = Vector3(0, 0.58, 2) -script = ExtResource("2_safe") - -[node name="VillageWest" type="Marker3D" parent="SafeRespawns"] -position = Vector3(-19, 0.58, -2) -rotation_degrees = Vector3(0, -90, 0) -script = ExtResource("2_safe") - -[node name="VillageSouth" type="Marker3D" parent="SafeRespawns"] -position = Vector3(5, 0.58, -14) -rotation_degrees = Vector3(0, 180, 0) -script = ExtResource("2_safe") - -[node name="Interactables" type="Node3D" parent="."] - -[node name="FishingShopWorld" parent="Interactables" instance=ExtResource("3_shop")] -position = Vector3(12, 0, 3) -rotation_degrees = Vector3(0, -25, 0) - -[node name="PelicanCoolerPerch" parent="Interactables" instance=ExtResource("4_pelican")] -position = Vector3(-19, 0, -9) -rotation_degrees = Vector3(0, 20, 0)