Full rewrite of the ZoomTube system#338
Full rewrite of the ZoomTube system#338Daniel-Cortez wants to merge 9 commits intoTechokami:Player-Refactorfrom
Conversation
|
ooh this one sounds fun. Didn't even know that was planned. |
two-way_pipes.mp4 |
e8f0c3a to
2f15cdb
Compare
|
One thing I think I'd like to see on this is a visual aid in the editor for understanding which pipe has which set of odds when switching. Is that something you think you can implement? Everything else here looks good to me. EDIT: I guess also the forking when going backwards might complicate things when making a tool like that though... You know, when I'm thinking about this a little more I'm not sure we shouldn't just have each entrance be its own gimmick rather than having pipes being explicitly bimodal. Mind hitting me up a little later on Discord to talk design? EDIT2: For what it's worth, process vs physics process isn't going to be a major factor when repositioning a character when collisions and acceleration aren't coming into play. In fact, it might be preferable to keep it in process just to make the action smoother when 120hz displays are used with 60hz physics processing. |
2f15cdb to
2bc4998
Compare
2bc4998 to
dbf2acb
Compare
|
In-game footage: 2026-03-02.02-40-57_1.mp4 |
|
In-editor tube placement footage: 2026-03-02.03-36-41_1.mp4 |
|
Can't wait to play with this. Looks like you just keep upping the features too. |
|
I have a few findings on usability that we need to go over. I'll be happy to take some pushback on some of them if they are too much hassle for too little reward. A few others 1 - I can't connect the same zoom tube to a connector in two directions. IE - if I set connector A's north side to zoomtube B and then try to set connector A's east side as zoomtube B Is there a compelling reason for this? 2 - This is just a gripe, but the zoom tube path starts at the center of the graphic, so naturally the tube renders inside of the connector. Do you think it would be possible to fix that by having offsets automatically be determined and have a secondary path for the visuals that automatically places the terminal points offset from the tube center based on the size of the sprite? 3 - Please expose the connector/end sprite textures in exports similar to how the connector exposes its line texture. 4 - In a similar vein to 2, it's very easy for the tube to get visually messy near the terminals as you add points to the line. We can probably fix this by laying down a couple extra points on each side. I don't know if that's worthwhile though. 5 - I don't know if this is just a bug, but I think there are some nasty side effects to the connectors trying to aggressively control the first/last points of the zoom tube that make manual editing of the paths tricky. In fact, I think they might be gumming up the editor in general. When I end up in a situation where I can't delete path nodes I also seem to be unable to add objects to the scene at all. I'm not sure if this is something we can address immediately though. I'll test this issue more later. I'd shrug it off as a one-off thing if it hadn't happened to me twice while doing approximately the same type of thing. 6 - Ends can eject players the wrong way under certain conditions (this one is less negotiable -- we either need a fix for this or an explanation for why what I'm doing here is invalid) |
This fixes tubes graphics being rendered inside the connectors and terminals. Also, this allows to connect both sides of the same tube to the same connector in two directions.



After fixing an orphaned node in 1de2b1b I decided to take a closer look at the code in
ZoomTubePath.gd, as I was wondering why Base Zone only has one-way pipes. As it turned out, the two-way mode was never implemented, although some extra variables for it were already there.This PR is my take at finishing the said two-way mode. I also made one of the pipes in Base Zone two-way, and took a liberty at cleaning up the code a little bit.