public void AssignToken(MoveToken token) { AssignedToken = token; token.AssignedPath = this; CurrentPosition = token.Position; CurrentVelocity = token.Velocity; }
public void UpdateAllTokens() { for (int i = 0; i < GetChildren().Count; i++) { if (GetChildren()[i] is MoveToken) { MoveToken targetToken = GetChildren()[i] as MoveToken; TrajectoryPath newPath = new TrajectoryPath(); newPath.AssignToken(targetToken); targetToken.AssignedPath = newPath; targetToken.AssignedPath.AddGravityBody(GetAllGravityBodies()); targetToken.AssignedPath.CreateNewPath(); } } }
public void CreateNewMoveToken(Vector2 targetPosition, Vector2 startingVelocity) { MoveToken newToken = new MoveToken(); newToken.Position = targetPosition; newToken.Velocity = startingVelocity; AddChild(newToken); newToken.Connect("FinishedMove", this, nameof(UpdateAllTokens)); TrajectoryPath newPath = new TrajectoryPath(); newPath.AssignToken(newToken); newToken.AssignedPath = newPath; newToken.AssignedPath.AddGravityBody(GetAllGravityBodies()); newToken.AssignedPath.CreateNewPath(); }