Skip to content
This repository has been archived by the owner on Jan 18, 2022. It is now read-only.

Add component metaclass / command metaclasses #1173

Merged
merged 11 commits into from
Sep 26, 2019

Conversation

jamiebrynes7
Copy link
Contributor

@jamiebrynes7 jamiebrynes7 commented Sep 23, 2019

Description

In the quest to expose (component ID, command index) -> command name pairs in preparation for command network stats GUI work, we found that we could simplify and reduce the amount of reflection required at startup by introducing metadata classes.

Whereas previously, for every type we wanted to reflect over related to a component (i.e. - serializer, diff storage, etc) we would do a full search through all the assemblies for these types.

Now we statically generate this information in the metaclass and do reflection once to find those metaclasses. This also has the benefit of allowing us to expose the information ((component ID, command index) -> command name pairs) that we originally wanted in a clean way.

Along the way we made a small breaking change to improve the coherency of the API.

Tests

  • Ran playground
  • Ran tests

Documentation

  • Changelog
  • Upgrade guide
  • ❓ Docs? Turns out there are none

@improbable-prow-robot improbable-prow-robot added jira/no-ticket Indicates a PR has no corresponding JIRA ticket A: core Area: Core GDK size/XL Denotes a PR that changes 300-599 lines, ignoring generated files. labels Sep 23, 2019
@improbable-prow-robot improbable-prow-robot added size/XXL Denotes a PR that changes 600+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 300-599 lines, ignoring generated files. labels Sep 23, 2019
Copy link
Contributor

@jessicafalk jessicafalk left a comment

Choose a reason for hiding this comment

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

two small nits

@jamiebrynes7 jamiebrynes7 merged commit 03c81b4 into develop Sep 26, 2019
@jamiebrynes7 jamiebrynes7 deleted the feature/component-metaclass branch September 26, 2019 09:46
jessicafalk pushed a commit that referenced this pull request Nov 15, 2019
* Cleanup dynamic objects on entity removal

* PR feedback
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A: core Area: Core GDK jira/no-ticket Indicates a PR has no corresponding JIRA ticket size/XXL Denotes a PR that changes 600+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants