Fix processed RON assets being ignored (#48)
CI / build-and-test (push) Successful in 1m9s
CI / production-build (push) Canceled after 10m37s

## Summary
- share custom RON asset loaders between the game and asset processor
- register image, font, and glTF loaders in the headless processor
- prevent `game_settings.ron` and `game.stylesheet.ron` from receiving ignored processed metadata

Reviewed-on: #48
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #48.
This commit is contained in:
2026-09-19 18:09:40 +00:00
committed by EIREXE
parent de5d8eb030
commit ab6aec70c5
3 changed files with 30 additions and 10 deletions
+25 -6
View File
@@ -32,7 +32,13 @@ use clap::Parser;
use ron_asset_manager::RonAssetPlugin;
use crate::{
camera::MatchCameraPlugin, fighter::manifest::FighterManifest, game_settings::GameSettings, schedule::GameplaySchedulePlugin, stage::manifest::StageManifest, ui::InGameUIPlugin,
camera::MatchCameraPlugin,
fighter::manifest::FighterManifest,
game_settings::GameSettings,
menus::style::FGUiStyle,
schedule::GameplaySchedulePlugin,
stage::manifest::StageManifest,
ui::InGameUIPlugin,
};
mod args;
@@ -80,6 +86,20 @@ pub enum AppState {
#[derive(Default)]
pub struct GamePlugin;
/// Registers every custom asset loader used by the game and asset processor.
pub struct GameAssetPlugin;
impl Plugin for GameAssetPlugin {
fn build(&self, app: &mut App) {
app.add_plugins((
RonAssetPlugin::<FighterManifest>::create("fighter.ron"),
RonAssetPlugin::<StageManifest>::create("stage.ron"),
RonAssetPlugin::<GameSettings>::create("ron"),
RonAssetPlugin::<FGUiStyle>::create("stylesheet.ron"),
));
}
}
impl Plugin for GamePlugin {
fn build(&self, app: &mut App) {
// Each module owns its own systems, rollback registrations and
@@ -99,9 +119,7 @@ impl Plugin for GamePlugin {
scripting::importer::FighterScriptImportPlugin,
stage::StagePlugin,
MatchCameraPlugin,
RonAssetPlugin::<FighterManifest>::create("fighter.ron"),
RonAssetPlugin::<StageManifest>::create("stage.ron"),
RonAssetPlugin::<GameSettings>::create("ron"),
GameAssetPlugin,
InGameUIPlugin,
))
.add_plugins(menus::MenuPlugin)
@@ -155,13 +173,14 @@ impl Plugin for GamePlugin {
}
}
/// Registers only the custom asset processors used by CI and release builds.
/// The processing binary adds this plugin without starting the game.
/// Registers the custom asset loaders and processors used by CI and release
/// builds. The processing binary adds this plugin without starting the game.
pub struct AssetProcessingPlugin;
impl Plugin for AssetProcessingPlugin {
fn build(&self, app: &mut App) {
app.add_plugins((
GameAssetPlugin,
scripting::importer::FighterScriptImportPlugin,
fighter::baked_animation::BakedAnimationAssetProcessingPlugin,
));