Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dictionary 'find key' and 'get' do not have output nodes #289

Closed
gstroudharris opened this issue Apr 23, 2024 · 1 comment · Fixed by #292
Closed

Dictionary 'find key' and 'get' do not have output nodes #289

gstroudharris opened this issue Apr 23, 2024 · 1 comment · Fixed by #292
Labels
bug/confirmed Bug/regression has been confirmed. cherrypick:2.0 Requires cherry-pick to Orchestrator 2.0 kind/bug A bug or regression in expected behavior.
Milestone

Comments

@gstroudharris
Copy link

gstroudharris commented Apr 23, 2024

Describe the bug

Referenced in the following bug report: https://discord.com/channels/1049457206648655912/1226553132578897920

There are no output nodes for two of the main ways to get information from/about dictionaries.
image

Expected behavior

  1. User creates a "Find Key" or "Get" dictionary node.
  2. Node has an 'output' nodule, letting us get information about the dictionary input.

Actual behavior

  1. User creates a "Find Key" or "Get" dictionary node.
  2. Node has no output except for the continuation nodule.

How to Reproduce?

  1. Create a new project with Orchestrator 2.1.
  2. Create a scene and attach an Orchestrator script.
  3. Create a dictionary.
  4. Create a string to search that dictionary with.
  5. Create a 'Find Key' or 'Get' dictionary node
  6. Observe that the node does not have an output nodule.

Godot full version

v4.2.1.stable.mono.official [b09f793f5]

Orchestrator version

Orchestrator 2.1
image

Additional information

@gstroudharris gstroudharris added the kind/bug A bug or regression in expected behavior. label Apr 23, 2024
@Naros Naros added bug/confirmed Bug/regression has been confirmed. cherrypick:2.0 Requires cherry-pick to Orchestrator 2.0 labels Apr 23, 2024
@Naros
Copy link
Member

Naros commented Apr 23, 2024

This was similar to GH-240, but the root cause was different.

In this case, we parse the extension_api.json file to create a C++ class called ExtensionDB and we misinterpreted the meaning of "return_type": "Variant" and the method data that was being generated did not include the PROPERTY_USAGE_NIL_AS_VARIANT flag, hence why no return values showed up.

This ended up affecting the following Godot functions:

  • PackedByteArray.decode_var
  • Array.get_typed_script
  • Array.min
  • Array.max
  • Array.reduce
  • Array.pop_at
  • Array.pop_front
  • Array.pop_back
  • Array.pick_random
  • Array.back
  • Array.front
  • Dictionary.get
  • Dictionary.find_key
  • Callable.call
  • Callable.callv
  • AABB.intersects_ray
  • AABB.intersects_segment
  • Plane.intersects_ray
  • Plane.intersects_segment
  • Plane.intersect_3

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug/confirmed Bug/regression has been confirmed. cherrypick:2.0 Requires cherry-pick to Orchestrator 2.0 kind/bug A bug or regression in expected behavior.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants