This commit is contained in:
33333-33333 2026-07-05 18:01:36 +09:00
commit 8f9f5b5100
108 changed files with 2139 additions and 1500 deletions

View file

@ -6,6 +6,7 @@
// every frame via the smooth-motion pass.
(function (global) {
const helpers = global.TarinaiSimulationRuntime.helpers;
const Geometry = global.TarinaiGeometry;
function behaviorOf(tarinai) {
return currentTarinaiBehavior(tarinai);
@ -17,7 +18,7 @@
}
function visible(worldRef, tarinai, visibleRect) {
return Boolean(helpers.pointInRect(tarinai.x || 0, tarinai.y || 0, visibleRect));
return Boolean(Geometry.pointInRect(tarinai.x || 0, tarinai.y || 0, visibleRect));
}
function hasMotionNeed(tarinai) {
@ -59,7 +60,7 @@
const lockedPassive = sleeping || state === "eat" || /eat|sunbath|birth_ritual|breed|repro/i.test(id) || /sunbath|birth_ritual|breed|repro/.test(state) || (tarinai.birthRitualTimer || 0) > 0.04 || (tarinai.eatTimer || 0) > 0.04 || (tarinai.sunbathTimer || 0) > 0.04;
if (sleeping && isVisible && !worldRef?.isTarinaiHiddenInNestBox?.(tarinai)) return true;
if (lockedPassive && isVisible && activeMechanicalObstacleNear(tarinai, worldRef)) return true;
if (sleeping && tarinai.target && !tarinai.target.dead && tarinai.isSleepFurniture?.(tarinai.target) && !(typeof isNestContainerType === "function" ? isNestContainerType(tarinai.target.type) : (tarinai.target.type === "nest_box" || tarinai.target.type === "pipe"))) return true;
if (sleeping && tarinai.target && !tarinai.target.dead && tarinai.isSleepFurniture?.(tarinai.target) && !globalThis.TarinaiToolRuntime?.isNestContainerItem?.(tarinai.target, { alive: false })) return true;
return false;
}
@ -74,7 +75,7 @@
const mobile = Boolean(global.TarinaiInputMode.snapshot().touchFirst || (global.innerWidth || 9999) <= 760);
const isVisible = visible(worldRef, tarinai, visibleRect);
const farRect = isVisible ? visibleRect : (nearVisibleRect || helpers.updateVisibleWorldRect(worldRef, 520));
const isNear = isVisible || Boolean(helpers.pointInRect(tarinai.x || 0, tarinai.y || 0, farRect));
const isNear = isVisible || Boolean(Geometry.pointInRect(tarinai.x || 0, tarinai.y || 0, farRect));
const motionNeed = hasMotionNeed(tarinai);
const nestEntryActive = Boolean(tarinai.insideNestBoxId && (typeof tarinai.nestBoxEntryActive === "function" ? tarinai.nestBoxEntryActive() : ((worldRef.time || 0) < (tarinai._nestBoxEntrySmoothUntil || -Infinity) || ((tarinai.nestFade || 0) > 0.01 && (tarinai.nestFade || 0) < 0.985))));