package coffee.liz.ecs.physics import coffee.liz.ecs.World internal class IntegrationTick { 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) ) ) } } }