P.U.M.P.

by Xcone

P.U.M.P. (Prevent Unwanted Manual Pump-placement) adds a selection-tool with which you can select oil wells, and then plans the layout of pumpjacks and pipes for you.

Utilities
a month ago
0.18 - 2.0
55.6K
Mining Fluids Blueprints

g Aquilo Bug (doesn't work /properly/ on Aquilo)

2 months ago

On Aquilo, you need to place concrete, and/or Ice platforms to build. This mod doesn't do that, but it still places the ghost items down (e.g pipes/pumps), so bots will eternally hover.

Additionally, bots won't place heat pipes, which are required on Aquilo -- but I don't expect that to be added, since I feel like that'd be a lot more work to do semi-optimally :) (and auto-beacon support would be amazing, but I don't expect that to be added either)

This is definitely one of the best mods for Factorio though! <3

2 months ago

Hi, thanks for the report and the compliment; much appreciated :-)

That's something I should look into. I assumed it'd just work, as the sulfuric acid geysers on vulcanus also worked with the routine already in place. I'm not quite yet at aquillo myself though, or I would've noticed. As soon as I do, I will give it some attention. At least to the ice/concrete. :-)

2 months ago

I finally made it to Aquilo!
I really wanted to wait to fix until I was there, to proper experience what the expected behavior should be. But yea, .. that really wasn't right, was it :-)

Took some search, trying to uncover how the ice/concrete mechanic actually works, but I think I got it now. I just uploaded version 2.1.1. which should address the issue. Please let me know how it works for you?

2 months ago

Btw, I learned the issue wasn't limited to Aquilo, but can also occur when planning oil near water, or sulfuric geysers near lava. The fix for Aquilo should also add landfill or foundation in these cases (if unlocked by the appropriate research).

a month ago

Hi. I'm still having an issue with this, but now it's that it only seems to place normal concrete. I use refined concrete exclusively, which works for normal force-building but doesn't with this mod. From what I know there's some variable somewhere that holds the default cover tile for force-building, and it gets assigned based on the most recently used cover tile.

a month ago

I do use a hard-coded "concrete" value, so it makes sense to me it won't work with refined concrete. I didn't know of this behavior and the "variable somewhere" you describe. So resorted to the hardcoded value, though I didn't really like I had to.

I will need to look into variable and make a change once I find it. Do you by any chance know of a mod that already uses it? Having an example would make that a bit easier. :-)

a month ago

I asked around, and it doesn't appear to be available for mods (yet). I asked on the forums to expose the variable in the modding API:
https://forums.factorio.com/viewtopic.php?f=28&t=122627

Looks like there's a lot of requests for API changes though, so I am not holding my breath it'll be added quickly.

a month ago
(updated a month ago)

Ah, I see, darn. :/ Could add a way for the user to select the type of cover tile instead of hard-coding it. Not the best solution, I know, but it'd work until the proper API is exposed.

a month ago

Yea, that sounds like a good option, tbh. I must admit I don't really like the variability this hidden option will have. Seems weird to have different outcomes depending on what tile you may have used a second or an hour ago.

I tried to quickly add the option; but it's more work then I anticipated. The current options are all based on entities (buildings) along with the matching API calls and UI controls specific to entities. Tiles are not entities so will need different handling in the API calls and UI. So basically I need to carve another path through the whole selection dialog flow just to expose this option. I do want to add it, but I will need to take my time for it. Most of this code was written a couple years ago, so I need to reorient myself here. So, no quickfix unfortunately.

I had hoped to offer a workaround by using an upgrade planner to replace concrete with refined concrete. But I just tried that, and it seems you can't replace tiles using the upgrade planner. :-(
Heh, perhaps the devs didn't want to carve that path in the their upgrade planner UI as well :-p

a month ago

Well I'm glad to hear you're at least starting work on it. No hurry of course, I appreciate your work and love the mod! And yeah I ran into the same issue trying to use the upgrade planner, so I ended up grabbing the Tile Upgrade Planner mod as an interim solution. It's slightly less convenient but it works.

a month ago

Glad to hear another mod came to the rescue. Good to know it exists!

I just uploaded v2.0.4, which adds a selection for the tile to use on Aquilo. So hopefully it saves you the steps with an upgrade planner for future fields. Let me know if works for you. :-)

a month ago
(updated a month ago)

Thanks for working so quickly! Though, unfortunately, I'm testing it out now and it seems like it's somehow completely broken on Aquilo. It's saying "found obstructions on selected resources" no matter what I do, even if I just select a single resource node that very clearly has no obstructions. E.g.: https://qimg.techjargaming.com/i/deru7tfu.png I also tried the experimental planner and it made no difference.

a month ago
(updated a month ago)

I am suffering from the gool ol' "works on my machine". I just tried a dozen Aquilo fields on my save and they all worked fine.

Would you mind sharing you save file with me, so I can investigate what's happening there?

a month ago
(updated a month ago)

Sure! My actual save is too large, but I made a cheat save with the same seed and can still reproduce the issue: https://qimg.techjargaming.com/f/rs7FqYhe.zip

Also, I found that if I pre-cover the field in ice platform and concrete it works, so it's like it's just refusing to place any tiles now.

a month ago

I think I figured it out. It refuses to work if you haven't built something else with cover for meltable tiles, so I guess it has something to do with that hidden memory variable. I was testing on my cheat save since I didn't feel like going back to Aquilo on my main one, so that's probably why it came up. The mod also complained about not being able to lay out the pipes on this particular field, but enabling the experimental planner solved that.

a month ago

Yup, that seems to be it. Good call 👍

The game offers an API method which for a tile returns true/false if you can build there. It has a 'forced' option as well. With the forced option, depending on the research performed, it changes its result when sampling a tile of water/lava/ammonia. So at the start of the game it would return false for water. But after researching landfill it'll return true. P.U.M.P. uses this method to get the planning started.

What I learned in this, is that that hidden variable also affects the result of this API method; which is quite annoying t.b.h. Not really sure how I should properly deal with this from within P.U.M.P.. Seems weird to get a "yes you can build here" without offering a way to get what the prerequisites are. I'll guess I go update that interface-change-request with this info.

For now I am just happy things are actually working. I made A LOT of code changes that last few days working on the new logic and I was really scared for a moment I broke something. 😅

a month ago

Ah, yeah that all makes sense. Hopefully they'll improve the interface around meltable tiles. The new pipe planner seems to be working great so far. Many fields on Vulcanus and Aquilo that the old one just refused to deal with are no problem for the new one. Awesome work!

a month ago

Thanks! I am pleasantly surprised you picked up on it, and even more so that it performs well so far. Apart from a mention in the changelog it's not really in sight. But since you are using it; please keep in mind it is a work in progress, and it might make some weird choices. If you run into some of those, don't hesitate to share 2 or 3? A couple more test-cases won't hurt :-)

For this purpose I don't need a full save. Just a copy of "%appdata%/factorio/script-output/pump_planner_input.json" will do. This file is saved and overwritten each time you use pump. This thread is getting a little off topic in the meantime though, so maybe start a new topic if you decide to share the file(s). 🙏

a month ago

Will do! If I get any pipe layouts that look particularly odd I'll be sure to share them. :)

New response