Skip to content
This repository was archived by the owner on Sep 5, 2025. It is now read-only.

Releases: NextFTC/NextRunner

v2.4.3

01 Jul 01:54
73e530f

Choose a tag to compare

This small update just adds one function and has some minor changes to compilation.

What's Changed

  • New Action function: Action.withPreview accepts a Supplier<Canvas> and returns a copy of its receiver with but with its argument as the preview method

Full Changelog: v2.4.2...v2.4.3

v2.4.2

29 Jun 19:24
96362b8

Choose a tag to compare

This update fixes documentation for Action's default functions and adds one to set the requirements of a function.

What's Changed

  • Adds withRequirements function to Action, which returns a copy of the receiver with its argument (either multiple objects or a set of objects) as the requirements

Full Changelog: v2.4.1...v2.4.2

v2.4.1

29 Jun 19:22
abdb8eb

Choose a tag to compare

This patch adds a function I forgot to add in v2.4.0.

What's Changed

  • Adds withConstantHeading method of PositionPath; returns a PosePath with the receiving PositionPath for position and the heading argument for heading

Full Changelog: v2.4.0...v2.4.1

v2.4.0

29 Jun 18:39
25edf37

Choose a tag to compare

v2.4.0 focuses on making path and trajectory creation easier for end users. Its features are primarily documented here.

What's Changed

  • 1D Bezier Curves can be created using BezierCurve1d.fromRRSpline()
  • 2D Bezier Curves can be created using fromPoints() with either a list or vararg of Vector2d objects
  • Heading interpolation can be added to a PositionPath (creating a PosePath) using the following functions:
    • withTangentHeading adds tangent heading interpolation; required for non-holonomic drive types
    • withLinearHeading accepts a start and end heading, and linearly interpolates heading between them
    • withSplineHeading accepts a start and end heading, and generates a one-dimensional spline to use for heading interpolation
  • PosePaths can be profiled using Drive.createProfile, which uses the constraints provided by the Drive implementation
  • PosePaths can be turned into a DisplacementTrajectory using Drive.createTrajectory, which uses createProfile to generate the profile
  • PosePaths can be added using PosePath.plus, which returns a CompositePosePath of the receiver and its argument
    • For Kotlin users, plus is an operator function, so path1 + path2 is perfectly valid

Full Changelog: v2.3.1...v2.4.0

v2.3.0

23 Jun 21:29
fef2612

Choose a tag to compare

What's Changed

  • ActionRunner registers itself properly now
  • Add Interruptible interface that designates an Action as being interruptible
    • An Interruptible action has an onInterrupt() method which returns an Action that will be run when this action is interrupted
    • You can also use the .interruptible(onInterruption: Action) function to turn an Action into an Interruptible.
  • RaceAction will trigger the onInterrupt actions of any Interruptibles after its first component Action ends.
  • Add requirements property (getRequirements() function for Java users) of Action
    • requirements is of type Set<Any>, so any object can be used as a requirement
    • If you attempt to schedule an Action using ActionRunner.run(), ActionRunner will check to see if that action's requirements are already in use from a different action in the queue. If they are, ActionRunner will remove the older action from the queue, freeing its requirements for the new action. If the old action is Interruptible, ActionRunner will also add its onInterrupt to the queue.

Full Changelog: v2.2.1...v2.3.0

v2.0.0-BETA-1

04 May 03:14

Choose a tag to compare

v2.0.0-BETA-1 Pre-release
Pre-release

a lot of things, namely:

  • reorganization of everything
  • new action features
  • new follower features
  • new interfaces to connect classes
  • more

Full Changelog: https://github.com/NextFTC/NextRunner/commits/v2.0.0-BETA-1