"use strict"; // Layer: entity-runtime/tarinai // Owns the public Tarinai update boundary. Tarinai.prototype.update routes // directly through the explicit creature update pipeline. (function (global) { function installPrototypeBoundary() { const proto = global.Tarinai?.prototype; if (!proto || proto._tarinaiCreatureRuntimeInstalled) return false; proto.update = function update(dt) { return global.TarinaiCreatureRuntime.updateOne(this, dt); }; Object.defineProperty(proto, "_tarinaiCreatureRuntimeInstalled", { value: true, configurable: true, writable: true, }); return true; } function updateOne(tarinai, dt, options = {}) { if (!tarinai || tarinai.dead || !global.TarinaiUpdatePipeline.updateOne) return false; return global.TarinaiUpdatePipeline.updateOne(tarinai, dt, options) !== false; } function updateMotionOnly(tarinai, dt, options = {}) { if (!tarinai || tarinai.dead || !global.TarinaiMovementUpdateStep.update) return false; tarinai.prevX = tarinai.x; tarinai.prevY = tarinai.y; const motionDt = Math.max(0.001, Math.min(0.05, Number(options.context?.motionDt ?? dt) || 0.016)); return global.TarinaiMovementUpdateStep.update(tarinai, motionDt, { ...(options.context || {}), motionOnly: true, motionDt, })?.done !== true || !tarinai.dead; } global.TarinaiCreatureRuntime = Object.freeze({ updateOne, updateMotionOnly }); installPrototypeBoundary(); })(typeof window !== "undefined" ? window : globalThis);