b14b60858c7287bb8f575e59a1caa8caeeaa9e0e
Граф ресурсов — тиковая симуляция (Vite + React + TypeScript)
Запуск
npm install
npm run dev
Откроется адрес вида http://localhost:5173.
Сборка
npm run build # tsc -b && vite build -> dist/
npm run preview # локальный просмотр собранного dist/
Структура
src/engine.ts— ядро симуляции: типы (SimNode,SimEdge,Behavior,Topology,Buffers), функцияtick()(один детерминированный тик) иresetBuffers(). Модуль не зависит от React/DOM — логика переносима на другой стек (Rust/C#/GDScript) по этой же спецификации.src/storage.ts— чтение/запись localStorage (incsim.topology.v1,incsim.buffers.v1,incsim.tickcount.v1).src/App.tsx— состояние приложения (topology/buffers/tickCount/selected), все обработчики мутаций, эффекты персистентности.src/components/—Topbar,WorldCanvas(холст с узлами и SVG-связями),NodeCard(перетаскиваемая карточка узла),EdgeLines(SVG-стрелки),Sidebar,NodeEditor,EdgeEditor,RecipeEditor.
Модель
- Storage — пассивный буфер с ёмкостью.
- Converter — единственный активный узел: раз в
periodтиков атомарно списываетinputsи начисляетoutputsв собственном буфере.source/consumer— его частные случаи с пустым списком входов/выходов. - Edge — перенос ресурса между буферами узлов; конкуренция при
fan-in/fan-out разрешается по
priority(выше — раньше), порядок обработки узлов/рёбер фиксирован — тик полностью детерминирован.
Reset обнуляет буферы и таймеры конвертеров, настройки узлов/связей не трогает.
Languages
TypeScript
83.6%
CSS
15.1%
HTML
1.3%