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

@@ -88,8 +88,8 @@ func _body() -> void:
var st: Variant = load(M.DIR + m + ".ogg")
lens.append(roundi(st.get_length()) if st is AudioStream else 0)
check(lens.all(func(l): return l >= 40), "five music tracks, 40 s or more each %s" % [lens])
var amb := ["birds", "crickets", "fire"].filter(func(a): return load(M.AMB + a + ".ogg") is AudioStream)
check(amb.size() == 3, "birds, crickets and the fire's crackle")
var amb := ["birds", "crickets", "fire", "owl_0", "owl_1"].filter(func(a): return load(M.AMB + a + ".ogg") is AudioStream)
check(amb.size() == 5, "birds, crickets, the fire's crackle and two owl hoots")
check(AudioServer.get_bus_index("Music") > 0 and AudioServer.get_bus_index("SFX") > 0 and AudioServer.get_bus_index("Ambience") > 0,
"Music, SFX and Ambience buses")
@@ -145,6 +145,18 @@ func _body() -> void:
"collider": world.terrain.get_node("TerrainBody")}, 0.0)
check(r.ok and A.place(player, slot, r.xf, world) and _heard("place_wood", h) == 1, "placing a floor: a plank's knock")
# (not a sound: building over plants, in any world, clears them)
var plant: Node3D = null
for pk in world.props.pickups.values():
if not pk.taken and pk.global_position.distance_to(player.global_position) < 40.0:
plant = pk
break
var cover: Node3D = world.spawn_piece(ItemDB_get("wood_floor"), Transform3D(Basis(), plant.global_position + Vector3(0.3, 0.05, 0.2)))
for _i in range(4):
await physics_frame
check(plant.taken and not plant.visible, "a floor built over a %s clears it (any hut, any world)" % plant.item_id)
cover.queue_free()
inv.add("berries", 3)
player.survival.hunger = 40.0
A.eat(player, _hold("berries"))