This commit is contained in:
33333-33333 2026-07-01 16:55:49 +09:00
commit c9dd7182aa
35 changed files with 478 additions and 288 deletions

View file

@ -61,7 +61,7 @@
const near = typeof worldRef.nearbyTarinai === "function" ? worldRef.nearbyTarinai(bed.x, bed.y, radius) : (worldRef.tarinai || []);
for (const t of near || []) {
if (!t || t.dead || isTarinaiHiddenInNestBox(worldRef, t)) continue;
if (t.state === "sleep" || t.state === "seek_bed" || t.target === bed) n += 1;
if (t.target === bed && (t.state === "sleep" || t.state === "seek_bed" || t.sleeping)) n += 1;
}
return n;
}
@ -81,7 +81,7 @@
if (sleepTargetBlocked(worldRef, tarinai, item)) return false;
const capacity = item.type === "nest_box" ? nestBoxCapacity(worldRef, item) : 1;
const occupancy = bedOccupancy(worldRef, item);
return occupancy < capacity || (tarinai.insideNestBoxId && tarinai.insideNestBoxId === item.id);
return occupancy < capacity || tarinai.target === item || (tarinai.insideNestBoxId && tarinai.insideNestBoxId === item.id);
}
function findStructure(worldRef, tarinai, opts = {}) {
@ -135,12 +135,12 @@
return findOwnedStructure(worldRef, tarinai, "grass_bed", maxDist)
|| nearestSleepPlaceOfType(worldRef, tarinai, "nest_box", maxDist)
|| nearestSleepPlaceOfType(worldRef, tarinai, "bed", maxDist)
|| nearestSleepPlaceOfType(worldRef, tarinai, "grass_bed", maxDist)
|| null;
}
function findNearestSleepPlace(worldRef, tarinai, maxDist = 520) {
return findPrioritySleepPlaceBeforeGrassBedBuild(worldRef, tarinai, maxDist)
|| findUnownedStructure(worldRef, tarinai, "grass_bed", maxDist)
|| null;
}