- Create centralized logger module (src/core/logger.ts) - Replace all debugLog() calls with log.debug() - Replace console.log() with log.info() - Replace console.warn() with log.warn() - Replace console.error() with log.error() - Delete deprecated src/core/debug.ts - Configure log levels: debug for dev, warn for production - Add localStorage override for production debugging 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
73 lines
1.8 KiB
TypeScript
73 lines
1.8 KiB
TypeScript
import { writable, get } from 'svelte/store';
|
|
import log from '../core/logger';
|
|
|
|
const STORAGE_KEY = 'game-config';
|
|
|
|
interface GameConfigData {
|
|
physicsEnabled: boolean;
|
|
debugEnabled: boolean;
|
|
progressionEnabled: boolean;
|
|
shipPhysics: {
|
|
maxLinearVelocity: number;
|
|
maxAngularVelocity: number;
|
|
linearForceMultiplier: number;
|
|
angularForceMultiplier: number;
|
|
};
|
|
}
|
|
|
|
const defaultConfig: GameConfigData = {
|
|
physicsEnabled: true,
|
|
debugEnabled: false,
|
|
progressionEnabled: true,
|
|
shipPhysics: {
|
|
maxLinearVelocity: 200,
|
|
maxAngularVelocity: 1.4,
|
|
linearForceMultiplier: 800,
|
|
angularForceMultiplier: 15,
|
|
},
|
|
};
|
|
|
|
function loadFromStorage(): GameConfigData {
|
|
try {
|
|
const stored = localStorage.getItem(STORAGE_KEY);
|
|
if (stored) {
|
|
const parsed = JSON.parse(stored);
|
|
return { ...defaultConfig, ...parsed };
|
|
}
|
|
} catch (error) {
|
|
log.warn('[GameConfig Store] Failed to load from localStorage:', error);
|
|
}
|
|
return { ...defaultConfig };
|
|
}
|
|
|
|
function createGameConfigStore() {
|
|
const initial = loadFromStorage();
|
|
const { subscribe, set, update } = writable<GameConfigData>(initial);
|
|
|
|
return {
|
|
subscribe,
|
|
update,
|
|
set,
|
|
save: () => {
|
|
const config = get(gameConfigStore);
|
|
try {
|
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(config));
|
|
log.info('[GameConfig Store] Saved to localStorage');
|
|
} catch (error) {
|
|
log.error('[GameConfig Store] Failed to save:', error);
|
|
}
|
|
},
|
|
reset: () => {
|
|
set({ ...defaultConfig });
|
|
try {
|
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(defaultConfig));
|
|
log.info('[GameConfig Store] Reset to defaults');
|
|
} catch (error) {
|
|
log.error('[GameConfig Store] Failed to save defaults:', error);
|
|
}
|
|
},
|
|
};
|
|
}
|
|
|
|
export const gameConfigStore = createGameConfigStore();
|