let configCache = null; | |
export const defaultConfig = { | |
initialAngularSpeed: 2.0, // Doubled for better initial motion | |
angularAcceleration: 0.02, // Adjusted for picometer scale | |
radius: 150, // 150 picometers radius | |
squareSize: 20, // 20 picometers square size | |
terminal: { | |
margin: 2, | |
panelMargin: 2, // Reduced from 5 to 2 for top margin | |
panelPadding: 5, // Padding inside the panel for content | |
scrollBarWidth: 16, // doubled from 8 | |
scrollBarMargin: 4, | |
scrollThumbMinHeight: 30, | |
cursorBlinkRate: 0.5, | |
opacity: 0.88, | |
font: '14px "Courier New", Courier, monospace', | |
lineHeight: 18, | |
animationSpeed: 0.3, // seconds | |
heightRatio: 0.33, // 1/3 of screen height | |
panelMarginY: 5, // new setting for top/bottom margin | |
scrollBottomMargin: 20, // new setting for bottom scroll margin | |
panelMarginBottom: 5, // Keep 5px margin for bottom | |
}, | |
camera: { | |
moveSpeed: 10, | |
moveLerpFactor: 0.1, // Lower = smoother, higher = more responsive | |
zoomSpeed: 0.1, | |
zoomLerpFactor: 0.1 | |
}, | |
debug: { | |
showBoundingBoxes: true, | |
showGrid: false, | |
showFPS: true, | |
showColliders: false | |
}, | |
controls: { | |
inverted: false // When true, WASD controls are inverted | |
} | |
}; | |
export function mergeConfig(userConfig) { | |
configCache = { ...defaultConfig, ...userConfig }; | |
return configCache; | |
} | |
export function getConfig() { | |
return configCache; | |
} | |
export function getDefaultConfig() { | |
return { ...defaultConfig }; | |
} | |