Generate complete freshwater and elevated terrain features

This commit is contained in:
Alexander Sellite 2026-08-22 18:38:17 -04:00
parent 219c462181
commit f2b96f2c1f
7 changed files with 2105 additions and 141 deletions

View file

@ -199,6 +199,59 @@ func _validate_portable_water_body() -> void:
mesh_derived_body.queue_free()
await process_frame
var polygon_body := WaterBodyScene.instantiate() as WaterBodyAuthoring
polygon_body.position = Vector3(30.0, 5.0, 20.0)
polygon_body.surface_polygon = PackedVector2Array([
Vector2(-4.0, -4.0),
Vector2(4.0, -4.0),
Vector2(4.0, 4.0),
Vector2(0.0, 1.0),
Vector2(-4.0, 4.0),
])
polygon_body.visual_surface_enabled = false
polygon_body.fish_pool = PondPool
root.add_child(polygon_body)
await physics_frame
await physics_frame
var polygon_fishing_region := polygon_body.get_node(
"FishingRegion"
) as FishableWaterRegionType
var polygon_recovery_region := polygon_body.get_node(
"RecoveryRegion"
) as Area3D
assert(polygon_fishing_region.get_child_count() == 3)
assert(polygon_recovery_region.get_child_count() == 3)
for child: Node in polygon_fishing_region.get_children():
var polygon_shape_node := child as CollisionShape3D
assert(polygon_shape_node != null)
assert(polygon_shape_node.shape is ConvexPolygonShape3D)
var polygon_resolver := FishingSurfaceResolverType.new()
var polygon_space_state := (
polygon_body.get_world_3d().direct_space_state
)
var polygon_inside: FishingSurfaceSampleType = (
polygon_resolver.resolve_surface(
polygon_space_state,
Vector3(30.0, 0.0, 20.0),
8.0,
)
)
assert(polygon_inside.is_fishable())
assert(is_equal_approx(polygon_inside.position.y, 5.0))
var polygon_notch: FishingSurfaceSampleType = (
polygon_resolver.resolve_surface(
polygon_space_state,
Vector3(30.0, 0.0, 23.0),
8.0,
)
)
assert(not polygon_notch.has_surface)
polygon_body.queue_free()
await process_frame
func _validate_starter_region_surfaces() -> void:
var region := StarterRegionScene.instantiate() as Node3D