-
Notifications
You must be signed in to change notification settings - Fork 176
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
PipeNet rewrite #2304
Open
M-W-K
wants to merge
156
commits into
GregTechCEu:master
Choose a base branch
from
M-W-K:graphed-pipenet
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
PipeNet rewrite #2304
Conversation
This file contains 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.
What
Completely rewrites the pipenet system from the ground up, with three major goals:
Outcome
Future expansion of pipenets, or just graphnets in general, will be much easier for gtceu and addon mods. Half of this is because the mess of generics lying around everywhere has been drastically cut back. The other half is due to a more modular approach to storage of properties on the net; the system is very reminiscent of material properties. In addition, the abstract 'graphnet' api backing pipenets has been made separate, allowing for graphnets that aren't pipenets.
Since routing of things is now based on the more abstract graphnet, all pipenets can use any of the traversal algorithms that are defined, if they are made compatible with the traversal algorithm. This means things like round robin fluid distribution.
In addition, moving to the graph abstraction means that traversal can be across the graph instead of the world. By updating the topology of the graph based on changes to the world, but not relying on the world itself, this allows for avoiding things like chunkloading for traversal, as well as the application of graph theory principles.
Additional Information
Ignore the like 75 commits that came before I started rewriting from scratch, most of that code will be discarded (after the new implementation is finished because I still steal code from the old stuff)
Also fixes #2582
Potential Compatibility Issues
The entire pipenet API and internals is getting rewritten. There will be very large compatibility issues with any mod that touched the pipenet.
Progress