Potentially fixed the remaining issues with Duplicants turning invisible.
Pacus can no longer swim through two touching diagonal tiles.
Pacus can no longer swim through mesh tiles.
Pacus are slightly happy that they ate from a feeder.
Ore should no longer fall/disappear on conveyors.
Hat wearing Duplicant portraits should properly show their hat hair.
Fixed an issue where a significant amount of translated strings were not properly loaded.
Pipe overlays should render properly when using sandbox tools in an area covered by fog of war.
Stone hatch eggs should now spawn Stone Hatchlings instead of adults.
Layed eggs should now look like the creature that will hatch out of the egg instead of the creature that layed the egg.
Fixed some Light Bugs not hatching the correct babies.
Fixed Slicksters hatching as adults instead of babies.
Thermal conductivity for heat exchange is now based on the average conductivity of the two elements instead of the minimum. This should improve the temperature exhchange of many things including radiant pipes.
View full update
I finally found time and energy to make formal derivation of how the "averaging" should look like (in my opinion, at least). Based on gross simplification, the correct formula is:
c(average) = 2*c1*c2/(c1+c2), or 2/(1/c1+1/c2), true harmonic mean.
The gross simplification is an assumption that when two materials are involved, then half of the "distance" between the "centers of temperature" is traversed through material using coefficient c1, and half of the distance it goes through material with coefficient c2. This assumption is valid when calculating heat transfer between tiles, but is highly questionable when calculating heat transfer between ambient element and pipe. It still could be used in my opinion.
Heat exchange occurs between two temperatures, T1 and T2, through materials with heat transport coefficients c1 and c2, over distance (thickness of insulating material) d, and over area s. For single material, the formula is:
E = c*(T1-T2)*s/d
For two materials, there's another temperature T3 coming into the equation, the temperature on the interface between two materials. And here also comes the assumption that the traversed distance is equal (d/2) for each material
E1 = c1*(T1-T3)*s/(d/2) = 2*c1*(T1-T3)*s/d
E2 = 2*c2*(T3-T2)*s/d
From first equation, we can calculate formula for T3:
T3 = T1-E1*d/(2*c1*s)
With E1=E2, we can plant the second equation in:
T3 = T1-(2*c2*(T3-T2)*s/d)*d/(2*c1*s) = T1 - (T3-T2)*c1/c2
T3 = (c1*T1 + c2*T2)/(c1 + c2)
Transferred energy then comes as:
E1 = 2*c1*(T1-((c1*T1 + c2*T2)/(c1 + c2)))*s/d = (2*c2*c1/(c1+c2))*(T1-T2)*s/d
from which we can pull the "average" coefficient
c(average) = 2*c2*c1/(c1+c2)