Dimension Warp

by Anakhon

Build your base, defend it from the locals and get back to your home, Nauvis. A remake of the great warptorio2 (Vanilla and SpaceAge compatible).

Overhaul
a month ago
2.0
1.25K
Combat Enemies Environment Mining Power

i Disable specific surfaces

3 days ago
(updated 2 days ago)

Hi,
I was about to post a hack that I used to make Factorissimo 3 behave then saw that you where working on a patch on github,
so I have a suggestion:

Could you make the disabling of surfaces a setting (ex: sub strings or patterns) so that your patch also works for mods like Integrated Circuitry that also generate an invalid surface (this way players can play with new mods that add functional surfaces without having to wait for you to release a specific patch)?

Also, I like your version of Warptorio quite a bit (access to warp fluid pipes was one of the main reason I didn't finish my run of Warptorio 2 space age, and having real power poles between surfaces instead of a battery makes cross platform energy setups viable, which was not possible before).
For a first mod, this is impressive :)

2 days ago

Integrated Circuitry should be fine as far as I can see: they create surfaces, but not planets (which I use to determine the list of available planet to generate for the warp). No ?

Factorissimo, on the other hand, creates planet based on planets for its factory surfaces which is why I need to explicitly exclude them.
I need to have a look again, because from what I remember, i'm not able to prevent a factory to be built in the warp platform surface (as factorissimo recreate the factory if another mod deletes it).
More details here: https://github.com/notnotmelon/factorissimo-2-notnotmelon/issues/224
tl;dr; it's a pain to deal with, so it's easier to just set it not compatible. (i still may try to make it compatible at some point, as i'd like it to work)

If you have input on this subject, i'm also open, as I may have missed some things.

Basically, if you use factorissimo anywhere, but in the warp surface, it works fine actually, but you'll lose everything in it / may crash your game if you put it in the warp surface.

For the custom surfaces, if i'm not mistaken, as long as the mods add a surface and not a planet for their "custom invalid surface", it should be fine. For other, clearly it would need a patch.
I'm not really fond of "settings with patterns" (or substring, whatever), as unless the user know what he should do, it will never be used correctly (and may lead to issues)

2 days ago

My bad for Integrated Circuitry, I indeed never had any issues with it, I got confused with Warptorio 2.

Factorissimo needs to patch a few thing to make itself compatible with warp mods (In particular, the invalid assert when cloning factories, the use of surface names instead of planet names when testing if a factory should be active or not, and the assumption that the valid planets are not hidden, ex: Neo Nauvis).

Basically, if you use factorissimo anywhere, but in the warp surface, it works fine actually, but you'll lose everything in it / may crash your game if you put it in the warp surface.
I will have to test this again to make sure.

I'm not really fond of "settings with patterns" (or substring, whatever), as unless the user know what he should do, it will never be used correctly (and may lead to issues)
True, but to be honest I didn't find another solution, since we can't query the list of planets in the settings stage :(.

2 days ago
(updated 2 days ago)

I almost got rid of all the bugs (in particular the crash caused by Electria, Smeltus and Produstia), now the only weird behavior that needs fixing is:
when cloned, the factory has a surface (ex: neo-nauvis-19) without an associated planet (ex: neo-nauvis), I'm still trying to understand how this happened and which of Dimension Warp or Factorissimo 3 is at fault.
(note: deconstructing and placing back the factory fixes the issue and you can enter it again, as this time neo-nauvis-19 is linked to the planet neo-nauvis)

2 days ago
(updated 2 days ago)

~After using an ungodly amount of print debugging (tbh, if I knew how factorio planets work I would have found it a lot faster): The issue from my previous message comes from the fact that the clone runs while the previous surface is the one associated to neo-nauvis (or any other planet really), while the one being copied/cloned to is not associated (yet) to the planet (the association is done when the previous surface is deleted). So the solution would be a patch to update the factories in platform_force_update_entities (and yes, if I did find the comment on this method first, I would have saved a few hours of research XD).~
Never mind, it will be easier to add a special case for planets with a specific pattern in Factorissimo 3. That said, it is good to know that for _, entity in pairs(surface.find_entities_filtered{area = platform, type = "storage-tank", name = "factory-1"}) do entity.clone{position=entity.position, create_build_effect_smoke=false} entity.destroy() end does "work" if the issue would arise for other mods requiring access to the target planet when cloned.

New response