Project Structure

1 minute read

HyPrism/
├── Program.cs                  # Entry point: Console → Electron bootstrap
├── Bootstrapper.cs             # DI container setup
├── HyPrism.csproj              # Project file with MSBuild pipeline
├── HyPrism.sln                 # Solution file
│
├── Frontend/                   # React SPA (Vite + TypeScript)
│   ├── src/
│   │   ├── components/         # Reusable React components
│   │   │   ├── modals/         # Modal dialogs (Settings, OnboardingModal, etc.)
│   │   │   ├── ProfileEditor.tsx  # Profile management UI
│   │   │   └── ...
│   │   ├── pages/              # Route-level page components
│   │   │   ├── DashboardPage.tsx  # Main dashboard (game launch)
│   │   │   ├── NewsPage.tsx       # News feed page
│   │   │   ├── InstancesPage.tsx  # Game instances manager
│   │   │   └── ModsPage.tsx       # Mod browser/manager
│   │   ├── contexts/           # React Context providers
│   │   │   └── AccentColorContext.tsx  # Theme accent color
│   │   ├── lib/                # Utilities
│   │   │   └── ipc.ts          # AUTO-GENERATED IPC bridge (do not edit)
│   │   ├── assets/             # Frontend static assets
│   │   │   ├── locales/        # JSON localization files (12 languages)
│   │   │   ├── images/         # Images and icons
│   │   │   └── backgrounds/    # Dashboard backgrounds
│   │   ├── App.tsx             # Root component with routing
│   │   ├── main.tsx            # React entry point
│   │   └── index.css           # Global styles + Tailwind
│   ├── index.html              # Vite entry HTML
│   ├── vite.config.ts          # Vite config (Tailwind, base: './')
│   ├── tsconfig*.json          # TypeScript configs
│   └── package.json            # Frontend dependencies
│
├── Services/                   # .NET Service Layer
│   ├── Core/                   # Infrastructure services
│   │   ├── App/                # Application services (Config, Settings, Update)
│   │   ├── Infrastructure/     # Logger, ConfigService, LocalizationService
│   │   ├── Integration/        # External integrations (Discord RPC)
│   │   ├── Ipc/                # IpcService - Central IPC channel registry
│   │   └── Platform/           # Platform-specific utilities
│   ├── Game/                   # Game logic services
│   │   ├── Instance/           # Instance management (InstanceService)
│   │   ├── Launch/             # Game launching (GameSessionService)
│   │   ├── Download/           # Download management
│   │   ├── Mod/                # Mod management
│   │   ├── Auth/               # Hytale authentication
│   │   ├── Butler/             # Butler patching tool
│   │   └── Version/            # Version management
│   └── User/                   # User-related services
│       ├── ProfileService.cs   # Player profiles (nick, UUID)
│       ├── SkinService.cs      # Skin management and backup
│       └── HytaleAuthService.cs # Hytale account authentication
│
├── Models/                     # Data models (POCOs)
│   ├── Config.cs               # Configuration model
│   ├── Profile.cs              # Player profile model
│   ├── InstanceMeta.cs         # Instance metadata
│   └── ...
│
├── Scripts/                    # Build and utility scripts
│   ├── generate-ipc.mjs        # IPC codegen: C# annotations → ipc.ts
│   └── publish.sh              # Build script
│
├── Properties/                 # Build/package metadata and platform assets
│   ├── linux/                  # Linux metainfo + flatpak metadata
│   ├── macos/                  # macOS Info.plist and assets
│   └── windows/                # Windows icon/assets
│
├── Docs/                       # Documentation
│   ├── English/                # English documentation
│   └── Russian/                # Russian documentation
│
└── wwwroot/                    # Compiled frontend (generated by build)
    ├── index.html              # Production entry point
    └── assets/                 # Compiled JS/CSS bundles

Important Notes