diff --git a/package.json b/package.json index fd02a89..1f829e0 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "@babylonjs/procedural-textures": "8.36.1", "@babylonjs/serializers": "8.36.1", "openai": "4.52.3" - }, +}, "devDependencies": { "@types/node": "^20.0.0", "tsx": "^4.7.1", diff --git a/src/debug.ts b/src/core/debug.ts similarity index 100% rename from src/debug.ts rename to src/core/debug.ts diff --git a/src/defaultScene.ts b/src/core/defaultScene.ts similarity index 100% rename from src/defaultScene.ts rename to src/core/defaultScene.ts diff --git a/src/gameConfig.ts b/src/core/gameConfig.ts similarity index 100% rename from src/gameConfig.ts rename to src/core/gameConfig.ts diff --git a/src/router.ts b/src/core/router.ts similarity index 100% rename from src/router.ts rename to src/core/router.ts diff --git a/src/explosionManager.ts b/src/environment/asteroids/explosionManager.ts similarity index 98% rename from src/explosionManager.ts rename to src/environment/asteroids/explosionManager.ts index 81528ab..8133b36 100644 --- a/src/explosionManager.ts +++ b/src/environment/asteroids/explosionManager.ts @@ -1,14 +1,12 @@ import { AbstractMesh, - Animation, Color3, Mesh, MeshBuilder, MeshExploder, Scene, - Vector3, - VertexData + Vector3 } from "@babylonjs/core"; -import {DefaultScene} from "./defaultScene"; -import debugLog from './debug'; +import {DefaultScene} from "../../core/defaultScene"; +import debugLog from '../../core/debug'; /** * Configuration for explosion effects @@ -77,6 +75,7 @@ export class ExplosionManager { } // Create sphere debris scattered around the original mesh position + debugLog(baseScale); const avgScale = (baseScale.x + baseScale.y + baseScale.z) / 3; const debrisSize = avgScale * 0.3; // Size relative to asteroid diff --git a/src/rockFactory.ts b/src/environment/asteroids/rockFactory.ts similarity index 97% rename from src/rockFactory.ts rename to src/environment/asteroids/rockFactory.ts index 8b76009..8d6e984 100644 --- a/src/rockFactory.ts +++ b/src/environment/asteroids/rockFactory.ts @@ -13,12 +13,12 @@ import { TransformNode, Vector3 } from "@babylonjs/core"; -import {DefaultScene} from "./defaultScene"; -import {ScoreEvent} from "./scoreboard"; -import {GameConfig} from "./gameConfig"; +import {DefaultScene} from "../../core/defaultScene"; +import {ScoreEvent} from "../../ui/hud/scoreboard"; +import {GameConfig} from "../../core/gameConfig"; import {ExplosionManager} from "./explosionManager"; -import debugLog from './debug'; -import loadAsset from "./utils/loadAsset"; +import debugLog from '../../core/debug'; +import loadAsset from "../../utils/loadAsset"; export class Rock { private _rockMesh: AbstractMesh; diff --git a/src/backgroundStars.ts b/src/environment/background/backgroundStars.ts similarity index 99% rename from src/backgroundStars.ts rename to src/environment/background/backgroundStars.ts index 1e1b40a..dac85f7 100644 --- a/src/backgroundStars.ts +++ b/src/environment/background/backgroundStars.ts @@ -1,5 +1,5 @@ import {Color3, Color4, PointsCloudSystem, Scene, StandardMaterial, Vector3} from "@babylonjs/core"; -import debugLog from './debug'; +import debugLog from '../../core/debug'; /** * Configuration options for background stars diff --git a/src/mirror.ts b/src/environment/background/mirror.ts similarity index 95% rename from src/mirror.ts rename to src/environment/background/mirror.ts index b343ec6..3a344dd 100644 --- a/src/mirror.ts +++ b/src/environment/background/mirror.ts @@ -1,5 +1,5 @@ import {FreeCamera, MeshBuilder, RenderTargetTexture, StandardMaterial, TransformNode, Vector3} from "@babylonjs/core"; -import {DefaultScene} from "./defaultScene"; +import {DefaultScene} from "../../core/defaultScene"; export class Mirror { constructor(ship: TransformNode) { diff --git a/src/radar.ts b/src/environment/background/radar.ts similarity index 98% rename from src/radar.ts rename to src/environment/background/radar.ts index 1513e13..966bb4a 100644 --- a/src/radar.ts +++ b/src/environment/background/radar.ts @@ -1,4 +1,4 @@ -import {DefaultScene} from "./defaultScene"; +import {DefaultScene} from "../../core/defaultScene"; import { AbstractMesh, Color3, diff --git a/src/createPlanets.ts b/src/environment/celestial/createPlanets.ts similarity index 98% rename from src/createPlanets.ts rename to src/environment/celestial/createPlanets.ts index 5e948d2..dc269fb 100644 --- a/src/createPlanets.ts +++ b/src/environment/celestial/createPlanets.ts @@ -5,9 +5,9 @@ import { Texture, Vector3 } from "@babylonjs/core"; -import { DefaultScene } from "./defaultScene"; +import { DefaultScene } from "../../core/defaultScene"; import { getRandomPlanetTexture } from "./planetTextures"; -import debugLog from './debug'; +import debugLog from '../../core/debug'; /** * Creates multiple planets with random textures, sizes, and positions diff --git a/src/createSun.ts b/src/environment/celestial/createSun.ts similarity index 97% rename from src/createSun.ts rename to src/environment/celestial/createSun.ts index b0d5687..8d012a9 100644 --- a/src/createSun.ts +++ b/src/environment/celestial/createSun.ts @@ -9,7 +9,7 @@ import { StandardMaterial, Texture, Vector3 } from "@babylonjs/core"; -import {DefaultScene} from "./defaultScene"; +import {DefaultScene} from "../../core/defaultScene"; import {FireProceduralTexture} from "@babylonjs/procedural-textures"; export function createSun() : AbstractMesh { diff --git a/src/planetTextures.ts b/src/environment/celestial/planetTextures.ts similarity index 100% rename from src/planetTextures.ts rename to src/environment/celestial/planetTextures.ts diff --git a/src/sphereLightmap.ts b/src/environment/celestial/sphereLightmap.ts similarity index 100% rename from src/sphereLightmap.ts rename to src/environment/celestial/sphereLightmap.ts diff --git a/src/starBase.ts b/src/environment/stations/starBase.ts similarity index 92% rename from src/starBase.ts rename to src/environment/stations/starBase.ts index 98ac583..eae923d 100644 --- a/src/starBase.ts +++ b/src/environment/stations/starBase.ts @@ -6,11 +6,11 @@ import { PhysicsShapeType, Vector3 } from "@babylonjs/core"; -import {DefaultScene} from "./defaultScene"; -import {GameConfig} from "./gameConfig"; -import debugLog from "./debug"; -import loadAsset from "./utils/loadAsset"; -import {Vector3Array} from "./levelConfig"; +import {DefaultScene} from "../../core/defaultScene"; +import {GameConfig} from "../../core/gameConfig"; +import debugLog from "../../core/debug"; +import loadAsset from "../../utils/loadAsset"; +import {Vector3Array} from "../../levels/config/levelConfig"; export interface StarBaseResult { baseMesh: AbstractMesh; diff --git a/src/demo.ts b/src/game/demo.ts similarity index 86% rename from src/demo.ts rename to src/game/demo.ts index e0ed967..0708728 100644 --- a/src/demo.ts +++ b/src/game/demo.ts @@ -1,6 +1,6 @@ -import {DefaultScene} from "./defaultScene"; +import {DefaultScene} from "../core/defaultScene"; import {ArcRotateCamera, MeshBuilder, PointerEventTypes, Vector3} from "@babylonjs/core"; -import {Main} from "./main"; +import {Main} from "../main"; export default class Demo { private _main: Main; diff --git a/src/gameStats.ts b/src/game/gameStats.ts similarity index 100% rename from src/gameStats.ts rename to src/game/gameStats.ts diff --git a/src/progression.ts b/src/game/progression.ts similarity index 100% rename from src/progression.ts rename to src/game/progression.ts diff --git a/src/levelConfig.ts b/src/levels/config/levelConfig.ts similarity index 100% rename from src/levelConfig.ts rename to src/levels/config/levelConfig.ts diff --git a/src/levelDeserializer.ts b/src/levels/config/levelDeserializer.ts similarity index 95% rename from src/levelDeserializer.ts rename to src/levels/config/levelDeserializer.ts index ab9418b..d3213e1 100644 --- a/src/levelDeserializer.ts +++ b/src/levels/config/levelDeserializer.ts @@ -8,9 +8,9 @@ import { Texture, Vector3, } from "@babylonjs/core"; -import { DefaultScene } from "./defaultScene"; -import { RockFactory } from "./rockFactory"; -import { ScoreEvent } from "./scoreboard"; +import { DefaultScene } from "../../core/defaultScene"; +import { RockFactory } from "../../environment/asteroids/rockFactory"; +import { ScoreEvent } from "../../ui/hud/scoreboard"; import { LevelConfig, ShipConfig, @@ -18,9 +18,9 @@ import { validateLevelConfig } from "./levelConfig"; import { FireProceduralTexture } from "@babylonjs/procedural-textures"; -import { createSphereLightmap } from "./sphereLightmap"; -import debugLog from './debug'; -import StarBase from "./starBase"; +import { createSphereLightmap } from "../../environment/celestial/sphereLightmap"; +import debugLog from '../../core/debug'; +import StarBase from "../../environment/stations/starBase"; /** * Deserializes a LevelConfig JSON object and creates all entities in the scene diff --git a/src/levelSerializer.ts b/src/levels/config/levelSerializer.ts similarity index 99% rename from src/levelSerializer.ts rename to src/levels/config/levelSerializer.ts index 75a6c00..7ef4ded 100644 --- a/src/levelSerializer.ts +++ b/src/levels/config/levelSerializer.ts @@ -1,5 +1,5 @@ import { Vector3, Quaternion, Material, PBRMaterial, StandardMaterial, AbstractMesh, TransformNode } from "@babylonjs/core"; -import { DefaultScene } from "./defaultScene"; +import { DefaultScene } from "../../core/defaultScene"; import { LevelConfig, ShipConfig, @@ -13,7 +13,7 @@ import { MaterialConfig, SceneNodeConfig } from "./levelConfig"; -import debugLog from './debug'; +import debugLog from '../../core/debug'; /** * Serializes the current runtime state of a level to JSON configuration diff --git a/src/levelEditor.ts b/src/levels/generation/levelEditor.ts similarity index 99% rename from src/levelEditor.ts rename to src/levels/generation/levelEditor.ts index 1742f8d..fdd9ead 100644 --- a/src/levelEditor.ts +++ b/src/levels/generation/levelEditor.ts @@ -1,6 +1,6 @@ import { LevelGenerator } from "./levelGenerator"; -import { LevelConfig, DifficultyConfig, validateLevelConfig, Vector3Array } from "./levelConfig"; -import debugLog from './debug'; +import { LevelConfig, DifficultyConfig, validateLevelConfig, Vector3Array } from "../config/levelConfig"; +import debugLog from '../../core/debug'; const STORAGE_KEY = 'space-game-levels'; diff --git a/src/levelGenerator.ts b/src/levels/generation/levelGenerator.ts similarity index 98% rename from src/levelGenerator.ts rename to src/levels/generation/levelGenerator.ts index 8446583..e393ec2 100644 --- a/src/levelGenerator.ts +++ b/src/levels/generation/levelGenerator.ts @@ -7,8 +7,8 @@ import { AsteroidConfig, DifficultyConfig, Vector3Array -} from "./levelConfig"; -import { getRandomPlanetTexture } from "./planetTextures"; +} from "../config/levelConfig"; +import { getRandomPlanetTexture } from "../../environment/celestial/planetTextures"; /** * Generates procedural level configurations matching the current Level1 generation logic diff --git a/src/level.ts b/src/levels/level.ts similarity index 100% rename from src/level.ts rename to src/levels/level.ts diff --git a/src/level1.ts b/src/levels/level1.ts similarity index 96% rename from src/level1.ts rename to src/levels/level1.ts index 9bbb5da..b71c55c 100644 --- a/src/level1.ts +++ b/src/levels/level1.ts @@ -1,4 +1,4 @@ -import {DefaultScene} from "./defaultScene"; +import {DefaultScene} from "../core/defaultScene"; import type {AudioEngineV2, StaticSound} from "@babylonjs/core"; import { AbstractMesh, @@ -7,14 +7,14 @@ import { Vector3, WebXRState } from "@babylonjs/core"; -import {Ship} from "./ship"; +import {Ship} from "../ship/ship"; import Level from "./level"; -import setLoadingMessage from "./setLoadingMessage"; -import {LevelConfig} from "./levelConfig"; -import {LevelDeserializer} from "./levelDeserializer"; -import {BackgroundStars} from "./backgroundStars"; -import debugLog from './debug'; -import {PhysicsRecorder} from "./physicsRecorder"; +import setLoadingMessage from "../utils/setLoadingMessage"; +import {LevelConfig} from "./config/levelConfig"; +import {LevelDeserializer} from "./config/levelDeserializer"; +import {BackgroundStars} from "../environment/background/backgroundStars"; +import debugLog from '../core/debug'; +import {PhysicsRecorder} from "../replay/recording/physicsRecorder"; export class Level1 implements Level { private _ship: Ship; diff --git a/src/testLevel.ts b/src/levels/testLevel.ts similarity index 98% rename from src/testLevel.ts rename to src/levels/testLevel.ts index 47fd6e2..bf7e922 100644 --- a/src/testLevel.ts +++ b/src/levels/testLevel.ts @@ -1,4 +1,4 @@ -import { DefaultScene } from "./defaultScene"; +import { DefaultScene } from "../core/defaultScene"; import { Color3, DirectionalLight, @@ -9,7 +9,7 @@ import { } from "@babylonjs/core"; import type { AudioEngineV2 } from "@babylonjs/core"; import Level from "./level"; -import debugLog from './debug'; +import debugLog from '../core/debug'; /** * Minimal test level with just a box and a light for debugging diff --git a/src/levelSelector.ts b/src/levels/ui/levelSelector.ts similarity index 96% rename from src/levelSelector.ts rename to src/levels/ui/levelSelector.ts index 4561d7d..98f46a2 100644 --- a/src/levelSelector.ts +++ b/src/levels/ui/levelSelector.ts @@ -1,9 +1,9 @@ -import { getSavedLevels } from "./levelEditor"; -import { LevelConfig } from "./levelConfig"; -import { ProgressionManager } from "./progression"; -import { GameConfig } from "./gameConfig"; -import { AuthService } from "./authService"; -import debugLog from './debug'; +import { getSavedLevels } from "../generation/levelEditor"; +import { LevelConfig } from "../config/levelConfig"; +import { ProgressionManager } from "../../game/progression"; +import { GameConfig } from "../../core/gameConfig"; +import { AuthService } from "../../services/authService"; +import debugLog from '../../core/debug'; const SELECTED_LEVEL_KEY = 'space-game-selected-level'; diff --git a/src/main.ts b/src/main.ts index 08ae428..1fbb13d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -14,25 +14,25 @@ import { import '@babylonjs/loaders'; import HavokPhysics from "@babylonjs/havok"; -import {DefaultScene} from "./defaultScene"; -import {Level1} from "./level1"; -import {TestLevel} from "./testLevel"; -import Demo from "./demo"; -import Level from "./level"; -import setLoadingMessage from "./setLoadingMessage"; -import {RockFactory} from "./rockFactory"; -import {ControllerDebug} from "./controllerDebug"; -import {router, showView} from "./router"; -import {populateLevelSelector} from "./levelSelector"; -import {LevelConfig} from "./levelConfig"; -import {generateDefaultLevels} from "./levelEditor"; -import debugLog from './debug'; +import {DefaultScene} from "./core/defaultScene"; +import {Level1} from "./levels/level1"; +import {TestLevel} from "./levels/testLevel"; +import Demo from "./game/demo"; +import Level from "./levels/level"; +import setLoadingMessage from "./utils/setLoadingMessage"; +import {RockFactory} from "./environment/asteroids/rockFactory"; +import {ControllerDebug} from "./utils/controllerDebug"; +import {router, showView} from "./core/router"; +import {populateLevelSelector} from "./levels/ui/levelSelector"; +import {LevelConfig} from "./levels/config/levelConfig"; +import {generateDefaultLevels} from "./levels/generation/levelEditor"; +import debugLog from './core/debug'; import {ReplaySelectionScreen} from "./replay/ReplaySelectionScreen"; import {ReplayManager} from "./replay/ReplayManager"; -import {AuthService} from "./authService"; -import {updateUserProfile} from "./loginScreen"; -import {Preloader} from "./preloader"; -import {DiscordWidget} from "./discordWidget"; +import {AuthService} from "./services/authService"; +import {updateUserProfile} from "./ui/screens/loginScreen"; +import {Preloader} from "./ui/screens/preloader"; +import {DiscordWidget} from "./ui/widgets/discordWidget"; // Set to true to run minimal controller debug test const DEBUG_CONTROLLERS = false; @@ -654,7 +654,7 @@ router.on('/editor', () => { showView('editor'); // Dynamically import and initialize editor if (!(window as any).__editorInitialized) { - import('./levelEditor').then(() => { + import('./levels/generation/levelEditor').then(() => { (window as any).__editorInitialized = true; }); } @@ -664,7 +664,7 @@ router.on('/settings', () => { showView('settings'); // Dynamically import and initialize settings if (!(window as any).__settingsInitialized) { - import('./settingsScreen').then((module) => { + import('./ui/screens/settingsScreen').then((module) => { module.initializeSettingsScreen(); (window as any).__settingsInitialized = true; }); diff --git a/src/replay/ReplayCamera.ts b/src/replay/ReplayCamera.ts index c7db63a..6192827 100644 --- a/src/replay/ReplayCamera.ts +++ b/src/replay/ReplayCamera.ts @@ -4,7 +4,7 @@ import { Scene, Vector3 } from "@babylonjs/core"; -import debugLog from "../debug"; +import debugLog from "../core/debug"; /** * Camera modes for replay viewing diff --git a/src/replay/ReplayControls.ts b/src/replay/ReplayControls.ts index 29783b0..6eb609e 100644 --- a/src/replay/ReplayControls.ts +++ b/src/replay/ReplayControls.ts @@ -9,7 +9,7 @@ import { } from "@babylonjs/gui"; import { ReplayPlayer } from "./ReplayPlayer"; import { CameraMode, ReplayCamera } from "./ReplayCamera"; -import debugLog from "../debug"; +import debugLog from "../core/debug"; /** * UI controls for replay playback diff --git a/src/replay/ReplayManager.ts b/src/replay/ReplayManager.ts index a27df72..603bde3 100644 --- a/src/replay/ReplayManager.ts +++ b/src/replay/ReplayManager.ts @@ -8,13 +8,13 @@ import { } from "@babylonjs/core"; import "@babylonjs/inspector"; import HavokPhysics from "@babylonjs/havok"; -import { PhysicsStorage } from "../physicsStorage"; +import { PhysicsStorage } from "./recording/physicsStorage"; import { ReplayPlayer } from "./ReplayPlayer"; import { CameraMode, ReplayCamera } from "./ReplayCamera"; import { ReplayControls } from "./ReplayControls"; -import debugLog from "../debug"; -import { DefaultScene } from "../defaultScene"; -import { Level1 } from "../level1"; +import debugLog from "../core/debug"; +import { DefaultScene } from "../core/defaultScene"; +import { Level1 } from "../levels/level1"; /** * Manages the replay scene, loading recordings, and coordinating replay components diff --git a/src/replay/ReplayPlayer.ts b/src/replay/ReplayPlayer.ts index 80fe51e..170b55a 100644 --- a/src/replay/ReplayPlayer.ts +++ b/src/replay/ReplayPlayer.ts @@ -5,8 +5,8 @@ import { Scene, Vector3 } from "@babylonjs/core"; -import { PhysicsRecording, PhysicsSnapshot } from "../physicsRecorder"; -import debugLog from "../debug"; +import { PhysicsRecording, PhysicsSnapshot } from "./recording/physicsRecorder"; +import debugLog from "../core/debug"; /** * Handles frame-by-frame playback of physics recordings diff --git a/src/replay/ReplaySelectionScreen.ts b/src/replay/ReplaySelectionScreen.ts index 8c9f906..9981d99 100644 --- a/src/replay/ReplaySelectionScreen.ts +++ b/src/replay/ReplaySelectionScreen.ts @@ -7,8 +7,8 @@ import { StackPanel, TextBlock } from "@babylonjs/gui"; -import { PhysicsStorage } from "../physicsStorage"; -import debugLog from "../debug"; +import { PhysicsStorage } from "./recording/physicsStorage"; +import debugLog from "../core/debug"; /** * Recording info for display diff --git a/src/physicsRecorder.ts b/src/replay/recording/physicsRecorder.ts similarity index 99% rename from src/physicsRecorder.ts rename to src/replay/recording/physicsRecorder.ts index c74fabb..74dfe73 100644 --- a/src/physicsRecorder.ts +++ b/src/replay/recording/physicsRecorder.ts @@ -1,7 +1,7 @@ import { Scene, Vector3, Quaternion, AbstractMesh } from "@babylonjs/core"; -import debugLog from "./debug"; +import debugLog from "../../core/debug"; import { PhysicsStorage } from "./physicsStorage"; -import { LevelConfig } from "./levelConfig"; +import { LevelConfig } from "../../levels/config/levelConfig"; /** * Represents the physics state of a single object at a point in time diff --git a/src/physicsStorage.ts b/src/replay/recording/physicsStorage.ts similarity index 99% rename from src/physicsStorage.ts rename to src/replay/recording/physicsStorage.ts index aa1bb22..757f7fe 100644 --- a/src/physicsStorage.ts +++ b/src/replay/recording/physicsStorage.ts @@ -1,5 +1,5 @@ import { PhysicsRecording, PhysicsSnapshot } from "./physicsRecorder"; -import debugLog from "./debug"; +import debugLog from "../../core/debug"; /** * IndexedDB storage for physics recordings diff --git a/src/authService.ts b/src/services/authService.ts similarity index 100% rename from src/authService.ts rename to src/services/authService.ts diff --git a/src/facebookShare.ts b/src/services/facebookShare.ts similarity index 100% rename from src/facebookShare.ts rename to src/services/facebookShare.ts diff --git a/src/controllerInput.ts b/src/ship/input/controllerInput.ts similarity index 99% rename from src/controllerInput.ts rename to src/ship/input/controllerInput.ts index f260144..e4c7cf2 100644 --- a/src/controllerInput.ts +++ b/src/ship/input/controllerInput.ts @@ -5,7 +5,7 @@ import { WebXRControllerComponent, WebXRInputSource, } from "@babylonjs/core"; -import debugLog from "./debug"; +import debugLog from "../../core/debug"; const controllerComponents = [ "a-button", diff --git a/src/keyboardInput.ts b/src/ship/input/keyboardInput.ts similarity index 100% rename from src/keyboardInput.ts rename to src/ship/input/keyboardInput.ts diff --git a/src/ship.ts b/src/ship/ship.ts similarity index 97% rename from src/ship.ts rename to src/ship/ship.ts index 2f8e125..f86d9e9 100644 --- a/src/ship.ts +++ b/src/ship/ship.ts @@ -13,20 +13,20 @@ import { WebXRInputSource, } from "@babylonjs/core"; import type { AudioEngineV2 } from "@babylonjs/core"; -import { DefaultScene } from "./defaultScene"; -import { GameConfig } from "./gameConfig"; +import { DefaultScene } from "../core/defaultScene"; +import { GameConfig } from "../core/gameConfig"; import { Sight } from "./sight"; -import debugLog from "./debug"; -import { Scoreboard } from "./scoreboard"; -import loadAsset from "./utils/loadAsset"; +import debugLog from "../core/debug"; +import { Scoreboard } from "../ui/hud/scoreboard"; +import loadAsset from "../utils/loadAsset"; import { Debug } from "@babylonjs/core/Legacy/legacy"; -import { KeyboardInput } from "./keyboardInput"; -import { ControllerInput } from "./controllerInput"; +import { KeyboardInput } from "./input/keyboardInput"; +import { ControllerInput } from "./input/controllerInput"; import { ShipPhysics } from "./shipPhysics"; import { ShipAudio } from "./shipAudio"; import { WeaponSystem } from "./weaponSystem"; -import { StatusScreen } from "./statusScreen"; -import { GameStats } from "./gameStats"; +import { StatusScreen } from "../ui/hud/statusScreen"; +import { GameStats } from "../game/gameStats"; export class Ship { private _ship: TransformNode; diff --git a/src/shipAudio.ts b/src/ship/shipAudio.ts similarity index 100% rename from src/shipAudio.ts rename to src/ship/shipAudio.ts diff --git a/src/shipEngine.ts b/src/ship/shipEngine.ts similarity index 98% rename from src/shipEngine.ts rename to src/ship/shipEngine.ts index 256977f..c0310c2 100644 --- a/src/shipEngine.ts +++ b/src/ship/shipEngine.ts @@ -7,7 +7,7 @@ import { TransformNode, Vector3 } from "@babylonjs/core"; -import {DefaultScene} from "./defaultScene"; +import {DefaultScene} from "../core/defaultScene"; type MainEngine = { transformNode: TransformNode; diff --git a/src/shipPhysics.ts b/src/ship/shipPhysics.ts similarity index 98% rename from src/shipPhysics.ts rename to src/ship/shipPhysics.ts index 4252823..179eee7 100644 --- a/src/shipPhysics.ts +++ b/src/ship/shipPhysics.ts @@ -1,7 +1,7 @@ import { PhysicsBody, TransformNode, Vector2, Vector3 } from "@babylonjs/core"; -import { GameConfig } from "./gameConfig"; +import { GameConfig } from "../core/gameConfig"; import { ShipStatus } from "./shipStatus"; -import { GameStats } from "./gameStats"; +import { GameStats } from "../game/gameStats"; export interface InputState { leftStick: Vector2; diff --git a/src/shipStatus.ts b/src/ship/shipStatus.ts similarity index 100% rename from src/shipStatus.ts rename to src/ship/shipStatus.ts diff --git a/src/sight.ts b/src/ship/sight.ts similarity index 100% rename from src/sight.ts rename to src/ship/sight.ts diff --git a/src/weaponSystem.ts b/src/ship/weaponSystem.ts similarity index 98% rename from src/weaponSystem.ts rename to src/ship/weaponSystem.ts index 0853aaa..e66628e 100644 --- a/src/weaponSystem.ts +++ b/src/ship/weaponSystem.ts @@ -12,9 +12,9 @@ import { TransformNode, Vector3, } from "@babylonjs/core"; -import { GameConfig } from "./gameConfig"; +import { GameConfig } from "../core/gameConfig"; import { ShipStatus } from "./shipStatus"; -import { GameStats } from "./gameStats"; +import { GameStats } from "../game/gameStats"; /** * Handles weapon firing and projectile lifecycle diff --git a/src/scoreboard.ts b/src/ui/hud/scoreboard.ts similarity index 98% rename from src/scoreboard.ts rename to src/ui/hud/scoreboard.ts index dcac546..e4ba067 100644 --- a/src/scoreboard.ts +++ b/src/ui/hud/scoreboard.ts @@ -1,13 +1,13 @@ import {AdvancedDynamicTexture, Control, StackPanel, TextBlock, Rectangle, Container} from "@babylonjs/gui"; -import {DefaultScene} from "./defaultScene"; +import {DefaultScene} from "../../core/defaultScene"; import { Mesh, MeshBuilder, Observable, Vector3, } from "@babylonjs/core"; -import debugLog from './debug'; -import { ShipStatus } from './shipStatus'; +import debugLog from '../../core/debug'; +import { ShipStatus } from '../../ship/shipStatus'; export type ScoreEvent = { score: number, diff --git a/src/statusScreen.ts b/src/ui/hud/statusScreen.ts similarity index 98% rename from src/statusScreen.ts rename to src/ui/hud/statusScreen.ts index b8f6303..70cc25b 100644 --- a/src/statusScreen.ts +++ b/src/ui/hud/statusScreen.ts @@ -14,11 +14,11 @@ import { StandardMaterial, Vector3 } from "@babylonjs/core"; -import { GameStats } from "./gameStats"; -import { DefaultScene } from "./defaultScene"; -import { ProgressionManager } from "./progression"; -import { AuthService } from "./authService"; -import { FacebookShare, ShareData } from "./facebookShare"; +import { GameStats } from "../../game/gameStats"; +import { DefaultScene } from "../../core/defaultScene"; +import { ProgressionManager } from "../../game/progression"; +import { AuthService } from "../../services/authService"; +import { FacebookShare, ShareData } from "../../services/facebookShare"; /** * Status screen that displays game statistics diff --git a/src/loginScreen.ts b/src/ui/screens/loginScreen.ts similarity index 98% rename from src/loginScreen.ts rename to src/ui/screens/loginScreen.ts index 197535f..d76a16f 100644 --- a/src/loginScreen.ts +++ b/src/ui/screens/loginScreen.ts @@ -1,4 +1,4 @@ -import { AuthService } from './authService'; +import { AuthService } from '../../services/authService'; /** * Creates and displays the login screen UI diff --git a/src/preloader.ts b/src/ui/screens/preloader.ts similarity index 100% rename from src/preloader.ts rename to src/ui/screens/preloader.ts diff --git a/src/settingsScreen.ts b/src/ui/screens/settingsScreen.ts similarity index 98% rename from src/settingsScreen.ts rename to src/ui/screens/settingsScreen.ts index 16b53e6..6172c4a 100644 --- a/src/settingsScreen.ts +++ b/src/ui/screens/settingsScreen.ts @@ -1,4 +1,4 @@ -import { GameConfig } from "./gameConfig"; +import { GameConfig } from "../../core/gameConfig"; /** * Initialize the settings screen diff --git a/src/discordWidget.ts b/src/ui/widgets/discordWidget.ts similarity index 100% rename from src/discordWidget.ts rename to src/ui/widgets/discordWidget.ts diff --git a/src/controllerDebug.ts b/src/utils/controllerDebug.ts similarity index 99% rename from src/controllerDebug.ts rename to src/utils/controllerDebug.ts index bbb124a..dc2762b 100644 --- a/src/controllerDebug.ts +++ b/src/utils/controllerDebug.ts @@ -7,7 +7,7 @@ import { WebXRDefaultExperience, Color3 } from "@babylonjs/core"; -import debugLog from './debug'; +import debugLog from '../core/debug'; /** * Minimal standalone class to debug WebXR controller detection diff --git a/src/utils/loadAsset.ts b/src/utils/loadAsset.ts index 39b431d..3f65d32 100644 --- a/src/utils/loadAsset.ts +++ b/src/utils/loadAsset.ts @@ -1,6 +1,6 @@ -import {DefaultScene} from "../defaultScene"; +import {DefaultScene} from "../core/defaultScene"; import {AbstractMesh, AssetContainer, LoadAssetContainerAsync} from "@babylonjs/core"; -import debugLog from "../debug"; +import debugLog from "../core/debug"; export type LoadedAsset = { container: AssetContainer, diff --git a/src/scoreEvent.ts b/src/utils/scoreEvent.ts similarity index 100% rename from src/scoreEvent.ts rename to src/utils/scoreEvent.ts diff --git a/src/setLoadingMessage.ts b/src/utils/setLoadingMessage.ts similarity index 100% rename from src/setLoadingMessage.ts rename to src/utils/setLoadingMessage.ts