File size: 1,686 Bytes
7ffaa9e
7b453e7
7ffaa9e
7e312e3
 
 
 
7b453e7
 
7e312e3
 
 
7b453e7
 
 
 
 
 
 
 
7e312e3
 
 
7ffaa9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7b453e7
 
 
 
7ffaa9e
 
 
 
 
 
 
 
 
 
7b453e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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 };
}