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

Dedicated Script/Scene Inheritance View #13357

Closed
willnationsdev opened this issue Nov 28, 2017 · 1 comment
Closed

Dedicated Script/Scene Inheritance View #13357

willnationsdev opened this issue Nov 28, 2017 · 1 comment

Comments

@willnationsdev
Copy link
Contributor

Currently, the only view that we have into our project folder is the FileSystem dock. Within this view, we see the file system as it exists, but it would be extremely helpful to have a view that is dedicated to rendering a view that portrays the relationships that our resources have to one another. Allowing such a view to additionally provide a high level of customization for that data would be extremely helpful. For example...

  1. sorting and filtering of the resource relationships
  2. scripted capacity to trigger the view when desired
  3. scripted capacity to attach interactivity with the resources in the view

As an illustration of this, you could have a bottom panel that pops up when certain nodes are selected (#2), the same way the Animation panel triggers when clicking on an AnimationPlayer node. For whatever node is selected, you might have a script that performs an evaluation of the node and returns a list of sorting and/or filtering flags that modify the resulting Tree of resources displayed in the panel (#1). You could then also have a custom toolbar of actions that reacts to the type of resource currently selected. Clicking on a resource sets the toolbar, and then clicking on a buttons within the toolbar allow you to use that resource in connection with the selected node (#3).

Examples of scripted functionality people might attach to this:

  1. When I click on a node that has the name "characters", I want to see a scene hierarchy of all scenes in which the root node is a member of the "character" group. I want to be able to type into a search bar to filter scene file names. I want to be able to click on a scene file, select an "add as child" button, and create an instance of that scene underneath the "characters" node.

  2. I have created 2 scripts that assume a parent-child relationship with one another (similar to Area2D and CollisionShape2D). When I click on a node that has the parent script attached, I want to see a script hierarchy of all scripts that inherit the child script. I want to click on a filter button which calls a static method on all of those scripts and then removes all of the scripts from the list that return false. I then want to click on a script, select a "create a node with this script as child" button to make the node with the script under the parent.

  3. Whatever trigger / sorting / filtering / interaction settings you want.

I feel like you could have a basic one built into the engine that just supports a simple script/scene inheritance hierarchy of the res:// folder and then attach some simple functionality (double-clicking a resource to open it, single-clicking and pressing a button to instance, filter resources with a LineEdit, etc.), and then you could leave it open to further enhancement with EditorPlugin methods.

Does this sort of thing sound ridiculous and purely in the realm of plugin development, or would the basic underlying functionality here appear like a good idea to add to the main engine repo, giving support for expansion with scripts?

@Calinou
Copy link
Member

Calinou commented May 26, 2020

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.

The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.

If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants