Spread state context architecture (Fixes #18) (#30)
CI / build-and-test (push) Canceled after 0s

Reviewed-on: #30
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #30.
This commit is contained in:
2026-09-15 17:59:03 +00:00
committed by EIREXE
parent 43a04e9491
commit b8b65e60e9
15 changed files with 384 additions and 302 deletions
+11 -6
View File
@@ -1,9 +1,10 @@
//! Resolving an integrated fighter position against the stage.
use crate::fighter::state::FighterStateContext;
use crate::fighter::ecb::FighterPreviousECB;
use crate::fighter::{FighterECB, FighterPreviousTranslation, FighterTranslation};
use crate::math::segment::FGSegment2d;
use crate::math::vec::FGVec2;
use crate::stage::line::StageLineID;
use crate::stage::line::{StageCollision, StageLineID};
/*
pub fn collide_fighter_with_scene(
fighters: Query<(&FighterECB, &mut FighterVelocity, &mut FighterTranslation)>,
@@ -38,16 +39,20 @@ pub struct AirCollisionWithStageResult {
}
pub fn air_collide_with_stage(
state_context: &FighterStateContext,
prev_translation: &FighterPreviousTranslation,
translation: &FighterTranslation,
prev_ecb: &FighterPreviousECB,
ecb: &FighterECB,
stage_collision: &StageCollision,
) -> Option<AirCollisionWithStageResult> {
let ray_segment = FGSegment2d::new(
state_context.prev_translation.0 + state_context.prev_ecb.get_bottom_point(),
state_context.translation.0 + state_context.ecb.get_bottom_point(),
prev_translation.0 + prev_ecb.get_bottom_point(),
translation.0 + ecb.get_bottom_point(),
);
let mut intersect_results = vec![];
for (poly_idx, poly) in state_context.stage_collision.stage_polys.iter().enumerate() {
for (poly_idx, poly) in stage_collision.stage_polys.iter().enumerate() {
if let Some(intersect_result) = poly.intersect_ray(ray_segment) {
intersect_results.push((
AirCollisionWithStageResult {