This bug has been seen before, but the exact mechanic was misstated, and therefore the root cause of the bug was not included.
When a door opens, it has to choose a building temperature to set itself to. Unfortunately, the code currently has that temperature be set to the average temperature of the two tiles of the door when the open command was received.
In this video, we can see this in action:
On the first door open, I used debug to spawn in the doors and open them instantly. The doors are 20 C, but the steel between the doors lost temp to the doors to standard conduction.
Then I close the doors. This creates the two physical tiles of the door at 20 C, showing that heat was, in fact, deleted.
Then I let the simulation run for a few seconds and pause, looking at the actual tile temps of the doors. The right powered door's bottom tile is 291.3 C and the top tile is 226.2 C, which averages to 258.75 C, which is rounded to 258.7 C. The left unpowered door starts with tiles at 191 C and 83.7 C, which averages to 137.35, which averages to 137.4 C. But, while the doors are in the process of opening, the tiles pick up a lot of heat from the steel, which is then destroyed.
I would consider this a very important bug due to how common doors are used as heat injectors in builds involving high temperatures.
(EDIT: Actually, I'm less sure now about the severity of the bug. I was measuring massive heat deletion, losing 1.69 times more heat spent than the system should have been drawing from my heat source, but I am having trouble reproducing those numbers. I'm still losing heat, but a far less drastic amount.)
I think this bug would be fixed if the door's physical temperature was chosen when the physical tiles are replaced with vacuum rather than when the doors start opening. In the code, there is probably a function that gets called when a door is done opening. If the door's temperature were set in that function based on the current temperatures of the two tiles before they are removed from the simulation, then this heat bug would not exist and doors would not delete (or create) heat.
- Build a door (preferably unpowered to magnify the effect) next to a heat source.
- Pause
- Check tile temperatures of the door and average the two values.
- Order the door to be opened using debug or sandbox.
- Watch tile temps of door continue to increase as the door opens.
- Watch the door's temp be overridden by the average temp you measured in the step 3.
A developer has marked this issue as fixed. This means that the issue has been addressed in the current development build and will likely be in the next update.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now