Skip to content

Releases: phosxd/PowerKey

1.5.1

07 Jun 23:52

Choose a tag to compare

Some small changes & fixes.

  • Fixed config expecting float value in max_cached_pkexpressions, instead of int.
  • Fixed error when TRANSLATIONS is not defined in the Resources script.
  • Added class descriptions.
  • Some other minor code refactoring & optimization.

1.5.0

24 May 22:38

Choose a tag to compare

A bunch of useful new features!

Highlights:

Translations:

  • Added a "Translations" system that translates properties of every Node in the project at run-time. Offers a functionality much more like the standard Godot translation system, while keeping all the advantages of PowerKey.

PKExpressions Editor Dropdown:

  • Added "Store Parsed" option. Enabling it will make it so the expressions do not have to be parsed during run-time, however it may inflate your scene file size a little as it needs to store the parsed data on the Node.
  • Added "Builder" button. When pressed, it shows a pop-up menu with a UI that lets you build a PKExpression without needing to know the syntax. When you press "Done", it will add the expression to a new line in the Text editor.

PKExpression Engine:

  • Added "Eval" PKExp type. Allows user to safely execute Godot Expressions to do mathematical operations, value definition, and even safe function calls.
  • Now highlights PKExp syntax in the PKExp Editor. Uses GDScript highlighting for segments of "Execute" & "Eval" PKExp types.

Other Changes:

PKExpression Engine:

  • Can now specify an optional "frequency" parameter for a "Link" expression to set how frequently it updates.
  • In a "Link" or "Assign" PKExpression, you can now access properties and elements from nearly every built-in type including arrays. Instead of only being to access the properties of a Dictionary or Object.
  • Now throws error when invalid number of parameters used for that expression type.
  • Now throws error when parsing an empty line.

Stress Test:

  • Now shows Parse Time & Job Time information.

Example Scene:

  • Renamed labels to be more descriptive.
  • Added "Slow Counter" label to utilize "frequency" parameter for "Link" PKExps.
  • Use "Eval" PKExp type instead of "Exeecute" for the "Random Number" label.

Other:

  • Rewrote entire "PKExpressions" guide page to be more descriptive & helpful.
  • Fixed the PKExps Editor Dropdown label & the "PowerKey" tab icon not being scaled with the Editor scale. #1 .

1.4.2

14 May 08:03

Choose a tag to compare

General QOL changes, refactoring & fixes.

  • Now says at which character the error was found, when parsing a PKExpression.
  • Merged the "About" & "Getting Started" guide pages.
  • Switched to using StringName instead of String for "PKExpressions" metadata on Nodes. For compatibility, if the metadata is a String then it is still accepted, then converted into StringName.
  • Refactored some code, to make future changes/additions easier.
  • Various parsing changes for optimization.
  • Various fixes.

Relevant fixes & optimizations. Update recommended.
NOTE: This release introduced a new bug where the error message for when a PKExpression accesses properties from an unsupported built-in type would not be formatted correctly. Not a huge issue so I wont re-release this just for a tiny fix, just be aware.

1.4.1

10 May 12:45
8648927

Choose a tag to compare

Huge optimization improvements & some general improvements.

  • Both "Link" & "Execute" expression types are now MUCH more performant overall. This is due to many different changes made with how they are processed.
  • Implemented simpler & more optimized method of hooking & evaluating Nodes during runtime.
  • Added expression caching. Helps with repetitive expressions.
  • Smarter config file loading. No longer resets whole file when a value is missing.
  • "Assign" & "Link" PKExpressions are now allowed to access properties from a Vector2, if the property exists.
  • Fixed various issues.

Important optimizations. Update highly recommended.

1.4.0

08 May 12:45

Choose a tag to compare

  • Overhauled the Stress Test scene. More options available.
  • Fixed huge memory leak when processing "Execute" or "Link" PKExpressions. Now also uses far less RAM in general.
  • Added descriptive PKExpression parsing errors, also show in the Text Editor.
  • Added comment support for PKExpression Text Editor.
  • Fixed many other issues.

Fixes very important issues, update highly recommended.

1.3.0

04 May 07:11

Choose a tag to compare

  • Added experimental "Link" PKExpression type.
  • Added "Stress Test" scene.
  • Parsing improvements.
  • Fixed various issues.

Update recommended.
NOTE: Plug-in version in "plugin.cfg" states as 1.2.0, which is incorrect.
ISSUE: Giant memory leak when using "Link" & "Execute" expression types. This is going to be fixed in version 1.4.0.

1.2.0

02 May 06:11

Choose a tag to compare

  • Added in-editor PKExpression syntax checking.
  • Added "Print any PKExpression processed" debug option in Configuration menu.
  • Various fixes.

Warning:

(Fixed in v1.3.0) Nodes instantiated after initial launch of project are not evaluated, so they will not automatically process their PKExpressions.

1.1.0

30 Apr 10:19

Choose a tag to compare

Now using integrated UI in the Node Inspector for PKExpression input, instead of using the "Editor Description" property to store expressions.

NOTE: Not compatible with older versions.

1.0.0

30 Apr 01:44

Choose a tag to compare

Release.