136 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
137 float num97 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
138 int humidity26 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
139 int temperature38 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
140 int num98 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
141 int topHeight3 = m_subsystemTerrain.Terrain.GetTopHeight(point.X, point.Z);
142 return humidity26 > 8
145 && point.Y >= topHeight3
146 && (BlocksManager.Blocks[num98] is LeavesBlock || num98 == 18 || num98 == 8 || num98 == 2)
150 SpawnFunction = (creatureType, point) =>
SpawnCreatures(creatureType,
"Duck", point, 1).Count
155 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
156 float num95 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
157 int temperature37 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
158 int humidity25 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
159 int num96 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
160 int topHeight2 = m_subsystemTerrain.Terrain.GetTopHeight(point.X, point.Z);
161 return (humidity25 <= 8 || temperature37 <= 4)
163 && point.Y >= topHeight2
164 && (BlocksManager.Blocks[num96] is LeavesBlock || num96 == 62 || num96 == 8 || num96 == 2 || num96 == 7)
168 SpawnFunction = (creatureType, point) =>
SpawnCreatures(creatureType,
"Raven", point, 1).Count
173 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
174 float num93 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
175 int num94 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
176 int topHeight = m_subsystemTerrain.Terrain.GetTopHeight(point.X, point.Z);
177 return num93 > -100f && num93 < 40f && point.Y >= topHeight && (num94 == 18 || num94 == 7 || num94 == 6 || num94 == 62)
181 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Seagull", point, 1).Count
186 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
187 float num91 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
188 int humidity24 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
189 int num92 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
190 return num91 > 20f && humidity24 > 8 && point.Y < 80 && (num92 == 8 || num92 == 2) ? 0.25f : 0f;
192 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Wildboar", point, 1).Count
197 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
198 float num89 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
199 int humidity23 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
200 int temperature36 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
201 int num90 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
202 return num89 > 20f && humidity23 > 4 && temperature36 >= 8 && point.Y < 70 && (num90 == 8 || num90 == 2) ? 0.05f : 0f;
204 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
205 int num87 = m_random.
Int(3, 5);
207 int count2 = num87 - num88;
209 + SpawnCreatures(creatureType,
"Bull_Brown", point, num88).Count
210 + SpawnCreatures(creatureType,
"Cow_Brown", point, count2).Count;
216 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
217 float num85 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
218 int humidity22 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
219 int temperature35 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
220 int num86 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
221 return num85 > 20f && humidity22 > 4 && temperature35 < 8 && point.Y < 70 && (num86 == 8 || num86 == 2) ? 0.05f : 0f;
223 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
224 int num83 = m_random.
Int(3, 5);
226 int count = num83 - num84;
228 + SpawnCreatures(creatureType,
"Bull_Black", point, num84).Count
229 + SpawnCreatures(creatureType,
"Cow_Black", point, count).Count;
235 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
236 float num81 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
237 int humidity21 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
238 int temperature34 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
239 int num82 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
240 return num81 > 20f && humidity21 > 8 && temperature34 < 4 && point.Y < 70 && (num82 == 8 || num82 == 2) ? 0.01f : 0f;
242 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bull_White", point, 1).Count
247 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
248 float num79 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
249 int humidity20 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
250 int num80 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
251 return num79 > 40f && humidity20 >= 8 && point.Y < 100 && (num80 == 8 || num80 == 2) ? 0.075f : 0f;
253 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Wolf_Gray", point, m_random.
Int(1, 3)).Count
258 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
259 float num77 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
260 int humidity19 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
261 int temperature33 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
262 int num78 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
263 return num77 > 40f && temperature33 > 8 && humidity19 < 8 && humidity19 >= 2 && point.Y < 100 && num78 == 7 ? 0.075f : 0f;
265 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Wolf_Coyote", point, m_random.
Int(1, 3)).Count
270 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
271 float num75 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
272 int temperature32 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
273 int humidity18 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
274 int num76 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
275 return num75 > 40f && humidity18 >= 4 && temperature32 >= 8 && point.Y < 110 && (num76 == 8 || num76 == 2 || num76 == 3)
279 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bear_Brown", point, 1).Count
284 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
285 float num73 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
286 int temperature31 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
287 int humidity17 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
288 int num74 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
289 return num73 > 40f && humidity17 >= 4 && temperature31 < 8 && point.Y < 120 && (num74 == 8 || num74 == 2 || num74 == 3)
293 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bear_Black", point, 1).Count
298 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
299 float num71 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
300 int temperature30 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
301 int num72 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
302 return num71 > -40f && temperature30 < 8 && point.Y < 80 && num72 == 62 ? 0.1f : 0f;
304 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bear_Polar", point, 1).Count
309 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
310 float num69 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
311 int temperature29 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
312 int humidity16 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
313 int num70 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
314 return num69 > 20f && temperature29 > 3 && humidity16 > 6 && point.Y < 80 && (num70 == 8 || num70 == 2 || num70 == 3)
318 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
321 if (m_random.
Float(0f, 1f) < 0.35f) {
322 num68 += SpawnCreatures(creatureType,
"Horse_Black", point, 1).Count;
324 if (m_random.
Float(0f, 1f) < 0.5f) {
325 num68 += SpawnCreatures(creatureType,
"Horse_Bay", point, 1).Count;
327 if (m_random.
Float(0f, 1f) < 0.5f) {
328 num68 += SpawnCreatures(creatureType,
"Horse_Chestnut", point, 1).Count;
330 if (temperature28 > 8
331 && m_random.
Float(0f, 1f) < 0.3f) {
332 num68 += SpawnCreatures(creatureType,
"Horse_Palomino", point, 1).Count;
334 if (temperature28 < 8
335 && m_random.
Float(0f, 1f) < 0.3f) {
336 num68 += SpawnCreatures(creatureType,
"Horse_White", point, 1).Count;
344 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
345 float num66 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
346 int temperature27 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
347 int humidity15 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
348 int num67 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
349 return num66 > 20f && temperature27 > 8 && humidity15 < 8 && point.Y < 80 && num67 == 7 ? 0.05f : 0f;
351 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Camel", point, m_random.
Int(1, 2)).Count
356 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
357 float num64 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
358 int temperature26 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
359 int num65 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
360 return num64 > 20f && temperature26 > 6 && point.Y < 120 && (num65 == 8 || num65 == 2 || num65 == 3 || num65 == 7)
364 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Donkey", point, 1).Count
369 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
370 float num62 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
371 int temperature25 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
372 int humidity14 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
373 int num63 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
374 return num62 > 20f && temperature25 > 8 && humidity14 > 7 && point.Y < 75 && (num63 == 8 || num63 == 2 || num63 == 3)
378 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Giraffe", point, m_random.
Int(1, 2)).Count
383 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
384 float num60 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
385 int temperature24 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
386 int humidity13 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
387 int num61 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
388 return num60 > 40f && temperature24 > 8 && humidity13 > 7 && point.Y < 75 && (num61 == 8 || num61 == 2 || num61 == 3)
392 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Rhino", point, 1).Count
397 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
398 float num58 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
399 int humidity12 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
400 int num59 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
401 return num58 > 40f && humidity12 > 8 && point.Y < 80 && (num59 == 8 || num59 == 2 || num59 == 3 || num59 == 7) ? 0.025f : 0f;
403 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Tiger", point, 1).Count
408 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
409 float num56 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
410 int temperature23 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
411 m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
412 int num57 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
416 && (num57 == 8 || num57 == 2 || num57 == 3 || num57 == 7 || num57 == 62)
420 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Tiger_White", point, 1).Count
425 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
426 float num54 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
427 int temperature22 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
428 int num55 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
429 return num54 > 40f && temperature22 > 8 && point.Y < 80 && (num55 == 8 || num55 == 2 || num55 == 3 || num55 == 7)
433 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Lion", point, 1).Count
438 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
439 float num52 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
440 int temperature21 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
441 int humidity11 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
442 int num53 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
447 && (num53 == 8 || num53 == 2 || num53 == 3 || num53 == 7 || num53 == 12)
451 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Jaguar", point, 1).Count
456 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
457 float num50 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
458 int temperature20 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
459 m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
460 int num51 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
464 && (num51 == 8 || num51 == 2 || num51 == 3 || num51 == 7 || num51 == 12)
468 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Leopard", point, 1).Count
473 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
474 float num48 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
475 int temperature19 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
476 int humidity10 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
477 int num49 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
478 return num48 > 20f && temperature19 > 8 && humidity10 > 7 && point.Y < 80 && (num49 == 8 || num49 == 2 || num49 == 3)
482 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Zebra", point, m_random.
Int(1, 2)).Count
487 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
488 float num46 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
489 int temperature18 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
490 int num47 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
491 return num46 > 20f && temperature18 > 8 && point.Y < 80 && (num47 == 8 || num47 == 2 || num47 == 3) ? 0.05f : 0f;
493 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Gnu", point, m_random.
Int(1, 2)).Count
498 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
499 int temperature17 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
500 int num45 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
501 return temperature17 < 3 && point.Y < 90 && (num45 == 8 || num45 == 2 || num45 == 3 || num45 == 62) ? 0.05f : 0f;
503 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Reindeer", point, m_random.
Int(1, 3)).Count
508 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
509 int temperature16 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
510 int num44 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
511 return temperature16 < 7 && point.Y < 90 && (num44 == 8 || num44 == 2 || num44 == 3 || num44 == 62) ? 0.1f : 0f;
513 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Moose", point, m_random.
Int(1, 1)).Count
518 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
519 int temperature15 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
520 int humidity9 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
521 int num43 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
522 return temperature15 < 10 && humidity9 < 12 && point.Y < 80 && (num43 == 8 || num43 == 2 || num43 == 3 || num43 == 62)
526 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bison", point, m_random.
Int(1, 4)).Count
531 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
532 float num41 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
533 int temperature14 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
534 int humidity8 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
535 int num42 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
536 return num41 > 20f && temperature14 > 8 && humidity8 < 8 && point.Y < 75 && (num42 == 8 || num42 == 2 || num42 == 7)
540 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Ostrich", point, m_random.
Int(1, 2)).Count
545 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
546 float num39 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
547 int temperature13 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
548 int humidity7 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
549 int num40 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
550 return num39 > 20f && temperature13 > 8 && humidity7 < 12 && point.Y < 75 && (num40 == 8 || num40 == 2 || num40 == 7)
554 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Cassowary", point, 1).Count
559 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
560 float num37 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
561 int temperature12 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
562 int num38 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
563 return num37 > 40f && temperature12 > 8 && point.Y < 80 && (num38 == 8 || num38 == 2 || num38 == 7) ? 0.05f : 0f;
565 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Hyena", point, m_random.
Int(1, 2)).Count
570 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
571 int num36 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
572 return num36 == 3 || num36 == 67 || num36 == 4 || num36 == 66 || num36 == 2 || num36 == 7 ? 1f : 0f;
574 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
575 string templateName11 = m_random.
Int(0, 1) == 0 ?
"Bear_Black" :
"Bear_Brown";
576 return SpawnCreatures(creatureType, templateName11, point, 1).Count;
582 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
583 int num35 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
584 return num35 == 3 || num35 == 67 || num35 == 4 || num35 == 66 || num35 == 2 || num35 == 7 ? 0.25f : 0f;
586 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Tiger", point, 1).Count
591 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
592 int temperature11 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
593 int humidity6 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
594 int num34 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
595 return (num34 == 3 || num34 == 67 || num34 == 4 || num34 == 66 || num34 == 2 || num34 == 7)
601 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Lion", point, 1).Count
606 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
607 int num33 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
608 return num33 == 3 || num33 == 67 || num33 == 4 || num33 == 66 || num33 == 2 || num33 == 7 ? 0.5f : 0f;
610 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Jaguar", point, 1).Count
615 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
616 int num32 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
617 return num32 == 3 || num32 == 67 || num32 == 4 || num32 == 66 || num32 == 2 || num32 == 7 ? 0.25f : 0f;
619 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Leopard", point, 1).Count
624 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
625 int temperature10 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
626 int num31 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
627 return (num31 == 3 || num31 == 67 || num31 == 4 || num31 == 66 || num31 == 2 || num31 == 7) && temperature10 > 8 ? 1f : 0f;
629 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Hyena", point, 1).Count
634 SpawnSuitabilityFunction =
635 (_, point) => !(m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z) < -2f) ? 0f : 0.4f,
636 SpawnFunction = delegate(CreatureType creatureType, Point3 point) {
637 string templateName10 =
"Shark_Bull";
638 return SpawnCreatures(creatureType, templateName10, point, 1).Count;
644 SpawnSuitabilityFunction =
645 (_, point) => !(m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z) < -5f) ? 0f : 0.3f,
646 SpawnFunction = delegate(CreatureType creatureType, Point3 point) {
647 string templateName9 =
"Shark_Tiger";
648 return SpawnCreatures(creatureType, templateName9, point, 1).Count;
654 SpawnSuitabilityFunction =
655 (_, point) => !(m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z) < -20f) ? 0f : 0.2f,
656 SpawnFunction = delegate(CreatureType creatureType, Point3 point) {
657 string templateName8 =
"Shark_GreatWhite";
658 return SpawnCreatures(creatureType, templateName8, point, 1).Count;
664 SpawnSuitabilityFunction =
665 (_, point) => !(m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z) < -2f) ? 0f : 0.5f,
666 SpawnFunction = delegate(CreatureType creatureType, Point3 point) {
667 string templateName7 =
"Barracuda";
668 return SpawnCreatures(creatureType, templateName7, point, 1).Count;
674 SpawnSuitabilityFunction =
675 (_, point) => !(m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z) < -2f) ? 0f : 1f,
676 SpawnFunction = delegate(CreatureType creatureType, Point3 point) {
677 string templateName6 =
"Bass_Sea";
678 return SpawnCreatures(creatureType, templateName6, point, 1).Count;
684 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
685 float num30 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
686 int temperature9 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
687 return num30 > 10f && temperature9 >= 4 ? 1f : 0f;
689 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
690 string templateName5 =
"Bass_Freshwater";
691 return SpawnCreatures(creatureType, templateName5, point, m_random.
Int(1, 2)).Count;
697 SpawnSuitabilityFunction =
698 (_, point) => !(m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z) < 10f) ? 1f : 0.5f,
699 SpawnFunction = delegate(CreatureType creatureType, Point3 point) {
702 for (int i = point.X - 2; i <= point.X + 2; i++) {
703 for (int j = point.Z - 2; j <= point.Z + 2; j++) {
704 if (m_subsystemTerrain.Terrain.GetCellContents(point.X, point.Y, point.Z) == 18) {
705 for (int num29 = point.Y - 1; num29 > 0; num29--) {
706 switch (m_subsystemTerrain.Terrain.GetCellContents(point.X, num29, point.Z)) {
707 case 2: num27++; break;
708 case 7: num28++; break;
716 string templateName4 = num27 >= num28 ?
"Ray_Brown" :
"Ray_Yellow";
717 return SpawnCreatures(creatureType, templateName4, point, 1).Count;
723 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
724 float num26 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
725 int humidity5 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
726 int temperature8 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
727 return num26 > 10f && humidity5 >= 4 && temperature8 >= 7 ? 1f : 0f;
729 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
730 string templateName3 =
"Piranha";
731 return SpawnCreatures(creatureType, templateName3, point, m_random.
Int(2, 4)).Count;
737 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
738 float num25 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
742 return num25 < -20f ? 0.01f : 0f;
744 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
745 string templateName2 =
"Orca";
746 return SpawnCreatures(creatureType, templateName2, point, 1).Count;
752 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
753 float num24 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
757 return num24 < -20f ? 0.01f : 0f;
759 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
760 string templateName =
"Beluga";
761 return SpawnCreatures(creatureType, templateName, point, 1).Count;
766 new CreatureType(
"Constant Gray Wolves",
SpawnLocationType.Surface,
false,
true) {
767 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
768 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
769 float num21 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
770 int humidity4 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
771 float num22 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
772 int num23 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
773 int cellLightFast10 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
774 if (((num21 > 20f && humidity4 >= 8) || (num22 <= 8f && point.Y < 90 && cellLightFast10 <= 7))
775 && (num23 == 8 || num23 == 2)) {
781 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Wolf_Gray", point, m_random.
Int(1, 3)).Count
786 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
787 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
788 float num17 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
789 float num18 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
790 float num19 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
791 int num20 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
792 int cellLightFast9 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
797 && cellLightFast9 <= 7
804 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Wolf_Coyote", point, m_random.
Int(1, 3)).Count
808 new CreatureType(
"Constant Brown Bears",
SpawnLocationType.Surface,
false,
true) {
809 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
810 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
811 float num15 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
812 int temperature7 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
813 int humidity3 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
814 int num16 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
815 int cellLightFast8 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
820 && cellLightFast8 <= 7
821 && (num16 == 8 || num16 == 2 || num16 == 3)) {
827 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bear_Brown", point, 1).Count
831 new CreatureType(
"Constant Black Bears",
SpawnLocationType.Surface,
false,
true) {
832 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
833 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
834 float num13 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
835 int temperature6 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
836 m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
837 int num14 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
838 int cellLightFast7 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
842 && cellLightFast7 <= 7
843 && (num14 == 8 || num14 == 2 || num14 == 3)) {
849 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bear_Black", point, 1).Count
853 new CreatureType(
"Constant Polar Bears",
SpawnLocationType.Surface,
false,
true) {
854 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
855 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
856 float num11 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
857 int temperature5 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
858 int num12 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
859 int cellLightFast6 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
863 && cellLightFast6 <= 7
870 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Bear_Black", point, 1).Count
875 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
876 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
877 float num9 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
878 int humidity2 = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
879 int num10 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
880 int cellLightFast5 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
884 && cellLightFast5 <= 7
885 && (num10 == 8 || num10 == 2 || num10 == 3)) {
891 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Tiger", point, 1).Count
896 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
897 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
898 float num7 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
899 int temperature4 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
900 int num8 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
901 int cellLightFast4 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
905 && cellLightFast4 <= 7
906 && (num8 == 8 || num8 == 2 || num8 == 3 || num8 == 7)) {
912 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Lion", point, m_random.
Int(1, 2)).Count
917 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
918 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
919 float num5 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
920 int temperature3 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
921 int humidity = m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
922 int num6 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
923 int cellLightFast3 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
928 && cellLightFast3 <= 7
929 && (num6 == 8 || num6 == 2 || num6 == 3 || num6 == 12)) {
935 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Jaguar", point, 1).Count
940 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
941 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
942 float num3 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
943 int temperature2 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
944 int num4 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
945 int cellLightFast2 = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
949 && cellLightFast2 <= 7
950 && (num4 == 8 || num4 == 2 || num4 == 3 || num4 == 12)) {
956 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Leopard", point, 1).Count
961 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
962 if (m_subsystemSky.SkyLightIntensity < 0.1f) {
963 float num = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
964 int temperature = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
965 int num2 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
966 int cellLightFast = m_subsystemTerrain.Terrain.GetCellLightFast(point.X, point.Y + 1, point.Z);
970 && cellLightFast <= 7
971 && (num2 == 8 || num2 == 2 || num2 == 3 || num2 == 7)) {
977 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Hyena", point, m_random.
Int(1, 2)).Count
982 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
983 float num95 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
984 int temperature38 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
985 m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
986 int num96 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
987 int topHeight2 = m_subsystemTerrain.Terrain.GetTopHeight(point.X, point.Z);
988 return temperature38 > 3
990 && point.Y >= topHeight2
991 && (BlocksManager.Blocks[num96] is LeavesBlock || num96 == 8 || num96 == 2 || num96 == 7)
995 SpawnFunction = (creatureType, point) => SpawnCreatures(creatureType,
"Pigeon", point, 1).Count
1000 SpawnSuitabilityFunction = delegate(CreatureType _, Point3 point) {
1001 float num93 = m_subsystemTerrain.TerrainContentsGenerator.CalculateOceanShoreDistance(point.X, point.Z);
1002 int temperature37 = m_subsystemTerrain.Terrain.GetTemperature(point.X, point.Z);
1003 m_subsystemTerrain.Terrain.GetHumidity(point.X, point.Z);
1004 int num94 = Terrain.ExtractContents(m_subsystemTerrain.Terrain.GetCellValueFast(point.X, point.Y - 1, point.Z));
1005 int topHeight = m_subsystemTerrain.Terrain.GetTopHeight(point.X, point.Z);
1006 return temperature37 > 3
1008 && point.Y >= topHeight
1009 && (BlocksManager.Blocks[num94] is LeavesBlock || num94 == 8 || num94 == 2 || num94 == 7)
1013 SpawnFunction = delegate(CreatureType creatureType,
Point3 point) {
1014 int count3 = m_random.
Int(1, 2);
1015 return SpawnCreatures(creatureType,
"Sparrow", point, count3).Count;
1020 "InitializeCreatureTypes",
1022 modLoader.InitializeCreatureTypes(
this, m_creatureTypes);