WIP
This commit is contained in:
parent
34ac200437
commit
39b0160064
136 changed files with 7144 additions and 1965 deletions
|
|
@ -1,54 +1,38 @@
|
|||
import { GameLoopSettings } from './game-loop/game-loop-settings';
|
||||
import { AgentSettings } from './pipelines/agents/agent-settings';
|
||||
import { BrushSettings } from './pipelines/brush/brush-settings';
|
||||
import { DiffusionSettings } from './pipelines/diffusion/diffusion-settings';
|
||||
import { RenderSettings } from './pipelines/render/render-settings';
|
||||
import { persist } from './utils/persist';
|
||||
import { appConfig, type GardenRuntimeSettings } from './config';
|
||||
import { getInitialVibe, VIBE_PRESETS, type VibePreset } from './vibes';
|
||||
|
||||
const initialValues: GameLoopSettings &
|
||||
AgentSettings &
|
||||
BrushSettings &
|
||||
DiffusionSettings &
|
||||
RenderSettings = {
|
||||
agentCount: 1_001_500,
|
||||
const buildInitialValues = (vibe: VibePreset): GardenRuntimeSettings => ({
|
||||
...appConfig.runtimeSettings.defaults,
|
||||
...vibe.settings,
|
||||
});
|
||||
|
||||
currentGenerationAggression: -5,
|
||||
nextGenerationAggression: 0.2,
|
||||
export let activeVibe = getInitialVibe();
|
||||
|
||||
moveSpeed: 74,
|
||||
turnSpeed: 45,
|
||||
sensorOffsetAngle: 31,
|
||||
sensorOffsetDistance: 43,
|
||||
turnWhenLost: 0.01,
|
||||
|
||||
brushTrailWeight: 500,
|
||||
individualTrailWeight: 0.05,
|
||||
|
||||
diffusionRateTrails: 0,
|
||||
decayRateTrails: 944,
|
||||
diffusionRateBrush: 0.35,
|
||||
decayRateBrush: 18,
|
||||
|
||||
clarity: 0.7,
|
||||
brushSize: 12,
|
||||
|
||||
brushSizeVariation: 0.5, // hidden on the UI
|
||||
|
||||
startColorHue: 200,
|
||||
|
||||
maxAgentCountUpperLimit: Number.POSITIVE_INFINITY, // requires restart
|
||||
|
||||
// debug options
|
||||
renderSpeed: 1,
|
||||
simulatedDelayMs: 0,
|
||||
export const settings: { [key: string]: number } & GardenRuntimeSettings = {
|
||||
...buildInitialValues(activeVibe),
|
||||
};
|
||||
|
||||
export const settings: { [key: string]: number } & GameLoopSettings &
|
||||
AgentSettings &
|
||||
BrushSettings &
|
||||
DiffusionSettings &
|
||||
RenderSettings = persist({ ...initialValues });
|
||||
|
||||
export const resetSettings = () => {
|
||||
Object.assign(settings, initialValues);
|
||||
Object.assign(settings, buildInitialValues(activeVibe));
|
||||
};
|
||||
|
||||
export const applyVibeSettings = (vibeId: string) => {
|
||||
const vibe = VIBE_PRESETS.find((candidate) => candidate.id === vibeId);
|
||||
if (!vibe) {
|
||||
return activeVibe;
|
||||
}
|
||||
|
||||
activeVibe = vibe;
|
||||
Object.assign(settings, {
|
||||
...buildInitialValues(vibe),
|
||||
agentCount: settings.agentCount,
|
||||
brushEffectDuration: settings.brushEffectDuration,
|
||||
eraserSize: settings.eraserSize,
|
||||
mirrorSegmentCount: settings.mirrorSegmentCount,
|
||||
selectedColorIndex: Math.min(settings.selectedColorIndex, vibe.colors.length - 1),
|
||||
});
|
||||
|
||||
localStorage.setItem(appConfig.storage.vibeKey, vibe.id);
|
||||
|
||||
return activeVibe;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue