This repository was archived by the owner on Sep 5, 2025. It is now read-only.
Releases: NextFTC/NextRunner
Releases · NextFTC/NextRunner
v2.4.3
This small update just adds one function and has some minor changes to compilation.
What's Changed
- New
Actionfunction:Action.withPreviewaccepts aSupplier<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
This update fixes documentation for Action's default functions and adds one to set the requirements of a function.
What's Changed
- Adds
withRequirementsfunction toAction, 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
This patch adds a function I forgot to add in v2.4.0.
What's Changed
- Adds
withConstantHeadingmethod ofPositionPath; returns aPosePathwith the receivingPositionPathfor position and the heading argument for heading
Full Changelog: v2.4.0...v2.4.1
v2.4.0
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 ofVector2dobjects - Heading interpolation can be added to a
PositionPath(creating aPosePath) using the following functions:withTangentHeadingadds tangent heading interpolation; required for non-holonomic drive typeswithLinearHeadingaccepts a start and end heading, and linearly interpolates heading between themwithSplineHeadingaccepts a start and end heading, and generates a one-dimensional spline to use for heading interpolation
PosePaths can be profiled usingDrive.createProfile, which uses the constraints provided by theDriveimplementationPosePaths can be turned into aDisplacementTrajectoryusingDrive.createTrajectory, which usescreateProfileto generate the profilePosePaths can be added usingPosePath.plus, which returns aCompositePosePathof the receiver and its argument- For Kotlin users,
plusis an operator function, sopath1 + path2is perfectly valid
- For Kotlin users,
Full Changelog: v2.3.1...v2.4.0
v2.3.0
What's Changed
- ActionRunner registers itself properly now
- Add
Interruptibleinterface that designates anActionas being interruptible- An
Interruptibleaction has anonInterrupt()method which returns anActionthat will be run when this action is interrupted - You can also use the
.interruptible(onInterruption: Action)function to turn anActioninto anInterruptible.
- An
RaceActionwill trigger theonInterruptactions of anyInterruptibles after its first componentActionends.- Add
requirementsproperty (getRequirements()function for Java users) ofActionrequirementsis of typeSet<Any>, so any object can be used as a requirement- If you attempt to schedule an
ActionusingActionRunner.run(),ActionRunnerwill check to see if that action's requirements are already in use from a different action in the queue. If they are,ActionRunnerwill remove the older action from the queue, freeing its requirements for the new action. If the old action isInterruptible,ActionRunnerwill also add itsonInterruptto the queue.
Full Changelog: v2.2.1...v2.3.0
v2.0.0-BETA-1
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