package net.mostlyoriginal.ns2d.system.active; import com.artemis.ComponentMapper; import com.artemis.Entity; import com.artemis.annotations.Wire; import com.badlogic.gdx.math.Vector2; import net.mostlyoriginal.ns2d.api.PassiveSystem; import net.mostlyoriginal.ns2d.component.Physics; /** * @author Daan van Yperen */ @Wire public class PhysicsSystem extends PassiveSystem { private ComponentMapper<Physics> ym; private Vector2 vTmp = new Vector2(); public void push(Entity entity, float rotation, float force) { if (ym.has(entity)) { vTmp.set(force, 0).setAngle(rotation); final Physics physics = ym.get(entity); physics.vx += vTmp.x; physics.vy += vTmp.y; } } public void clampVelocity(Entity entity, float minSpeed, float maxSpeed) { if (ym.has(entity)) { final Physics physics = ym.get(entity); vTmp.set(physics.vx, physics.vy).clamp(minSpeed,maxSpeed); } } }