removes generics for input and output — they are both just of type object as far as logic blocks is concerned. this drastically reduces boilerplate when creating logic blocks and will substantially simplify errors while developing.
fixes generator to infer inputs and outputs from usage, as opposed to relying on subtypes.
changes all examples and test fixtures to use readonly record struct types for input and output types, as well as sets forth the convention of organizing inputs and outputs in static classes inside a logic block subclass.
overhauled documentation in the readme, complete with the latest up-to-date code examples and diagrams
bumps version to 3.0, given these major breaking changes.
makes seperate versions of StateLogic for LogicBlock and LogicBlockAsync so that states can trigger enter/exit callbacks themselves.
removes the state tester in favor of asking states to re-enter and re-exit.
overhauls the tutorial on creating a space heater to create a much cleaner and more realistic, real-world type of example.
input
andoutput
— they are both just of typeobject
as far as logic blocks is concerned. this drastically reduces boilerplate when creating logic blocks and will substantially simplify errors while developing.readonly record struct
types for input and output types, as well as sets forth the convention of organizing inputs and outputs in static classes inside a logic block subclass.StateLogic
forLogicBlock
andLogicBlockAsync
so that states can trigger enter/exit callbacks themselves.