Automatic JSON nodes#1885
Merged
diogotr7 merged 10 commits intoantonpup:devfrom Mar 25, 2020
Wibble199:feature/autojsonnode
Merged
Automatic JSON nodes#1885diogotr7 merged 10 commits intoantonpup:devfrom Wibble199:feature/autojsonnode
diogotr7 merged 10 commits intoantonpup:devfrom
Wibble199:feature/autojsonnode
Conversation
This is a subclass of the Node<T> and will automatically populate the fields defined on it from the parsed JSON when possible, saving profile developers from needing to add many repetitive statements into the constructor. Additionally added some methods to Node<T> and GameState<T> that simplify the creating of child-node getters. Also made the Node's getter methods (e.g bool GetBool(string name)) case insensitive.
Removed multiple identical 'ProviderNode' classes.
…le identical 'ProviderNode' classes.
diogotr7
approved these changes
Mar 25, 2020
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a quality-of-life feature for profile developers and will not directly affect users.
Adds a new class
AutoJsonNodewhich is a subclass ofNodeand dynamically creates a constructor based on the fields it has. This constructor is compiled with LINQ and only created once (therefore only incurring the expensive reflection penalty once).Adds a new method to both
NodeandGameStatecalledNodeFor<T>which simplifies the creation and caching of sub-nodes inside nodes/gamesstates for the profile dev.The various
GetXmethods in the Node (such asGetBool) have been made case-insensitive.The Minecraft profile has been altered to use these automatic nodes as a demonstration.