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

Split the notion of an Orchestration #383

Closed
Naros opened this issue Jun 4, 2024 · 0 comments · Fixed by #386
Closed

Split the notion of an Orchestration #383

Naros opened this issue Jun 4, 2024 · 0 comments · Fixed by #386
Labels
kind/enhancement New feature or request
Milestone

Comments

@Naros
Copy link
Member

Naros commented Jun 4, 2024

Description

In the current design, the code treats the concept of an Orchestration as an OScript. In other words, when a .os file is loaded, the code creates an instance of the OScript resource, which by design is an attachable resource on a node in the scene. But in an effort to extend Orchestrator to support concepts like macro libraries, we need to split this definition.

Implementation ideas

Conceptually, we should aim for something like this:

Orchestration

class Orchestration {
  // All common code here
};

OScript

class OScript : public godot::ScriptExtension, public Orchestration {
  // Implementation of Godot's ScriptExtension
  // Any OScript-specific behavior only
};

OScriptMacroLibrary

class OScriptMacroLibrary : public godot::Resource, public Orchestration {
  // Implementation of the Macro Library behavior 
};

Most code would then take an Orchestration reference rather than an OScript or OScriptMacroLibrary reference. This will allow the plug-in to work with the common contract independent of the actual underlying resource loaded and only branch on the case-by-case scenarios.

This has the added value that as we want to extend Orchestrator to support things such as state-graphs, we've already built the architecture to have a single resource file that can contain a combination of state graphs and other orchestration bits or a defined subset of these based on rule-sets.

@Naros Naros added the kind/enhancement New feature or request label Jun 4, 2024
Naros added a commit to Naros/godot-orchestrator that referenced this issue Jun 7, 2024
Naros added a commit to Naros/godot-orchestrator that referenced this issue Jun 7, 2024
Naros added a commit to Naros/godot-orchestrator that referenced this issue Jun 7, 2024
Naros added a commit to Naros/godot-orchestrator that referenced this issue Jun 7, 2024
Naros added a commit to Naros/godot-orchestrator that referenced this issue Jun 7, 2024
Naros added a commit to Naros/godot-orchestrator that referenced this issue Jun 7, 2024
@Naros Naros closed this as completed in #386 Jun 8, 2024
@Naros Naros modified the milestone: 2.1 Jun 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant