package coffee.liz.ecs.physics import coffee.liz.ecs.World internal class IntegrationTick : PhysicsTick { override fun runTick(world: World) { world.query(Velocity::class, Acceleration::class).forEach { entity -> val velocity = entity.get(Velocity::class) val acceleration = entity.get(Acceleration::class) entity.add( Velocity( vec2 = velocity.vec2.plus(acceleration.vec2), ), ) } world.query(Position::class, Velocity::class).forEach { entity -> val position = entity.get(Position::class) val velocity = entity.get(Acceleration::class) entity.add( Position( vec2 = position.vec2.plus(velocity.vec2), ), ) } } }