* Update CHANGELOG
* Update version in documentation to 4.4.4
* Remove reference to Examples directory
* Update package-lock.json
* Update API documentation
* Make Examples path check OS agnostic.
* Examples path check OS agnostic.
* Update Runtime.cs
* Re-generate and patch back in type specific changes
* Add missing UnityEngine using.
* Marked as not sealed
* Support the current value type as a conditional.
* Nested if blocks
* Use next char instead of next linefeed.
* Remove debug lines.
* Keep Atom Base Variable sepecfic code.
* Fix position of endif
* Add Raise for void type
* Add void and FSM specific logic
* Add is numeric conditional
* Add more type specific logic
* Add is Vector to generator.
* Add type specific logic
* Add collider type
* Add color specific logic
* Working on whitespace diffs
* Working on whitespace diffs
* remove unused test assembly
* removed example nested if
* test comment removed after regen
* missing ValueEquals
* missing ValueEquals on colliders
* missing color speciifc code.
* whitesapce cleanup
* whitesapce cleanup
* whitesapce cleanup
* whitesapce cleanup
* whitesapce cleanup
* whitesapce cleanup
* remove temp debug
* Generated events now follows editoconfig. + Inline conditionals now supports white spaces.
Co-authored-by: jrmacgill <jmacgill@gmail.com>
Co-authored-by: Adam Ramberg <adam@mambojambostudios.com>
AtomVariableInstancer
- Added AtomVariableInstancer as an option to AtomReference.
- Added AtomVariableInstancer to generator.
- Added editor icon for AtomVariableInstancer.
AtomEventReference
- Added an AtomEventReference class (and AtomEventX2Reference). It’s similar to an AtomReference, but for Events. Let’s you pick between an Event, Variable (will select the Changed event) and a VariableInstancer (see above).
- Added AtomEventReference and AtomEventX2Reference to generator.
- Added a drawer for AtomEventReference.
- Listeners are now using AtomEventReference instead of AtomEvent.
- Refactoring of VoidHooks since Listeners are now using AtomEventReference.
AtomCollection
- Created an AtomCollection - a collection of Atoms associated with key strings (AtomReferences).
- Added new editor icon for collections.
- Created a SerializableDictionary class, which AtomCollection is using.
- Custom property drawer for SerializableDictionary.
- SerializableDictionary supports nested structures meaning that a AtomCollection can have a KVP that is pointing to another AtomCollection.
- AtomCollections have 3 events: Added, Removed, Cleared.
- Added an option to sync an InstanceVariable to collection - adding it to the collection when created (using gameObject’s instance id as key) and removing it from the collection when destroyed.
AtomList
- Renamed old AtomList to AtomValueList
- Added AtomList, like Collection, but a list
- Added new icon for AtomList
- Created a AtomBaseVariableList class, which AtomList is using.
- Custom property drawer for AtomBaseVariableList.
- AtomLists have 3 events: Added, Removed, Cleared.
- Added an option to sync an InstanceVariable to list - adding it to the list when created and removing it from the list when destroyed.
* Added pre change transformers to Variable + Clamp Value Function (first pre change transformer implementation)
- Added a list of pre change transformers to AtomVariable
- Added docs
- Added two AtomFunctions - ClampInt and ClampFloat
- Added custom editors for ClampInt and ClampFloat
- AtomFunction<T, T> is not part of the generator
- Regenerated all the Atoms
* - Created a base class for the editor for ClampFloat and ClampInt. Apparently it is not allowed to have multiple CustomEditor attributes defined for the same class. To implement this I also created an interface called `IIsValid` (for casting purposes in the editor).
- Initialize `PreChangeTransformers ` at declaration and removed initialization `OnEnable`
- Moved call to `RunPreChangeTransformers ` from `OnEnable` to `OnValidate`. Running it 2 times, once for initialValue and once for value since value can be changed at runtime via editor.
- Made the variable PreChangeTransformers private and created a property instead in order to make it impossible to overwrite the list with `null` from the outside.
- Moved `ClampInt` and `ClampFloat` in the `CreateAssetMenu` for `Unity Atoms/Functions/Transformers`
* #69 added custom editor for Variable Types, to guide the usage flow and reduce errors.
* allows unlocking of initialvalue in playmode
* adjustments to Variable Inspector
* Generator now works with all kinds of setups. just select the Packages folder when calling RegenerateAll.
Used this to regenerate the CustomEditors
* supports now structs
* Added RaiseButtons in VariableEditor. #72
Adding simple logging helper on listeners, for fast debugging.
* Call `serializedObject.Update();` before `OnInspectorGUI` in the editor script in order to update old value when changing value.
Show children for PropertyFields for initial and old value.
Some minor refactoring - renaming variables
Clean up in `RegenereateAllAtoms`
Use `OnEnable` instead of `OnAfterDeserialize` when setting inital value for variable. `OnAfterDeserialize` was causing major issues with the custom editor, eg. it did run when focusing a Variable and showing the inspector, basically making it worthless to change or even inspect the Variable at runtime. `OnEnable` is only called ones when the ScriptableObject is loaded in runtime, which is what we really want. This has been tested running in the editor and in builds.
Add missing editors scripts `TouchUserInputVariableEditor`and `SceneFieldVariableEditor`