Files
webeditor3d/src/runtime-three/runtime-npc-presence.ts
Victor Giers b711e0f10f auto-git:
[add] src/runtime-three/runtime-npc-presence.ts
2026-04-13 23:48:38 +02:00

50 lines
1.1 KiB
TypeScript

import type { NpcPresence } from "../entities/entity-instances";
import {
hasTimeWindowJustEnded,
hasTimeWindowJustStarted,
isWithinTimeWindow
} from "./runtime-project-time";
export function resolveNpcPresenceActive(
presence: NpcPresence,
timeOfDayHours: number
): boolean {
switch (presence.mode) {
case "always":
return true;
case "timeWindow":
return isWithinTimeWindow(
presence.startHour,
presence.endHour,
timeOfDayHours
);
}
}
export function hasNpcPresenceActivityChanged(
presence: NpcPresence,
previousTimeOfDayHours: number,
currentTimeOfDayHours: number
): boolean {
switch (presence.mode) {
case "always":
return false;
case "timeWindow":
return (
hasTimeWindowJustStarted(
previousTimeOfDayHours,
currentTimeOfDayHours,
presence.startHour,
presence.endHour
) ||
hasTimeWindowJustEnded(
previousTimeOfDayHours,
currentTimeOfDayHours,
presence.startHour,
presence.endHour
)
);
}
}