-
Notifications
You must be signed in to change notification settings - Fork 98
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
GT6 Styled Pipes & Cables #1264
GT6 Styled Pipes & Cables #1264
Conversation
Antifluxfield
commented
Oct 30, 2017
•
edited
Loading
edited
- Pipes won't auto matically connect to each other, unless you directly place them on the block they could connect to. Otherwise you should use wrenches to connect or disconnect them. Also, for fluid pipes, you can disable its input at specific side by sneak-rightclick with your wrench, and click again to re-enable them. These feature changes can be disabled by config.
- Cables connections can also work simillar as pipes, but this is disabled by default. If you enable the config, you need to use wire cutters or soldering irons to connect/disconnect the cables.
- Based on the cable connection change above, you can enable another feature which requires soldering materials when connecting wires.
- Add Quadruple and Nonuple fluid pipes.
- ItemPipe tick time customization #1255 is also included here, so I closed that pr.
So are these meant to immitate GT6 pipes? |
Yes, just immitate. |
Nobody had an issue with cables at all, just the useless pipes. Id say cable changes should default off, and continue to function exactly the same unless someone wants otherwise via config. Edit: Does this change sloshing in pipes? Thats basically half the issue, the other half being people didnt like automatic connections. Did you do this from scratch or utilise GT6 src? Good work either way. |
Thanks. |
I figured doing it from scratch was easier than merging in 6 code. But all the non-coders were hell bent on us using code from 6. Im sure this PR will sit open for a while, both for test results and code review. |
646d6f7
to
78aa11b
Compare
@Antifluxfield If this pull is ready please do one for gtnh too. Thanks |
I think this part will help with that:
If I'm understanding that correctly, it would make the pipe side effectively a one-way valve. Personally, I'm still not convinced sloshing is as big a deal as others make it out to be. Seems to me that simply keeping the pipes full (or nearly) should avoid most sloshing issues. |
I believe the sloshing fix that Greg implemented in GT6 was to make sure that fluid when it enters a pipe cannot exit out the same direction it entered. It will try the other available directions first. This allows a tiny bit of fluid in a pipe to eventually drain to one end. |
So this is for the situtation where you've stopped using one fluid and want to switch to something else? I can believe there are some fluids valuable enough to not want to lose even trace amounts by breaking and replacing the pipes, but it seems like those would also be valuable enough to justify adding pump covers and/or shutter modules to do this. |
That is indeed the situation. It is mainly a quality of life thing as if you have a very long line of pipes, and needed to switch from one fluid to another, simply placing a tank on the pipe wouldn't drain it completely. You would need to break and replace every single pipe in the line to make it happen. If you had 100 pipes in a hard to reach area, it would be a royal pain to do so. |
Specifically GT6 pipes remember from what directions a fluid last flowed 'into' it and will only output to other faces after that (resetting that list, it is only persisted for one tick). That does indeed allow fluids to eventually 'flow out' as long as some pipe outputs to something that can not input back to it. |
Well, we do have that record, and I've just noticed that we weren't actually using it... It's quite easy to fix so. |
Are you sure we're not? Looking at https://github.com/Blood-Asp/GT5-Unofficial/blob/unstable/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java#L241-L242 and https://github.com/Blood-Asp/GT5-Unofficial/blob/unstable/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java#L267-L269 I think we might be. |
@MauveCloud I mean I forgot to use it... |
27fa122
to
f6a9bbb
Compare
I figure there must be some additional benefit(s) to having the pipes not automatically connect (otherwise, why would Greg set up GT6 pipes to behave that way?), but I agree that having 2 options for the pipes (one to allow toggling connections via wrench and one to allow toggling inputs via sneak-click with wrench) instead of just one would be a good idea. |
Just because Mr Gregorious does something doesn't mean it's the best way. |
de1570c
to
f6a9bbb
Compare
@draknyte1 There already is a config to disable the non-auto connection... |
Seems to work okay for me, though I notice an amusing side effect (at least in SSP, idk if it would also happen in SMP): while holding a wrench or cover (or presumably one of the other related items), I can walk on uncovered small pipes as if they're full blocks, but when I switch to something else, I fall a fraction of a block.
TBH, I haven't noticed much issue with sloshing myself, but I decided to playtest this PR a bit anyway (though I'm rather slow at that, perhaps partly due to doing so in a new SSP game). Looking at #1253 again, I'm not sure it's so much a question of "mistakes" hooking up pipes, but concerns over the cost of cover materials:
I have to wonder whether this commenter is aware that wood plank covers can be made at a rate of 2 per wood slab, which seems pretty cheap to me, considering how renewable wood is. Technically, painting the pipes different colors will already prevent fluids from transferring between them (if I'm reading the code correctly), but I don't think it will prevent them from looking connected (though I think this PR might fix that even with the option set to allow automatic pipe connections), and afaik they can only be painted after being placed, so one would need to temporarily add some covers or paint the pipes while they're empty. |
Latest commit to this PR seems to have fixed the chunkloading issue. Now I'm curious how faithful you're trying to be to the pipes and cables being "GT6 Styled". I just did a bit of testing in creative mode with a recent build of GT6, and noticed a couple of things that haven't been carried over:
|
Ummmm... |
I do like having a highlight to know which control is active, but the X's show the current pipe connections. This is most useful when connecting huge pipe since the pipe fills the entire block, there is no watt to know which faces ate open and connecting to adjacent pipe. |
0640ff3
to
f8a18c8
Compare
f8a18c8
to
e9e88db
Compare
I get spammed by lots fo GL Errors when pointing the wrench on a pipe: [20:58:12] [Client thread/ERROR]: ########## GL ERROR ########## |
This is why you don't merge untested bs unreviewed PRs... |
Oh yes, because you would have seen it with a single look at the code and i never check anything... I make testbuilds for everyone to test them in real enviroments because that works in reality compared to your holy reviews... |
I'll admit I hadn't noticed it either, mostly because I had been leaving the log window closed while playing (plus I'd been taking a break from even playing Minecraft), but after adjusting connections, the GL Error happens to me with the custom build I made as well, so I have to share draknyte1's skepticism about the claimed pre-merge testing.
|
Typical @Blood-Asp tier testing. |
I never said i did not try a test version before merging. In fact i did. I tested the stated changes and saw them working. Also where there multiple persons that tried the PR before and did not notice the GL Error. As alternative i could have waited another few weeks and maybe we had got some reviews, likely not all anyways. And there where enough PRs before that had all Reviewers Appove of them and still errors. |
I've been playing with this recently noticed that even if an item pipe shows unconnected visibly (specifically noticed with machines), it will still route into the machine. EDIT: Should have clarified, it's downstream on a bleeding edge version of the GTNH fork; going with the assumption it impacts upstream as well. |