netfishing/world/test_world.gd

75 lines
2 KiB
GDScript3
Raw Normal View History

class_name TestWorld
extends Node3D
const FishingShopInteractionType = preload(
"res://world/fishing_shop_interaction.gd"
)
2026-07-26 00:33:37 -04:00
@onready var _regions_root: Node3D = $Regions
2026-07-27 00:13:07 -04:00
@onready var _starter_island: StarterIslandRegion = (
$Regions/StarterIslandRegion
)
2026-07-26 00:33:37 -04:00
@onready var _below_world_failsafe: PlayerWaterTrigger = (
$Safety/BelowWorldFailsafe
)
@onready var _fishing_shop: FishingShopInteractionType = (
2026-07-27 00:13:07 -04:00
_starter_island.get_fishing_shop()
2026-07-26 00:33:37 -04:00
)
@onready var _world_environment: WorldEnvironment = $Environment/WorldEnvironment
@onready var _sun: DirectionalLight3D = $Environment/Sun
2026-07-26 00:33:37 -04:00
func get_player_water_triggers() -> Array[PlayerWaterTrigger]:
var triggers: Array[PlayerWaterTrigger] = []
2026-07-27 03:30:03 -04:00
for region: WorldRegion in _get_regions():
2026-07-26 00:33:37 -04:00
triggers.append_array(region.get_water_recovery_triggers())
triggers.append(_below_world_failsafe)
return triggers
func get_safe_respawn_points() -> Array[SafeRespawnPoint]:
var points: Array[SafeRespawnPoint] = []
2026-07-27 03:30:03 -04:00
for region: WorldRegion in _get_regions():
2026-07-26 00:33:37 -04:00
points.append_array(region.get_safe_respawn_points())
return points
func get_fishing_shop() -> FishingShopInteractionType:
return _fishing_shop
2026-07-26 00:33:37 -04:00
2026-07-27 00:13:07 -04:00
func get_player_spawn_transform() -> Transform3D:
return _starter_island.get_player_spawn_transform()
func get_world_environment() -> WorldEnvironment:
return _world_environment
func get_sun() -> DirectionalLight3D:
return _sun
2026-07-26 00:33:37 -04:00
func get_fishable_water_regions() -> Array[FishableWaterRegion]:
var waters: Array[FishableWaterRegion] = []
2026-07-27 03:30:03 -04:00
for region: WorldRegion in _get_regions():
2026-07-26 00:33:37 -04:00
waters.append_array(region.get_fishable_water_regions())
return waters
func get_pelican_convenience_landmark() -> Node3D:
2026-07-27 00:13:07 -04:00
return _starter_island.get_pelican_landmark()
2026-07-26 00:33:37 -04:00
func get_saltwater_shoreline_mesh() -> MeshInstance3D:
return _starter_island.get_saltwater_shoreline_mesh()
2026-07-27 03:30:03 -04:00
func _get_regions() -> Array[WorldRegion]:
var regions: Array[WorldRegion] = []
2026-07-26 00:33:37 -04:00
for child: Node in _regions_root.get_children():
2026-07-27 03:30:03 -04:00
var region: WorldRegion = child as WorldRegion
2026-07-26 00:33:37 -04:00
if region != null:
regions.append(region)
return regions