Add modular holdover fishing world
This commit is contained in:
parent
6a5923fdb8
commit
a91f2b9825
17 changed files with 1354 additions and 191 deletions
140
world/regions/coastal_dock_region.tscn
Normal file
140
world/regions/coastal_dock_region.tscn
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
[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")
|
||||
43
world/regions/graybox_region.gd
Normal file
43
world/regions/graybox_region.gd
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
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
|
||||
1
world/regions/graybox_region.gd.uid
Normal file
1
world/regions/graybox_region.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bb1j0uhvrbf5n
|
||||
141
world/regions/lake_region.tscn
Normal file
141
world/regions/lake_region.tscn
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
[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")
|
||||
164
world/regions/marsh_region.tscn
Normal file
164
world/regions/marsh_region.tscn
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
[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")
|
||||
143
world/regions/river_region.tscn
Normal file
143
world/regions/river_region.tscn
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
[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")
|
||||
114
world/regions/starter_pond_region.tscn
Normal file
114
world/regions/starter_pond_region.tscn
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
[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")
|
||||
179
world/regions/village_region.tscn
Normal file
179
world/regions/village_region.tscn
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
[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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue