Skip to content

Disallow certain entities in space#551

Open
Qatavin wants to merge 44 commits intomodded-factorio:devfrom
Qatavin:space-burner-fix
Open

Disallow certain entities in space#551
Qatavin wants to merge 44 commits intomodded-factorio:devfrom
Qatavin:space-burner-fix

Conversation

@Qatavin
Copy link
Copy Markdown
Collaborator

@Qatavin Qatavin commented Mar 1, 2026

Pertains to #547

Adds surface_conditions to various entities where appropriate so they will not be able to be built in space or other inappropriate locations.

Burner assembly machine, burner electric generator and fluid burning generators, burner heat sources, stone and steel and fluid burning chemical/mixing furnaces, roboports of all kinds, and burner labs are all banned from airless environments.

Locomotives, cars, and tanks have added condition that blocks them from airless environments (previously they only had the gravity limitation) due to their burner engines. Spidertrons will also have the gravity requirement, and the ones with burner power sources (depending on the setting) will also require air pressure.

Blocked from 0g environments but not airless ones: greenhouse (an enclosed environment, so no air is okay, but plants don't grow well without gravity), chests/logistic chests, ground combat drones other than flamethrower drone (which also needs air)

Steam mining drill changed so that it is allowed to be used with no atmosphere.

There are also some weight modifications in there. I'm working on that too, mostly in a separate branch. It's badly needed, as some of the rocket capacity calculations are very odd if you let them be generated automatically.

@KiwiHawk
Copy link
Copy Markdown
Contributor

As much as possible I think we should avoid checking for if Space Age mod is enabled. This will be better for mod compatibility.

Using surface conditions requires the space-travel feature flag to be enabled.

@Qatavin
Copy link
Copy Markdown
Collaborator Author

Qatavin commented Mar 11, 2026

I suppose, if it works.

The freezing parts do need to be Space Age dependent, though, since they reference assets that are contained within the mod.


if mods["space-age"] then
data.raw.container["bob-brass-chest"].surface_conditions = {
{ property = "gravity", min = 1 },
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated this to 0.1 to match Space Age. Just for chests

@Qatavin
Copy link
Copy Markdown
Collaborator Author

Qatavin commented Mar 29, 2026

I see a few issues with how freezing is being handled. I'll take care of that real quick.

@KiwiHawk KiwiHawk marked this pull request as draft March 29, 2026 02:07
@Qatavin Qatavin marked this pull request as ready for review March 29, 2026 05:52
@Qatavin
Copy link
Copy Markdown
Collaborator Author

Qatavin commented Mar 29, 2026

Revised how freezing was handled. Heating_energy will now always be applied if the freezing feature flag is on. Since space-age is needed for the graphics, those are now in a nested conditional.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants