Portraits now are on stage at all times once asked for to prevent running into issues with unity ui. This caused massive overdraw of MANY portraits that are all invisible. Now we toggle active inactive based before and after tweens.
Previously many of the locations where a string is requested to show in the inspector or log for the value of a FungusVariable that could be null would be string.Empty., now returns "Null"
Now cancels any existing tweens on the central holder when a new move is issued. Now exhibits clear snapping rather than occasional jerking back n forth
Character PortraitState now contains all the all character portraits underneath a single container object, at all times. The holder moves and the individual portraits fade in and out. Previous method created and destroyed as needed and was susceptible to the 'white square' UI Image bug.
In flowchart window the search now makes a distinction between a full match, name of block to search string and a partial match, command contents matching the search string.
SearchBox popup is also not more conservative in show itself, close#786
Controlled via toggle in Fungus Editor Prefs.
Snaps and aligns blocks to underlying grid in the flowchart window.
More caches for styles and lists to reduce allocations during block drawing
Was causing the 'white box' to appear when moving rappidly through portrait animations
- Fix#741
Correct missing portrait reference in Conversation demo
Add concept of Collection to Fungus.
Add Collection Demo, Physics Cast Demo.
They are their own type, that are addressed in a generic way. Internally using object boxing and type comparisons.
A number of refactorings and additions along with this to make it work more seamlessly.
Variable operators defined by Variable itself
Conditional and Looping commands refactored, to avoid more duplication in the new looping commands, such as ForEach
AnyVariableData removes duplication from SetVariable and Condition logic, provides a clearer method of adding additional variable types that result in immediate support in those commands
PlayMode Tests and Utils added
Additional Variable Types, such as Quaternion, Matrix4x4
Physics casts Commands that use collections
* Initial Fungus Collection work with support for int and IntegerVariable
* While and Condition related changes to allow for new command Loop Range
* Collection Get changes and ForEach rough
* Added Collection Commands
Reordered Elif logic in Condition
* More collection types and commands
* Variable reorg to allow for new types to be added more simply and centrally
* Added more Fungus Vars for Common Unity types
VariableList Adapter can delegate to the variable itself for custom drawing
Variable IsArthithemticSupported queries for each op rather than all, more fine grain support for types like color and quaterion
Event handlers, such as physics related, now have optional fungus variable to store the data they are given by unity in fungus variable for use in the block
VariableInfo consolidates more info into the typeActionLookup table, updates to support new fungus var types
* Many basic collection operations added
Common Collection types
Physics Overlap command
* Custom variable drawing moved to VariableInfo.cs rather than child variable itself
Added Physics cast and overlap commands
* Move all Editor scripts into Editor AsmDef folder
* LoopRange also registers as command name For
* Condition base class commenting improved and refactored repeated looping style child class elements into base
* More descriptive CollectionBase Command class names
* Fungus Collection interface and comments refined
* Rename ICollection to IFungusCollection
Cleanup formatting
* Collection example scene
* Added Collection Tests
* Format collection and test files
Added CopyFrom to IFungusCollection
* Added FungusCollection initial summaries
* Added CollectionRandom commands
-added simple use to CollectionLoop demo scene
* Added Unique to FungusCollection
-Updated tests to include unique
Added Collection Physics demo, shows use of returned array of all cast intersecting GameObjects
* CollectionPhysics tracks mousepos with visual
Added Fungus Command to get mouse position
* Variable custom draw moved to its own editor class, no longer part of typeinfo
Variable generation run
* Add playmode test for variable type sets
Add playmode test for flow control
* Update doco and formatting for Collection classes
Refactor parts of Conditional classes and AnyVariable
Move Property commands into Category 'Property'
* Update Collection comments, formatting and Update internal to public
* Add License header to added variable types
Consolidated with existing narrative log system.
Add additional method of showing narrative log in a per entry basis with scroll view of elements generated per item.
- NarrativeLog prefab uses the new system.
Add TextMeshPro animation support via Link text
- TMProLinkAnimator, auto adds to components
- TMProLinkAnimLookup, stores all TMPro animation functions by link text hash
- TMProLinkAnimEffects, default set of configurable TMPro animation functions built around color and Matrix transformations
- Add TMPro Link Effect Demo scene
- Adds defaults for shake, wiggle, wave, pivot, rainbow, ascend, pulse
* Flowchart block selectedness now only modified by Block.Execute at runtime
Blocks can suppress auto-selection in flowchart window due to execution
Events can suppress auto-selection in flowchart window by activation
Variable returns value as object
Flowchart rightclick menu commands for interacting with blocks
Right click menu for variable list for add, rmove and sort
Add IVariableReference
Add DebugBreak command, also useful for attaching IDE breakpoints to
* IBlockCaller now uses IStringLocationIdentifier
-Nulls are getting into these collections in error. Seems to be due to SelectedBlocks serialising and not being refreshed correctly when something is deleted or removed outside of FlowchartWindow's control or a lingering null from a previous version.
Updated Changelog
- Flowchart can identify add variables found via the substitute regex
- Commands that use SubstituteVariables on their string data use the new caching method so they can highlight variables that will be used during substitution
FadeUI also checks for CanvasGroups and if 2018_1_OR_NEWER will check for TMP_Text also
TextAdapter uses 2018_1_OR_NEWER for more thorough support of TMPro such as color and rich text operations
Allows for circumstances where you want to call a block that completes immediately multiple times such as in recursion.
Removes the need to put Wait 1 Frame commands in a number of cases
More verbose logging in cases where a block cannot be called as it is already running
Blocks now track their selectedness and filteredness to avoid hundreds of contains calls every Draw
Only recalculate filtered collection and total blocks on flowchart when a change has occured
Minor change to Conversation regex grouping
Added Conversation Tests for existing functionality and multi colon
-Conversation Parse refactor to allow for static testing
Moved all regex strings across fungus to const strings