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:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user