This commit is contained in:
33333-33333 2026-06-26 12:46:32 +09:00
commit 86226ccc94
97 changed files with 5790 additions and 2307 deletions

View file

@ -0,0 +1,38 @@
"use strict";
// Layer: entity-runtime/items/growth-system
// Owns passive grass normalization and zunchi lifecycle stage ticking. The
// lifecycle step is kept as a pipeline adapter only.
(function (global) {
function updateGrass(item) {
if (!item || item.dead || item.type !== "grass") return false;
// Grass is intentionally not simulated per item. World.update randomly
// advances one grass by one discrete stage every few seconds.
normalizeGrassStage(item);
return true;
}
function updateZunchiLifecycle(item, dt, worldRef) {
if (!item || item.dead || item.type !== "zunchi") return false;
item.lifecycleTimer += dt;
const interval = item.lifecycleInterval || (0.95 + stableUnit(item.id, "zunchi-life") * 0.45);
if (item.lifecycleTimer < interval) return false;
const lifecycleDt = Math.min(item.lifecycleTimer, 2.4);
item.lifecycleTimer = 0;
global.TarinaiItemDynamicZunchiSystem?.updateLifecycle(item, lifecycleDt, worldRef);
return true;
}
function update(item, dt, worldRef) {
if (!item || item.dead) return { done: true };
if (item.type === "grass") updateGrass(item);
else if (item.type === "zunchi") updateZunchiLifecycle(item, dt, worldRef);
return { done: false };
}
global.TarinaiItemGrowthSystem = Object.freeze({
updateGrass,
updateZunchiLifecycle,
update,
});
})(typeof window !== "undefined" ? window : globalThis);