123 float meterTemperature,
124 float meterInsulation,
125 out
float targetTemperature,
126 out
float targetTemperatureFlux,
127 out
float environmentTemperature) {
138 for (
int i = 0; i <
m_toVisit.Count; i++) {
140 if ((
m_visited[num7 / 32] & (1 << num7)) != 0) {
144 int num8 = (num7 & 0x3F) - 32;
145 int num9 = ((num7 >> 6) & 0x3F) - 32;
146 int num10 = ((num7 >> 12) & 0x3F) - 32;
147 int num11 = num8 + x;
148 int num12 = num9 + y;
149 int num13 = num10 + z;
151 if (chunkAtCell ==
null
156 int x2 = num11 & 0xF;
158 int z2 = num13 & 0xF;
162 float heat =
GetHeat(cellValueFast);
164 int num15 = Math.Abs(num8) + Math.Abs(num9) + Math.Abs(num10);
165 int num16 = num15 <= 0 ? 1 : 4 * num15 * num15 + 2;
166 float num17 = 1f / num16;
167 num5 += num17 * 36f * heat;
171 int num18 = Math.Abs(num8) + Math.Abs(num9) + Math.Abs(num10);
172 int num19 = num18 <= 0 ? 1 : 4 * num18 * num18 + 2;
173 float num20 = 1f / num19;
179 num += num20 * num23;
183 int num24 = Math.Abs(num8) + Math.Abs(num9) + Math.Abs(num10);
184 int num25 = num24 <= 0 ? 1 : 4 * num24 * num24 + 2;
185 float num26 = 1f / num25;
188 float num28 = y >= precipitationShaftInfo.YLimit ?
MathUtils.
Lerp(0f, -2f, precipitationShaftInfo.
Intensity) : 0f;
216 for (
int j = -7; j <= 7; j++) {
217 for (
int k = -7; k <= 7; k++) {
219 if (chunkAtCell2 ==
null
223 for (
int l = -7; l <= 7; l++) {
224 int num32 = j * j + l * l + k * k;
229 int x3 = (x + j) & 0xF;
231 int z3 = (z + k) & 0xF;
238 new Vector3(x + j, y + l, z + k) +
new Vector3(0.5f, 0.75f, 0.5f),
241 delegate(
int raycastValue,
float _) {
247 num31 += heat2 * 3f / (num32 + 2);
256 float num36 = 3f * num31;
257 num34 += 35f * num36;
262 num34 += num / num2 * num37;
266 float num38 = 4f * MathF.Pow(num4, 0.25f);
267 num34 += num3 / num4 * num38;
271 float num39 = 1.5f * MathF.Pow(num6, 0.25f);
272 num34 += num5 / num6 * num39;
275 environmentTemperature = num35 > 0f ? num34 / num35 : meterTemperature;
276 if (meterInsulation > 0f) {
277 num34 += meterTemperature * meterInsulation;
278 num35 += meterInsulation;
280 targetTemperature = num35 > 0f ? num34 / num35 : meterTemperature;
281 targetTemperatureFlux = 0.01f + 0.004f *
MathUtils.
Max(num35 - meterInsulation, 0f);