Old Tam speaks (Kokoro); CC0 birdsong, crickets and owls; no plants through floors; menu and marker fixes

This commit is contained in:
Paul Bailey
2026-11-06 00:03:59 +00:00
parent 0550a4daa0
commit 787d8d1d65
70 changed files with 495 additions and 87 deletions

View File

@@ -44,6 +44,13 @@ func _run() -> void:
check(TS.tutorial_world().is_empty(), "no tutorial world yet")
S.current_id = S.create_world("Tutorial", TS.TUTORIAL_SEED, {"tutorial": true})
check(not TS.tutorial_world().is_empty(), "the title screen finds it once it's made (Tutorial, carry on)")
var ts: Node = TS.new()
var page: Control = ts._main_page()
var labels: Array = page.get_children().filter(func(c): return c is Button).map(func(b): return String(b.text))
check(labels.has("Tutorial (carry on)") and not labels.any(func(t): return t.begins_with("Continue")),
"and lists it once: no \"Continue: Tutorial\" as well %s" % [labels.slice(0, 3)])
page.free()
ts.free()
world = load("res://scenes/world.tscn").instantiate()
root.add_child(world)
for _i in range(5):
@@ -303,6 +310,19 @@ func _night() -> void:
var b := Basis(Vector3.UP, yaw)
var center: Vector3 = hut.pieces[0].global_transform * Vector3(1, 0, 1)
check(center.distance_to(ol.center() if is_instance_valid(ol) else center) < 0.05, "(built right on it)")
for _i in range(3):
await physics_frame
var under := 0
var space: PhysicsDirectSpaceState3D = world.get_world_3d().direct_space_state
for pk in world.props.pickups.values():
if pk.taken or Vector2(pk.global_position.x - center.x, pk.global_position.z - center.z).length() > 5.0:
continue
var rq := PhysicsRayQueryParameters3D.create(pk.global_position + Vector3(0, 0.02, 0), pk.global_position + Vector3(0, 2.6, 0))
rq.collision_mask = 4
rq.hit_from_inside = true
if not space.intersect_ray(rq).is_empty():
under += 1
check(under == 0, "no flax, sticks or stones poking up through the floor (%d left)" % under)
player.global_position = center + b * Vector3(0.6, 0.05, -0.6)
sv._shelter_left = 0.0
sv.step(0.2)