Heat managment


Adds thermal mechanic from TFMG to vannila and beyond

Content
3 days ago
2.0
175
Factorio: Space Age Icon Space Age Mod
Transportation Logistics Environment

b Crash with Negative Space installed

2 days ago

I am the author of the mentioned mod, and a user reported this error to me first here: https://mods.factorio.com/mod/negative_space/discussion/6954de8ae2db996ba2131fae

When the mod Negative Space is installed, the game crashes on startup with the following error:

Error while loading entity prototype "negative-space-auto-thermal-interface3" (reactor): Invalid heat pipe connections: connections must all be at least 1 tile distance from each other. Connection 1 ends up being the same as connection 5. in property tree at ROOT.reactor.negative-space-auto-thermal-interface3.heat_buffer.connections

You can see the prototype specification for this entity here: https://github.com/Rycieos/factorio-negative-space/blob/5bbb27ede6597b3d6a5d605ffec6055ee358667a/prototypes/entity.lua#L39-L75

What is interesting about this entity is that, while is it an assembling-machine type, it has no recipes and almost no energy usage. This entity needs to support mirroring, and the Factorio engine will only mirror entities that it thinks might need mirroring, meaning the entity needs either asymmetrical fluid connections or item outputs, or an asymmetrical bounding box. So the entity needs to be assembling-machine, but not to actually craft anything. And none of it matters anyway, because this entity is never actually placed in the world; it exists as ghosts and in blueprints only.

All that to say, clearly this entity does not need heat mechanics. And obviously something is going wrong in TFMG-thermal when trying to add the heat interfaces to it. If you know what is going wrong and you think it's something I could fix on my side, I'd be happy to take a look. But the correct way to fix this IMO is to not add the interfaces to this entity at all.

I recommend adding a check in this mod to skip adding thermal mechanics to entities if they have energy_source = { type = "void" }. Regardless of if you think that is a good idea, you should also add a key that this mod checks to opt out of this mod touching the entity.

a day ago

You entity could likely also be a simple entity with owner. They also support rotations.

a day ago

I don't need just need rotations, I also need mirroring. I was previously trying as a simple entity with owner, and it was not working until I made it a machine.

a day ago

Ok, fair enough.

New response