Skip to content

2.0.0

Compare
Choose a tag to compare
@Orange-Panda Orange-Panda released this 11 Jun 18:49
· 10 commits to main since this release

❇️ Upgrade Guide ❇️

This release includes major breaking changes which will require your attention in order to upgrade to this version from any 1.x release

  • GlyphCollection has been overhauled. For each GlyphCollection in your project you must reassign the hardware maps to the newly designated 'Controller Maps'
    • If you are using one of the GlyphCollection samples you are encouraged to reimport the updated 2.x sample instead.
  • If referenced HardwareDefinition in any of your scripts, they must be replaced/removed
    • Use Controller or ControllerType, Guid instead.
    • This affects GetNativeGlyphFromGuidMap method calls in particular

⚠️ Major Breaking Change - Hardware Definition Removed ⚠️

  • Hardware Definition has been completely removed for more accurate glyph queries and an improved user experience when creating GlyphCollection
  • Most methods that were directly associated with HardwareDefinition have been removed entirely.
  • Methods that used HardwareDefinition to target a specific controller now use Controller or ControllerType, Guid instead.
    • The signature for some query methods have changed as a result such as GetNativeGlyphFromGuidMap
  • ⚠️ You will have to update your 1.x GlyphCollection when updating to v2.0.0 by reassigning your controller glyph maps to the collection!
  • If you used any methods that used HardwareDefinition your code will not compile when upgrading to this version and will require changes.

Added

  • Added official Documentation~ which can also be found online at https://orange-panda.github.io/Rewired-Glyphs/
    • This is an ongoing project, so you are encouraged to make article requests in the Issues
      or Discussions if you are unable to find documentation for your use case.
  • Added an overhauled GlyphCollection editor user experience
  • Added ControllerType property to Glyph to inform components about the device the glyph intends to represent.
    • All Template maps represent Joystick glyphs
    • Controller maps use the value defined in its entry on the GlyphCollection
  • Added optional feature for hiding non-input glyphs (null, uninitialized, etc.) on built-in components (default does not hide)
    • Enable in GlyphRichTextFormatter using hideInvalid option in glyph tag (Example: <glyph Jump hideInvalid>)
  • Added optional feature for hiding keyboard and mouse glyphs in built-in components (default does not hide)
    • Enable in GlyphRichTextFormatter using hideKBM option in glyph tag (Example: <glyph Jump hideKBM>)
  • Added ShouldHideGlyph(Glyph) protected method to GlyphDisplay which can be used by inheritors to inform if they should hide the output glyph (due to the above rules)
    • If you don't implement this check in your SetGlyph component it will behave identically to before, but will not support these optional settings.
  • Added GetGlyphSet method to InputGlyphs for getting all glyphs for an action across all controller types, including multiple bindings on a single controller.
  • Added collectionKey string field to GlyphCollection for distinctly identifying and referencing collections at runtime
  • ⚠️ [Breaking] - Added collectionKey optional parameter to all InputGlyphs methods for referencing secondary (non-default) collections
  • Added additionalCollections field to RewiredGlyphManager for additively loading additional collection for reference by their collectionKey
    • This field also supports generating TMP sprite sheets (generates for default collection and collections included in additional collections)
    • Note: Make sure the names of the sprite sheets containing glyphs are unique since they are referenced by name in TextMeshPro. An error message has been added to notify about such collisions.
  • Added optional specifier set=collectionname for GlyphRichTextFormatter to target secondary glyph collections
    • Example: <glyph Jump set=dark> where 'dark' is the collectionKey on some GlyphCollection that is loaded into InputGlyphs
  • Added Generate Keyboard and Generate Mouse functionality to Glyph Map for generating default Glyph Map actions
    • Requires the application running due to technical limitations
  • Added component icons to all major components and scriptable objects of the package
  • Added confirmation dialogue before generating TMP sprite sheet on Rewired Glyph Manager
  • Added custom property drawer for Glyph, improving the editor experience
  • Added new glyphs sample to package: Xelu Prompts

Changed

  • Changed order of sprites in Glyph editor (now ordered Full, Positive, Negative to match description order)
  • Rewrote the way glyph collections are loaded into memory internally
    • Switching the active glyph collection is now much more performant
    • Loading a glyph collection now only dispatches a glyph update if it may have changed the output of glyph queries
  • GlyphCollection now initializes non-input glyph values with default values when created.
  • Remove set access to TemplateEntry and GuidEntry
  • Updated Kenney sample glyphs to new GlyphCollection format

Fixed

  • ⚠️ [Breaking] - Fixed GetSpecificCurrentGlyph and GetCurrentGlyph not utilizing the value of its 'forceAxis' parameter.
    • If you were utilizing a value of true you may notice different output of this method.
    • This method was being used by GlyphRichTextFormatter therefore tags such as <glyph "MoveH" pole=FullAxis> will output differently.
  • Fixed Glyph Positive and Negative description sometimes not returning the expected value
  • Fixed description validation error in GlyphMapEditor
  • Fixed Kenney glyph maps having some inaccurate/missing actions

GitHub Tag Change

  • Going forward releases will no longer have the v prefix
    • Tags for previous releases will not be modified

Full Changelog: v1.5.0...2.0.0