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

Integrating the functionality to fully create a Reflexion City independently. #819

Merged
merged 173 commits into from
Jan 28, 2025

Conversation

Cyclone1337
Copy link
Collaborator

This pull request enables the creation of initial reflexion cities, which can then load various implementations or architectures. Alternatively, the architecture can also be created completely independently.
The loaded sub-graphes are merged into a single graph as usual. Additionally, a new NodeType ROOT has been introduced for the root node of the cities.
Sub-roots for the architecture graph receive the type ARCHITECTURE while those for the implementation graph receive IMPLEMENTATION.
Nodes of these types cannot be added again via the AddNode action, and can't changed their type via EditNode.
Therefore, the Delete action for this sub-root-types has been modified to clear the nodes - this means deleting only their existing children.
The colors for these root nodes have also been updated.

  • The main root is now royal blue, symbolizing stability, trust and authority.
  • The implementation root is green, representing growth, technology and development.
  • The architecture root is gold, signifying value, structure and vision.

The MetricLevel key had to be updated in MetricMaxima to ensure that dynamically nested nodes are created and displayed correctly without triggering an error. (Previously, new nodes had a higher MetricLevel than the maximum allowed level, and this was not corrected even when re-triggering the maximum level. Refer to commit d02a97e from November 1, 2024.)

The RuntimeConfigMenu is rebuilt every time a city is added or deleted.
Cities added during runtime are assigned a name to distinguish them in the RuntimeConfigMenu.
To achieve this, the StringProperty class has been enhanced with form validation.

It is important to note that the new CitySelectionManager component must be added to all tables for them to be managed in the RuntimeConfigMenu. This component manages a list of all tables, including their associated cities, which avoids potentially expensive GameObject.Find calls.
The Re-Draw functionality has also been integrated into the RuntimeConfigMenu.

Several smaller fixes were also implemented, such as restoring network functionality for the Delete action and resolving an issue with the ContexMenu that occured due to the XR merge.

…esponding dialog. The use of strings for type selection will be improved.
…ig menu for the universal tables. These initally do not have a city component.
…versal tables, not every object with the tag CodeCity has a component of the AbstractSEECity (or subclass).
…need to be adjusted and made more initial. It's only the first version.
… is on the right and the implementation root is on the left. Additionally, the nodes are scaled so that the architecture root occupies 60% and the implementation 40% of the table.
… being changed. When adding a new node, ensure that a root type cannot be assigned.
…reation. Otherwise, the key was never updated and the metric color was calculated incorrectly. In the future, it must be checked whether additional keys need to be updated.
…ation root if it hasn't been loaded yet. An upload icon has been introduced for this purpose. The loading functionality has not yet been implemented.
Copy link
Collaborator

@koschke koschke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are only a few more issues that need to be fixed.

Assets/SEE/Game/City/SEEReflexionCity.cs Outdated Show resolved Hide resolved
Assets/SEE/Game/City/SEEReflexionCity.cs Outdated Show resolved Hide resolved
Assets/SEE/Game/City/SEEReflexionCity.cs Outdated Show resolved Hide resolved
Assets/SEE/Game/City/SEEReflexionCity.cs Outdated Show resolved Hide resolved
Assets/SEE/GameObjects/CitiesHolder.cs Outdated Show resolved Hide resolved
Assets/SEE/GameObjects/CitySelectionManager.cs Outdated Show resolved Hide resolved
Assets/SEE/Net/Actions/LoadPartOfReflexionCityNetAction.cs Outdated Show resolved Hide resolved
Assets/SEE/Net/Actions/ReviveNetAction.cs Show resolved Hide resolved
Assets/SEE/Net/Actions/ReviveNetAction.cs Show resolved Hide resolved
Cyclone1337 and others added 5 commits January 28, 2025 09:44
The progressState should not be maintained by the called method
CreateReflexionCity() but rather by Update(). One would not expect
this kind of side effect for a method named CreateReflexionCity().

Swapping via tuple (suggested by Visual Studio).
…rovement

# Conflicts:
#	Assets/StreamingAssets/SEE/BranchCity.cfg
Copy link
Collaborator

@koschke koschke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am still not convinced that the creation of cities will work in a multi-player setting. Please see my notes.

Assets/SEE/GameObjects/CitySelectionManager.cs Outdated Show resolved Hide resolved
Assets/SEE/GameObjects/CitySelectionManager.cs Outdated Show resolved Hide resolved
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few bad patterns I found which you should check.

Assets/SEE/Game/City/CityAdder.cs Outdated Show resolved Hide resolved
Copy link
Collaborator

@koschke koschke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only one more clarification questions.

I fixed the issue for AddCityNetAction myself. Its Execute() method just called the overridden method and didn't do anything else. The override is then unnecessary.

Assets/SEE/Net/Actions/City/AddCityNetAction.cs Outdated Show resolved Hide resolved
@koschke koschke enabled auto-merge January 28, 2025 13:32
@koschke koschke disabled auto-merge January 28, 2025 14:08
@koschke koschke merged commit 83b8082 into master Jan 28, 2025
8 of 9 checks passed
@koschke koschke deleted the reflexion-table-improvement branch January 28, 2025 14:09
@koschke koschke restored the reflexion-table-improvement branch January 28, 2025 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants