Commit Graph

28 Commits

Author SHA1 Message Date
Adam Ramberg
a6c7076666 Changes due to move to new organization 2021-01-22 08:22:16 +01:00
Miika Lönnqvist
8f6392c373
#52 Basic implementation of conditions for listeners (#191)
* Basic implementation of conditions for listeners

* Tweak code style and add generated Conditions
2020-11-06 22:11:16 +01:00
jmacgill
3140feab42
Generator creates compilable code with type specific modifications (#169)
* 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>
2020-07-12 08:18:51 +02:00
Adam Ramberg
4ad596dcd2 Rename functions correctly 2020-03-21 22:17:59 +01:00
Adam Ramberg
cacb2d1594 Correctly generate comments 2020-03-19 08:41:44 +01:00
Adam Ramberg
fdfcf03150 Remove sync functionality in variable instancers 2020-03-19 08:39:43 +01:00
Adam Ramberg
20db73a43f Move sync variable instancer to collection to its own MB 2020-03-19 08:20:15 +01:00
Adam Ramberg
74bfaf7086 Example WIP + Variable ID 2020-03-18 00:17:33 +01:00
Adam Ramberg
17fd35a23d Clean up WIP 2020-03-09 00:37:52 +01:00
Adam Ramberg
cb3486ae7f Align base event reference listener 2020-03-08 12:51:22 +01:00
Adam Ramberg
06d89697f3 Example WIP 2020-03-05 00:48:39 +01:00
Adam Ramberg
b4b8ad0c09 Remove white spaces in Variable Instancers 2020-03-02 19:57:51 +01:00
Adam Ramberg
c3bc59259f More WIP 2020-03-02 02:26:06 +01:00
Adam Ramberg
5d9f8dca71 WIP 2020-03-01 21:32:52 +01:00
Adam Ramberg
85f72abf8a Add AddComponentMenu to Variable Instancers 2020-02-23 23:13:30 +01:00
Adam Ramberg
7c4f92ecd8
Add constructor with value to Reference classes (#113) 2020-02-23 03:17:05 +01:00
Adam Ramberg
8a6b8a97a6
Added Variable Instancer, Event Reference, Atom Collection and Atom List (old Atom List renamed to Atom Value List) (#110)
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.
2020-02-23 02:39:43 +01:00
Adam Ramberg
9b027e2308
Added pre change transformers to Variables + Clamp Int / Float (#93)
* 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`
2020-02-16 12:44:46 +01:00
IceTrooper
23a8873462 Changed AddComponentMenu names for Listeners/Hooks (#84)
* changed AddComponentMenu names for Listeners

* renamed AddComponentMenu Listeners names in other packages

* renamed AddComponentMenu for hooks

* renamed double Listeners to "x 2" convention
2019-11-13 08:59:39 +01:00
AdamRamberg
cd90f0e667 Remove all FormerlySerializedAs attributes 2019-10-18 17:36:10 +02:00
AdamRamberg
299dc195e2 - Added a top menu bar option to regenerate all existing Atoms. Nifty when developing the library.
- Added the option to use a Constant in Atom References. Related to #58
2019-10-16 18:02:08 +02:00
AdamRamberg
47265591e6 Generate more docs for scene mgmt 2019-10-15 23:31:21 +02:00
AdamRamberg
867d360ebf Regenerate docs for SceneField Atoms 2019-10-15 22:39:20 +02:00
AdamRamberg
9822202acd UseIcon -> EditorIcon 2019-10-14 16:51:54 +02:00
AdamRamberg
46af4f9f3a Fix warnings when importing package 2019-10-03 21:34:57 +02:00
AdamRamberg
b88e90ca47 Update SceneField with new icon system 2019-10-02 17:49:06 +02:00
AdamRamberg
e80a082c6d Generate new SceneField atoms 2019-10-01 23:45:42 +02:00
AdamRamberg
416426f026 New repo structure 2019-10-01 17:27:22 +02:00