-
Notifications
You must be signed in to change notification settings - Fork 1
Latest Changes
Hyomoto edited this page Nov 27, 2020
·
13 revisions
Check the Releases section for downloads. With the official release of 2.3.1, FAST can now make use of some of these new features! The major feature is garbage-collected data structures, which is possible thanks to weak references!
- Renaming of generic types to match the pattern used everywhere else, ie: GenericInput is now InputGeneric. This helps indicate it is part of Input, and not part of Generic which is not a thing.
- Garbage-collected data structures have been added!
- Shapes were moved from Pointer to Core.
- Start of the wiki information for the Render module.
- RenderList added, a simple data structure for managing a list of objects for drawing.
- Pointer is now included, and can be played with, but should be treated as a work-in-progress.
Events
- Added DeltaEvent which takes in a time as seconds, rather than frames.
- Added now() to call a function immediately after it is created.
Publisher
- Publisher, PublisherChannel and PublisherManager merged back into core. They are basic tools, and aren't complex enough to justfiy being a separate module.
- All publisher functions were removed. There is no longer any "default" Publisher framework, as creating your own and using the one I built was roughly the same amount of work.
- PublisherManager is no longer a default Publisher, but rather a proper manager like the others.
GenericOutput
- Removed clear() and size(). They didn't make any sense outside of the context of the outputs. Structs such as File still have size() and clear(), but SystemOutput does not, for example.
Logger
- Removed clear() call. This was a weird hackaround because there was no way to start a "new" file when Logger was written. Now that you can explicitly call for a new file, it's redundant. Plus, if the user wants to append rather that overwrite, this ensures that decisions is theirs to make.
- Added written variable. No longer checks outputs for size, but rather how many writes() have been called on this Logger. Written can be set to 0 to disable automatic saving.
LogManager
- Added log()
is_struct_of()
- Checks if the given structure is of the given type. Will call the is() method on a structure, if it exists, or try to work it out from the parent constructor if able. Allows checking against the script function rather than a string.
GenericInput
- Removed constant. This is only relevant to inputs that have a constant.
- Added missing is() method.
KeyboardKey
- Added string conversion for missing keycodes -=[];',./`
MouseWheel
- Split into MouseWheelUp and MouseWheelDown. Removes mb_wheel_up and mb_wheel_down constants which no longer have any purpose.
Publisher
- Properly calls notify() on the channel rather than iterating itself.
FrameEvent
- Defaulted to not repeat, when
once()
should be called to create a single-run event.
Parser
- Added 'divider' to make it easie to direct the basic parser to break at different places.
FileCSV
- Added FileCSV as a file type.
DsChain
- Added copy implementation to make cloning data structures easier.
DsLinkedList, DsQueue, DsStack, DsWalkable
- Added copy method.
- Updated a lot of function descriptions
Renamed ArrayDynamic -> ArrayList
- This also renames append() to add() to make it more internally consistent with other data structures.
Split Gamepad
- Gamepad is now generic and contains no bound inputs, GamepadXbox and GamepadPlaystation are the pre-configured versions. There is no functionality changes here, this just simply provides a generic template that matches the controller in question.
Renamed Scripts -> Structs
- Previously all structs were in folders labeled Scripts. This was confusing, so now they are named Structs.
Merged File Handling and Logger into Core
- Originally the were separated out in the name of making FAST more modular, but they are core features. Logging relies on File Handling, and all modules use Logging.
Devon Mullane 2020