package com.uwsoft.editor.renderer.systems.action.logic; import com.badlogic.ashley.core.ComponentMapper; import com.badlogic.ashley.core.Entity; import com.badlogic.gdx.math.Vector2; import com.uwsoft.editor.renderer.components.physics.PhysicsBodyComponent; import com.uwsoft.editor.renderer.systems.action.data.ForceData; import com.uwsoft.editor.renderer.utils.ComponentRetriever; import com.uwsoft.editor.renderer.utils.ForceUtils; /** * Created by aurel on 19/02/16. */ public class ForceAction extends ComponentAction<ForceData> { private ComponentMapper<PhysicsBodyComponent> physicsBodyComponentMapper; public ForceAction() { this.physicsBodyComponentMapper = ComponentMapper.getFor(PhysicsBodyComponent.class); } @Override protected boolean delegate(float delta, Entity entity, ForceData actionData) { if (physicsBodyComponentMapper.has(entity)) { PhysicsBodyComponent physicsBodyComponent = physicsBodyComponentMapper.get(entity); ForceUtils.applyForce(actionData.force, physicsBodyComponent.body, actionData.relativePoint); return false; } return true; } }