diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-08-13 17:09:12 -0600 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-08-13 17:09:12 -0600 |
commit | 2dc3120831fbcd03b635bbad59213ff0bf1f8879 (patch) | |
tree | df1b6e88e8f0a9370e2cd321f52725524cc4d06d /engine/systems | |
parent | 98e795029bcc404463ed151ff5255a72498bc641 (diff) | |
download | jumpstorm-2dc3120831fbcd03b635bbad59213ff0bf1f8879.tar.gz jumpstorm-2dc3120831fbcd03b635bbad59213ff0bf1f8879.zip |
refactor velocity a bit for no real reason besides verbosity
Diffstat (limited to 'engine/systems')
-rw-r--r-- | engine/systems/Collision.ts | 8 | ||||
-rw-r--r-- | engine/systems/FacingDirection.ts | 15 | ||||
-rw-r--r-- | engine/systems/Input.ts | 12 | ||||
-rw-r--r-- | engine/systems/Physics.ts | 22 |
4 files changed, 35 insertions, 22 deletions
diff --git a/engine/systems/Collision.ts b/engine/systems/Collision.ts index 1366ef4..889f85e 100644 --- a/engine/systems/Collision.ts +++ b/engine/systems/Collision.ts @@ -10,7 +10,7 @@ import { import { Game } from "../Game"; import { PhysicsConstants } from "../config"; import { Entity } from "../entities"; -import type { Dimension2D } from "../interfaces"; +import type { Dimension2D, Velocity2D } from "../interfaces"; import { QuadTree } from "../structures"; export class Collision extends System { @@ -91,9 +91,11 @@ export class Collision extends System { (entity) => entity.getComponent<BoundingBox>(ComponentNames.BoundingBox), ); - let velocity = new Velocity(); + let velocity: Velocity2D = { dCartesian: { dx: 0, dy: 0 }, dTheta: 0 }; if (entityA.hasComponent(ComponentNames.Velocity)) { - velocity = entityA.getComponent<Velocity>(ComponentNames.Velocity); + velocity = entityA.getComponent<Velocity>( + ComponentNames.Velocity, + ).velocity; } if ( diff --git a/engine/systems/FacingDirection.ts b/engine/systems/FacingDirection.ts index 4426ab6..daf639f 100644 --- a/engine/systems/FacingDirection.ts +++ b/engine/systems/FacingDirection.ts @@ -20,21 +20,24 @@ export class FacingDirection extends System { return; } - const totalVelocity: Velocity = new Velocity(); + const totalVelocityComponent = new Velocity(); const control = entity.getComponent<Control>(ComponentNames.Control); - const velocity = entity.getComponent<Velocity>(ComponentNames.Velocity); - totalVelocity.add(velocity); + const velocity = entity.getComponent<Velocity>( + ComponentNames.Velocity, + ).velocity; + + totalVelocityComponent.add(velocity); if (control) { - totalVelocity.add(control.controlVelocity); + totalVelocityComponent.add(control.controlVelocityComponent.velocity); } const facingDirection = entity.getComponent<FacingDirectionComponent>( ComponentNames.FacingDirection, ); - if (totalVelocity.dCartesian.dx > 0) { + if (totalVelocityComponent.velocity.dCartesian.dx > 0) { entity.addComponent(facingDirection.facingRightSprite); - } else if (totalVelocity.dCartesian.dx < 0) { + } else if (totalVelocityComponent.velocity.dCartesian.dx < 0) { entity.addComponent(facingDirection.facingLeftSprite); } }, diff --git a/engine/systems/Input.ts b/engine/systems/Input.ts index 35d2e1d..d9b7133 100644 --- a/engine/systems/Input.ts +++ b/engine/systems/Input.ts @@ -39,20 +39,24 @@ export class Input extends System { public update(_dt: number, game: Game) { game.forEachEntityWithComponent(ComponentNames.Control, (entity) => { - const control = entity.getComponent<Control>(ComponentNames.Control); + const controlComponent = entity.getComponent<Control>( + ComponentNames.Control, + ); if (this.hasSomeKey(KeyConstants.ActionKeys.get(Action.MOVE_RIGHT))) { - control.controlVelocity.dCartesian.dx += + controlComponent.controlVelocityComponent.velocity.dCartesian.dx += PhysicsConstants.PLAYER_MOVE_VEL; } if (this.hasSomeKey(KeyConstants.ActionKeys.get(Action.MOVE_LEFT))) { - control.controlVelocity.dCartesian.dx += + controlComponent.controlVelocityComponent.velocity.dCartesian.dx += -PhysicsConstants.PLAYER_MOVE_VEL; } if (entity.hasComponent(ComponentNames.Jump)) { - const velocity = entity.getComponent<Velocity>(ComponentNames.Velocity); + const velocity = entity.getComponent<Velocity>( + ComponentNames.Velocity, + ).velocity; const jump = entity.getComponent<Jump>(ComponentNames.Jump); if (this.hasSomeKey(KeyConstants.ActionKeys.get(Action.JUMP))) { diff --git a/engine/systems/Physics.ts b/engine/systems/Physics.ts index 38962a6..e324c97 100644 --- a/engine/systems/Physics.ts +++ b/engine/systems/Physics.ts @@ -11,7 +11,7 @@ import { Control, } from "../components"; import { PhysicsConstants } from "../config"; -import type { Force2D } from "../interfaces"; +import type { Force2D, Velocity2D } from "../interfaces"; import { Game } from "../Game"; export class Physics extends System { @@ -23,7 +23,9 @@ export class Physics extends System { game.forEachEntityWithComponent(ComponentNames.Forces, (entity) => { const mass = entity.getComponent<Mass>(ComponentNames.Mass).mass; const forces = entity.getComponent<Forces>(ComponentNames.Forces).forces; - const velocity = entity.getComponent<Velocity>(ComponentNames.Velocity); + const velocity = entity.getComponent<Velocity>( + ComponentNames.Velocity, + ).velocity; const inertia = entity.getComponent<Moment>( ComponentNames.Moment, ).inertia; @@ -73,12 +75,14 @@ export class Physics extends System { }); game.forEachEntityWithComponent(ComponentNames.Velocity, (entity) => { - const velocity: Velocity = new Velocity(); + const velocityComponent: Velocity = new Velocity(); const control = entity.getComponent<Control>(ComponentNames.Control); - velocity.add(entity.getComponent<Velocity>(ComponentNames.Velocity)); + velocityComponent.add( + entity.getComponent<Velocity>(ComponentNames.Velocity).velocity, + ); if (control) { - velocity.add(control.controlVelocity); + velocityComponent.add(control.controlVelocityComponent.velocity); } const boundingBox = entity.getComponent<BoundingBox>( @@ -86,9 +90,9 @@ export class Physics extends System { ); // integrate velocity - boundingBox.center.x += velocity.dCartesian.dx * dt; - boundingBox.center.y += velocity.dCartesian.dy * dt; - boundingBox.rotation += velocity.dTheta * dt; + boundingBox.center.x += velocityComponent.velocity.dCartesian.dx * dt; + boundingBox.center.y += velocityComponent.velocity.dCartesian.dy * dt; + boundingBox.rotation += velocityComponent.velocity.dTheta * dt; boundingBox.rotation = (boundingBox.rotation < 0 ? 360 + boundingBox.rotation @@ -96,7 +100,7 @@ export class Physics extends System { // clear the control velocity if (control) { - control.controlVelocity = new Velocity(); + control.controlVelocityComponent = new Velocity(); } }); } |