Project Architecture - Yhzan95/GettingUpModdingTool GitHub Wiki

Project Architecture

The main application project is located under: src/GettingUpModTool/

Core

Core/Formats

Contains readers and parsers for supported game formats, including:

  • MSH
  • ST
  • BNM
  • MTM
  • GAT
  • BAN

Core/Animation

Handles skeleton binding and BNM animation playback.

This includes functionality related to animation compatibility and skeletal animation preview.

Core/Game

Handles game-related functionality such as:

  • Game installation detection
  • Asset indexing
  • Resource compatibility data

Core/IO

Contains exporters and other technical I/O functionality, including:

  • OBJ
  • glTF
  • GLB
  • PNG
  • Hex dump

Core/Models

Contains internal data models used by the application, including:

  • Mesh data
  • Skeleton data
  • Material data

UI

Themes

Contains UI resources for the application theme, including:

  • Colors
  • Controls
  • Scrollbars
  • Tooltips

MainWindow.*.cs

Main-window logic is split by feature to keep individual components manageable.

Examples include:

  • Library
  • Viewer
  • Export

Browser windows

Dedicated windows are used for browsing specific types of game resources.

Examples include:

  • Character Browser
  • Object Browser
  • Texture Browser

Localization

The user interface currently supports:

  • English
  • French
  • Russian
  • Spanish

Translation entries and templates are maintained in the localization source files.

Development guidelines

When adding new functionality:

  • Keep game-format parsing inside Core/Formats.
  • Keep shared data structures inside Core/Models.
  • Keep file and export operations inside Core/IO.
  • Keep animation-specific functionality inside Core/Animation.
  • Keep UI-specific functionality inside the UI layer.

This separation helps keep format parsing, application logic and the user interface independent.

Related pages