Elin Modding Docs Doc
Loading...
Searching...
No Matches
Cell.cs
1using System;
2using System.Collections.Generic;
3using System.Runtime.CompilerServices;
4using Algorithms;
5using FloodSpill;
6using UnityEngine;
7
8// Token: 0x02000691 RID: 1681
9public class Cell : WeightCell, IFloodCell
10{
11 // Token: 0x06002F93 RID: 12179 RVA: 0x0010C6BC File Offset: 0x0010A8BC
12 public override bool Equals(object obj)
13 {
14 return false;
15 }
16
17 // Token: 0x06002F94 RID: 12180 RVA: 0x0010C6C0 File Offset: 0x0010A8C0
18 public override string ToString()
19 {
20 string[] array = new string[11];
21 array[0] = "Cell(";
22 array[1] = this.x.ToString();
23 array[2] = ",";
24 array[3] = this.z.ToString();
25 array[4] = " ";
26 int num = 5;
27 SourceMaterial.Row matBlock = this.matBlock;
28 array[num] = ((matBlock != null) ? matBlock.ToString() : null);
29 array[6] = "/";
30 int num2 = 7;
31 SourceMaterial.Row matFloor = this.matFloor;
32 array[num2] = ((matFloor != null) ? matFloor.ToString() : null);
33 array[8] = "/";
34 array[9] = this._block.ToString();
35 array[10] = ")";
36 return string.Concat(array);
37 }
38
39 // Token: 0x06002F95 RID: 12181 RVA: 0x0010C75F File Offset: 0x0010A95F
40 public override int GetHashCode()
41 {
42 return this.index;
43 }
44
45 // Token: 0x17000D6E RID: 3438
46 // (get) Token: 0x06002F96 RID: 12182 RVA: 0x0010C767 File Offset: 0x0010A967
47 public int index
48 {
49 get
50 {
51 return (int)this.x + (int)this.z * Cell.Size;
52 }
53 }
54
55 // Token: 0x17000D6F RID: 3439
56 // (get) Token: 0x06002F97 RID: 12183 RVA: 0x0010C77C File Offset: 0x0010A97C
57 public byte TopHeight
58 {
59 get
60 {
61 if (this.bridgeHeight != 0)
62 {
63 return this.bridgeHeight;
64 }
65 return this.height;
66 }
67 }
68
69 // Token: 0x06002F98 RID: 12184 RVA: 0x0010C793 File Offset: 0x0010A993
70 public Point GetPoint()
71 {
72 return new Point((int)this.x, (int)this.z);
73 }
74
75 // Token: 0x06002F99 RID: 12185 RVA: 0x0010C7A6 File Offset: 0x0010A9A6
76 public Point GetSharedPoint()
77 {
78 return Point.shared.Set((int)this.x, (int)this.z);
79 }
80
81 // Token: 0x17000D70 RID: 3440
82 // (get) Token: 0x06002F9A RID: 12186 RVA: 0x0010C7BE File Offset: 0x0010A9BE
83 public Cell Front
84 {
85 get
86 {
87 if (this.z <= 0)
88 {
89 return Cell.Void;
90 }
91 return Cell.cells[(int)this.x, (int)(this.z - 1)];
92 }
93 }
94
95 // Token: 0x17000D71 RID: 3441
96 // (get) Token: 0x06002F9B RID: 12187 RVA: 0x0010C7E7 File Offset: 0x0010A9E7
97 public Cell Right
98 {
99 get
100 {
101 if ((int)(this.x + 1) >= Cell.Size)
102 {
103 return Cell.Void;
104 }
105 return Cell.cells[(int)(this.x + 1), (int)this.z];
106 }
107 }
108
109 // Token: 0x17000D72 RID: 3442
110 // (get) Token: 0x06002F9C RID: 12188 RVA: 0x0010C816 File Offset: 0x0010AA16
111 public Cell Back
112 {
113 get
114 {
115 if ((int)(this.z + 1) >= Cell.Size)
116 {
117 return Cell.Void;
118 }
119 return Cell.cells[(int)this.x, (int)(this.z + 1)];
120 }
121 }
122
123 // Token: 0x17000D73 RID: 3443
124 // (get) Token: 0x06002F9D RID: 12189 RVA: 0x0010C845 File Offset: 0x0010AA45
125 public Cell Left
126 {
127 get
128 {
129 if (this.x <= 0)
130 {
131 return Cell.Void;
132 }
133 return Cell.cells[(int)(this.x - 1), (int)this.z];
134 }
135 }
136
137 // Token: 0x17000D74 RID: 3444
138 // (get) Token: 0x06002F9E RID: 12190 RVA: 0x0010C86E File Offset: 0x0010AA6E
139 public Cell FrontRight
140 {
141 get
142 {
143 if ((int)(this.x + 1) >= Cell.Size || this.z <= 0)
144 {
145 return Cell.Void;
146 }
147 return Cell.cells[(int)(this.x + 1), (int)(this.z - 1)];
148 }
149 }
150
151 // Token: 0x17000D75 RID: 3445
152 // (get) Token: 0x06002F9F RID: 12191 RVA: 0x0010C8A8 File Offset: 0x0010AAA8
153 public Cell FrontLeft
154 {
155 get
156 {
157 if (this.x <= 0 || this.z <= 0)
158 {
159 return Cell.Void;
160 }
161 return Cell.cells[(int)(this.x - 1), (int)(this.z - 1)];
162 }
163 }
164
165 // Token: 0x17000D76 RID: 3446
166 // (get) Token: 0x06002FA0 RID: 12192 RVA: 0x0010C8DC File Offset: 0x0010AADC
167 public Cell BackRight
168 {
169 get
170 {
171 if ((int)(this.x + 1) >= Cell.Size || (int)(this.z + 1) >= Cell.Size)
172 {
173 return Cell.Void;
174 }
175 return Cell.cells[(int)(this.x + 1), (int)(this.z + 1)];
176 }
177 }
178
179 // Token: 0x17000D77 RID: 3447
180 // (get) Token: 0x06002FA1 RID: 12193 RVA: 0x0010C91C File Offset: 0x0010AB1C
181 public Cell BackLeft
182 {
183 get
184 {
185 if (this.x <= 0 || (int)(this.z + 1) >= Cell.Size)
186 {
187 return Cell.Void;
188 }
189 return Cell.cells[(int)(this.x - 1), (int)(this.z + 1)];
190 }
191 }
192
193 // Token: 0x17000D78 RID: 3448
194 // (get) Token: 0x06002FA2 RID: 12194 RVA: 0x0010C956 File Offset: 0x0010AB56
195 public GrowSystem growth
196 {
197 get
198 {
199 GrowSystem.cell = this;
200 return this.sourceObj.growth;
201 }
202 }
203
204 // Token: 0x17000D79 RID: 3449
205 // (get) Token: 0x06002FA3 RID: 12195 RVA: 0x0010C969 File Offset: 0x0010AB69
206 // (set) Token: 0x06002FA4 RID: 12196 RVA: 0x0010C977 File Offset: 0x0010AB77
207 public bool isSurrounded
208 {
209 get
210 {
211 return this.bits[0];
212 }
213 set
214 {
215 this.bits[0] = value;
216 }
217 }
218
219 // Token: 0x17000D7A RID: 3450
220 // (get) Token: 0x06002FA5 RID: 12197 RVA: 0x0010C986 File Offset: 0x0010AB86
221 // (set) Token: 0x06002FA6 RID: 12198 RVA: 0x0010C994 File Offset: 0x0010AB94
222 public bool isShadowed
223 {
224 get
225 {
226 return this.bits[1];
227 }
228 set
229 {
230 this.bits[1] = value;
231 }
232 }
233
234 // Token: 0x17000D7B RID: 3451
235 // (get) Token: 0x06002FA7 RID: 12199 RVA: 0x0010C9A3 File Offset: 0x0010ABA3
236 // (set) Token: 0x06002FA8 RID: 12200 RVA: 0x0010C9B1 File Offset: 0x0010ABB1
237 public bool hasDoor
238 {
239 get
240 {
241 return this.bits[3];
242 }
243 set
244 {
245 this.bits[3] = value;
246 }
247 }
248
249 // Token: 0x17000D7C RID: 3452
250 // (get) Token: 0x06002FA9 RID: 12201 RVA: 0x0010C9C0 File Offset: 0x0010ABC0
251 // (set) Token: 0x06002FAA RID: 12202 RVA: 0x0010C9CE File Offset: 0x0010ABCE
252 public bool skipRender
253 {
254 get
255 {
256 return this.bits[4];
257 }
258 set
259 {
260 this.bits[4] = value;
261 }
262 }
263
264 // Token: 0x17000D7D RID: 3453
265 // (get) Token: 0x06002FAB RID: 12203 RVA: 0x0010C9DD File Offset: 0x0010ABDD
266 // (set) Token: 0x06002FAC RID: 12204 RVA: 0x0010C9EB File Offset: 0x0010ABEB
267 public bool isSeen
268 {
269 get
270 {
271 return this.bits[6];
272 }
273 set
274 {
275 this.bits[6] = value;
276 }
277 }
278
279 // Token: 0x17000D7E RID: 3454
280 // (get) Token: 0x06002FAD RID: 12205 RVA: 0x0010C9FA File Offset: 0x0010ABFA
281 // (set) Token: 0x06002FAE RID: 12206 RVA: 0x0010CA08 File Offset: 0x0010AC08
282 public bool isSurrounded4d
283 {
284 get
285 {
286 return this.bits[7];
287 }
288 set
289 {
290 this.bits[7] = value;
291 }
292 }
293
294 // Token: 0x17000D7F RID: 3455
295 // (get) Token: 0x06002FAF RID: 12207 RVA: 0x0010CA17 File Offset: 0x0010AC17
296 // (set) Token: 0x06002FB0 RID: 12208 RVA: 0x0010CA25 File Offset: 0x0010AC25
297 public bool isForceFloat
298 {
299 get
300 {
301 return this.bits[8];
302 }
303 set
304 {
305 this.bits[8] = value;
306 }
307 }
308
309 // Token: 0x17000D80 RID: 3456
310 // (get) Token: 0x06002FB1 RID: 12209 RVA: 0x0010CA34 File Offset: 0x0010AC34
311 // (set) Token: 0x06002FB2 RID: 12210 RVA: 0x0010CA43 File Offset: 0x0010AC43
312 public bool blockSight
313 {
314 get
315 {
316 return this.bits[9];
317 }
318 set
319 {
320 this.bits[9] = value;
321 }
322 }
323
324 // Token: 0x17000D81 RID: 3457
325 // (get) Token: 0x06002FB3 RID: 12211 RVA: 0x0010CA53 File Offset: 0x0010AC53
326 // (set) Token: 0x06002FB4 RID: 12212 RVA: 0x0010CA62 File Offset: 0x0010AC62
327 public bool isHarvested
328 {
329 get
330 {
331 return this.bits[10];
332 }
333 set
334 {
335 this.bits[10] = value;
336 }
337 }
338
339 // Token: 0x17000D82 RID: 3458
340 // (get) Token: 0x06002FB5 RID: 12213 RVA: 0x0010CA72 File Offset: 0x0010AC72
341 // (set) Token: 0x06002FB6 RID: 12214 RVA: 0x0010CA81 File Offset: 0x0010AC81
342 public bool isWatered
343 {
344 get
345 {
346 return this.bits[11];
347 }
348 set
349 {
350 this.bits[11] = value;
351 }
352 }
353
354 // Token: 0x17000D83 RID: 3459
355 // (get) Token: 0x06002FB7 RID: 12215 RVA: 0x0010CA91 File Offset: 0x0010AC91
356 // (set) Token: 0x06002FB8 RID: 12216 RVA: 0x0010CAA0 File Offset: 0x0010ACA0
357 public bool isSlopeEdge
358 {
359 get
360 {
361 return this.bits[12];
362 }
363 set
364 {
365 this.bits[12] = value;
366 }
367 }
368
369 // Token: 0x17000D84 RID: 3460
370 // (get) Token: 0x06002FB9 RID: 12217 RVA: 0x0010CAB0 File Offset: 0x0010ACB0
371 // (set) Token: 0x06002FBA RID: 12218 RVA: 0x0010CABF File Offset: 0x0010ACBF
372 public bool isBridgeEdge
373 {
374 get
375 {
376 return this.bits[13];
377 }
378 set
379 {
380 this.bits[13] = value;
381 }
382 }
383
384 // Token: 0x17000D85 RID: 3461
385 // (get) Token: 0x06002FBB RID: 12219 RVA: 0x0010CACF File Offset: 0x0010ACCF
386 // (set) Token: 0x06002FBC RID: 12220 RVA: 0x0010CADE File Offset: 0x0010ACDE
387 public bool ignoreObjShadow
388 {
389 get
390 {
391 return this.bits[14];
392 }
393 set
394 {
395 this.bits[14] = value;
396 }
397 }
398
399 // Token: 0x17000D86 RID: 3462
400 // (get) Token: 0x06002FBD RID: 12221 RVA: 0x0010CAEE File Offset: 0x0010ACEE
401 // (set) Token: 0x06002FBE RID: 12222 RVA: 0x0010CAFD File Offset: 0x0010ACFD
402 public bool nonGradient
403 {
404 get
405 {
406 return this.bits[15];
407 }
408 set
409 {
410 this.bits[15] = value;
411 }
412 }
413
414 // Token: 0x17000D87 RID: 3463
415 // (get) Token: 0x06002FBF RID: 12223 RVA: 0x0010CB0D File Offset: 0x0010AD0D
416 // (set) Token: 0x06002FC0 RID: 12224 RVA: 0x0010CB1C File Offset: 0x0010AD1C
417 public bool impassable
418 {
419 get
420 {
421 return this.bits[16];
422 }
423 set
424 {
425 this.bits[16] = value;
426 }
427 }
428
429 // Token: 0x17000D88 RID: 3464
430 // (get) Token: 0x06002FC1 RID: 12225 RVA: 0x0010CB2C File Offset: 0x0010AD2C
431 // (set) Token: 0x06002FC2 RID: 12226 RVA: 0x0010CB3B File Offset: 0x0010AD3B
432 public bool outOfBounds
433 {
434 get
435 {
436 return this.bits[17];
437 }
438 set
439 {
440 this.bits[17] = value;
441 }
442 }
443
444 // Token: 0x17000D89 RID: 3465
445 // (get) Token: 0x06002FC3 RID: 12227 RVA: 0x0010CB4B File Offset: 0x0010AD4B
446 // (set) Token: 0x06002FC4 RID: 12228 RVA: 0x0010CB5A File Offset: 0x0010AD5A
447 public bool isWallEdge
448 {
449 get
450 {
451 return this.bits[20];
452 }
453 set
454 {
455 this.bits[20] = value;
456 }
457 }
458
459 // Token: 0x17000D8A RID: 3466
460 // (get) Token: 0x06002FC5 RID: 12229 RVA: 0x0010CB6A File Offset: 0x0010AD6A
461 // (set) Token: 0x06002FC6 RID: 12230 RVA: 0x0010CB79 File Offset: 0x0010AD79
462 public bool isModified
463 {
464 get
465 {
466 return this.bits[21];
467 }
468 set
469 {
470 this.bits[21] = value;
471 }
472 }
473
474 // Token: 0x17000D8B RID: 3467
475 // (get) Token: 0x06002FC7 RID: 12231 RVA: 0x0010CB89 File Offset: 0x0010AD89
476 // (set) Token: 0x06002FC8 RID: 12232 RVA: 0x0010CB98 File Offset: 0x0010AD98
477 public bool isClearSnow
478 {
479 get
480 {
481 return this.bits[22];
482 }
483 set
484 {
485 this.bits[22] = value;
486 }
487 }
488
489 // Token: 0x17000D8C RID: 3468
490 // (get) Token: 0x06002FC9 RID: 12233 RVA: 0x0010CBA8 File Offset: 0x0010ADA8
491 // (set) Token: 0x06002FCA RID: 12234 RVA: 0x0010CBB7 File Offset: 0x0010ADB7
492 public bool fullWall
493 {
494 get
495 {
496 return this.bits[23];
497 }
498 set
499 {
500 this.bits[23] = value;
501 }
502 }
503
504 // Token: 0x17000D8D RID: 3469
505 // (get) Token: 0x06002FCB RID: 12235 RVA: 0x0010CBC7 File Offset: 0x0010ADC7
506 // (set) Token: 0x06002FCC RID: 12236 RVA: 0x0010CBD6 File Offset: 0x0010ADD6
507 public bool isFloating
508 {
509 get
510 {
511 return this.bits[24];
512 }
513 set
514 {
515 this.bits[24] = value;
516 }
517 }
518
519 // Token: 0x17000D8E RID: 3470
520 // (get) Token: 0x06002FCD RID: 12237 RVA: 0x0010CBE6 File Offset: 0x0010ADE6
521 // (set) Token: 0x06002FCE RID: 12238 RVA: 0x0010CBF5 File Offset: 0x0010ADF5
522 public bool lotWall
523 {
524 get
525 {
526 return this.bits[25];
527 }
528 set
529 {
530 this.bits[25] = value;
531 }
532 }
533
534 // Token: 0x17000D8F RID: 3471
535 // (get) Token: 0x06002FCF RID: 12239 RVA: 0x0010CC05 File Offset: 0x0010AE05
536 // (set) Token: 0x06002FD0 RID: 12240 RVA: 0x0010CC14 File Offset: 0x0010AE14
537 public bool hasDoorBoat
538 {
539 get
540 {
541 return this.bits[26];
542 }
543 set
544 {
545 this.bits[26] = value;
546 }
547 }
548
549 // Token: 0x17000D90 RID: 3472
550 // (get) Token: 0x06002FD1 RID: 12241 RVA: 0x0010CC24 File Offset: 0x0010AE24
551 // (set) Token: 0x06002FD2 RID: 12242 RVA: 0x0010CC33 File Offset: 0x0010AE33
552 public bool isDeck
553 {
554 get
555 {
556 return this.bits[27];
557 }
558 set
559 {
560 this.bits[27] = value;
561 }
562 }
563
564 // Token: 0x17000D91 RID: 3473
565 // (get) Token: 0x06002FD3 RID: 12243 RVA: 0x0010CC43 File Offset: 0x0010AE43
566 // (set) Token: 0x06002FD4 RID: 12244 RVA: 0x0010CC52 File Offset: 0x0010AE52
567 public bool castFloorShadow
568 {
569 get
570 {
571 return this.bits[28];
572 }
573 set
574 {
575 this.bits[28] = value;
576 }
577 }
578
579 // Token: 0x17000D92 RID: 3474
580 // (get) Token: 0x06002FD5 RID: 12245 RVA: 0x0010CC62 File Offset: 0x0010AE62
581 // (set) Token: 0x06002FD6 RID: 12246 RVA: 0x0010CC71 File Offset: 0x0010AE71
582 public bool lotShade
583 {
584 get
585 {
586 return this.bits[29];
587 }
588 set
589 {
590 this.bits[29] = value;
591 }
592 }
593
594 // Token: 0x17000D93 RID: 3475
595 // (get) Token: 0x06002FD7 RID: 12247 RVA: 0x0010CC81 File Offset: 0x0010AE81
596 // (set) Token: 0x06002FD8 RID: 12248 RVA: 0x0010CC90 File Offset: 0x0010AE90
597 public bool isShoreSand
598 {
599 get
600 {
601 return this.bits[30];
602 }
603 set
604 {
605 this.bits[30] = value;
606 }
607 }
608
609 // Token: 0x17000D94 RID: 3476
610 // (get) Token: 0x06002FD9 RID: 12249 RVA: 0x0010CCA0 File Offset: 0x0010AEA0
611 // (set) Token: 0x06002FDA RID: 12250 RVA: 0x0010CCAF File Offset: 0x0010AEAF
612 public bool isToggleWallPillar
613 {
614 get
615 {
616 return this.bits[31];
617 }
618 set
619 {
620 this.bits[31] = value;
621 }
622 }
623
624 // Token: 0x17000D95 RID: 3477
625 // (get) Token: 0x06002FDB RID: 12251 RVA: 0x0010CCBF File Offset: 0x0010AEBF
626 // (set) Token: 0x06002FDC RID: 12252 RVA: 0x0010CCCD File Offset: 0x0010AECD
627 public bool hasWindow
628 {
629 get
630 {
631 return this.bits2[0];
632 }
633 set
634 {
635 this.bits2[0] = value;
636 }
637 }
638
639 // Token: 0x17000D96 RID: 3478
640 // (get) Token: 0x06002FDD RID: 12253 RVA: 0x0010CCDC File Offset: 0x0010AEDC
641 // (set) Token: 0x06002FDE RID: 12254 RVA: 0x0010CCEA File Offset: 0x0010AEEA
642 public bool isCurtainClosed
643 {
644 get
645 {
646 return this.bits2[1];
647 }
648 set
649 {
650 this.bits2[1] = value;
651 }
652 }
653
654 // Token: 0x17000D97 RID: 3479
655 // (get) Token: 0x06002FDF RID: 12255 RVA: 0x0010CCF9 File Offset: 0x0010AEF9
656 // (set) Token: 0x06002FE0 RID: 12256 RVA: 0x0010CD07 File Offset: 0x0010AF07
657 public bool isSkyFloor
658 {
659 get
660 {
661 return this.bits2[2];
662 }
663 set
664 {
665 this.bits2[2] = value;
666 }
667 }
668
669 // Token: 0x17000D98 RID: 3480
670 // (get) Token: 0x06002FE1 RID: 12257 RVA: 0x0010CD16 File Offset: 0x0010AF16
671 // (set) Token: 0x06002FE2 RID: 12258 RVA: 0x0010CD24 File Offset: 0x0010AF24
672 public bool isClearArea
673 {
674 get
675 {
676 return this.bits2[3];
677 }
678 set
679 {
680 this.bits2[3] = value;
681 }
682 }
683
684 // Token: 0x17000D99 RID: 3481
685 // (get) Token: 0x06002FE3 RID: 12259 RVA: 0x0010CD33 File Offset: 0x0010AF33
686 // (set) Token: 0x06002FE4 RID: 12260 RVA: 0x0010CD41 File Offset: 0x0010AF41
687 public bool isObjDyed
688 {
689 get
690 {
691 return this.bits2[4];
692 }
693 set
694 {
695 this.bits2[4] = value;
696 }
697 }
698
699 // Token: 0x17000D9A RID: 3482
700 // (get) Token: 0x06002FE5 RID: 12261 RVA: 0x0010CD50 File Offset: 0x0010AF50
701 public bool HasObj
702 {
703 get
704 {
705 return this.obj > 0;
706 }
707 }
708
709 // Token: 0x17000D9B RID: 3483
710 // (get) Token: 0x06002FE6 RID: 12262 RVA: 0x0010CD5B File Offset: 0x0010AF5B
711 public bool HasBlock
712 {
713 get
714 {
715 return this._block > 0;
716 }
717 }
718
719 // Token: 0x17000D9C RID: 3484
720 // (get) Token: 0x06002FE7 RID: 12263 RVA: 0x0010CD66 File Offset: 0x0010AF66
721 public bool HasFloor
722 {
723 get
724 {
725 return this._floor > 0;
726 }
727 }
728
729 // Token: 0x17000D9D RID: 3485
730 // (get) Token: 0x06002FE8 RID: 12264 RVA: 0x0010CD71 File Offset: 0x0010AF71
731 public bool HasRoof
732 {
733 get
734 {
735 return this.room != null && this.room.lot.idRoofStyle != 0;
736 }
737 }
738
739 // Token: 0x17000D9E RID: 3486
740 // (get) Token: 0x06002FE9 RID: 12265 RVA: 0x0010CD90 File Offset: 0x0010AF90
741 public bool HasFloorOrBlock
742 {
743 get
744 {
745 return this._block != 0 || this._floor > 0;
746 }
747 }
748
749 // Token: 0x17000D9F RID: 3487
750 // (get) Token: 0x06002FEA RID: 12266 RVA: 0x0010CDA5 File Offset: 0x0010AFA5
751 public bool HasBridge
752 {
753 get
754 {
755 return this._bridge > 0;
756 }
757 }
758
759 // Token: 0x17000DA0 RID: 3488
760 // (get) Token: 0x06002FEB RID: 12267 RVA: 0x0010CDB0 File Offset: 0x0010AFB0
761 public bool HasLiquid
762 {
763 get
764 {
765 CellEffect cellEffect = this.effect;
766 return cellEffect != null && cellEffect.IsLiquid;
767 }
768 }
769
770 // Token: 0x17000DA1 RID: 3489
771 // (get) Token: 0x06002FEC RID: 12268 RVA: 0x0010CDC3 File Offset: 0x0010AFC3
772 public bool HasFire
773 {
774 get
775 {
776 return this.effect != null && this.effect.IsFire;
777 }
778 }
779
780 // Token: 0x17000DA2 RID: 3490
781 // (get) Token: 0x06002FED RID: 12269 RVA: 0x0010CDDA File Offset: 0x0010AFDA
782 public bool IsNotWaterEdge
783 {
784 get
785 {
786 return this.HasFullBlock || Cell.floorList[(int)this._floor].tileType.IsWater || Cell.floorList[(int)this._floor].edge == 0;
787 }
788 }
789
790 // Token: 0x17000DA3 RID: 3491
791 // (get) Token: 0x06002FEE RID: 12270 RVA: 0x0010CE1A File Offset: 0x0010B01A
792 public bool IsTopWater
793 {
794 get
795 {
796 if (this._bridge != 0)
797 {
798 return Cell.floorList[(int)this._bridge].tileType.IsWater;
799 }
800 return Cell.floorList[(int)this._floor].tileType.IsWater;
801 }
802 }
803
804 // Token: 0x17000DA4 RID: 3492
805 // (get) Token: 0x06002FEF RID: 12271 RVA: 0x0010CE59 File Offset: 0x0010B059
806 public bool IsTopWaterAndNoSnow
807 {
808 get
809 {
810 return this.IsTopWater && (!Cell.map.zone.IsSnowCovered || this.HasRoof || this.isClearSnow);
811 }
812 }
813
814 // Token: 0x17000DA5 RID: 3493
815 // (get) Token: 0x06002FF0 RID: 12272 RVA: 0x0010CE86 File Offset: 0x0010B086
816 public bool IsFloorWater
817 {
818 get
819 {
820 return Cell.floorList[(int)this._floor].tileType.IsWater;
821 }
822 }
823
824 // Token: 0x17000DA6 RID: 3494
825 // (get) Token: 0x06002FF1 RID: 12273 RVA: 0x0010CEA2 File Offset: 0x0010B0A2
826 public bool IsFarmField
827 {
828 get
829 {
830 if (this._bridge != 0)
831 {
832 return this.sourceBridge.alias == "field";
833 }
834 return this.sourceFloor.alias == "field";
835 }
836 }
837
838 // Token: 0x17000DA7 RID: 3495
839 // (get) Token: 0x06002FF2 RID: 12274 RVA: 0x0010CED8 File Offset: 0x0010B0D8
840 public bool CanGrowWeed
841 {
842 get
843 {
844 if (this.obj != 0 || this.FirstThing != null || this.HasBlock || this.HasRoof)
845 {
846 return false;
847 }
848 if (this.IsFarmField)
849 {
850 return true;
851 }
852 if (this._bridge != 0)
853 {
854 return this.matBridge.category == "grass";
855 }
856 return this.matFloor.category == "grass";
857 }
858 }
859
860 // Token: 0x17000DA8 RID: 3496
861 // (get) Token: 0x06002FF3 RID: 12275 RVA: 0x0010CF44 File Offset: 0x0010B144
862 public bool IsBridgeWater
863 {
864 get
865 {
866 return this._bridge != 0 && Cell.floorList[(int)this._bridge].tileType.IsWater;
867 }
868 }
869
870 // Token: 0x17000DA9 RID: 3497
871 // (get) Token: 0x06002FF4 RID: 12276 RVA: 0x0010CF6A File Offset: 0x0010B16A
872 public bool IsSnowTile
873 {
874 get
875 {
876 return Cell.map.zone.IsSnowCovered && !this.HasRoof && !this.IsTopWater && !this.isClearSnow && !this.isFloating && !this.isDeck;
877 }
878 }
879
880 // Token: 0x17000DAA RID: 3498
881 // (get) Token: 0x06002FF5 RID: 12277 RVA: 0x0010CFA8 File Offset: 0x0010B1A8
882 public bool IsDeepWater
883 {
884 get
885 {
886 return this.sourceSurface.tileType.IsDeepWater && !this.IsIceTile;
887 }
888 }
889
890 // Token: 0x06002FF6 RID: 12278 RVA: 0x0010CFC8 File Offset: 0x0010B1C8
891 public bool CanSuffocate()
892 {
893 if (!this.IsDeepWater)
894 {
895 return false;
896 }
897 if (this.detail != null && this.detail.things.Count > 0)
898 {
899 foreach (Thing thing in this.detail.things)
900 {
901 if (thing.IsInstalled && thing.isFloating)
902 {
903 return false;
904 }
905 }
906 return true;
907 }
908 return true;
909 }
910
911 // Token: 0x17000DAB RID: 3499
912 // (get) Token: 0x06002FF7 RID: 12279 RVA: 0x0010D058 File Offset: 0x0010B258
913 public bool IsIceTile
914 {
915 get
916 {
917 return Cell.map.zone.IsSnowCovered && !this.HasRoof && this.IsTopWater && !this.isClearSnow;
918 }
919 }
920
921 // Token: 0x17000DAC RID: 3500
922 // (get) Token: 0x06002FF8 RID: 12280 RVA: 0x0010D086 File Offset: 0x0010B286
923 public bool HasFullBlock
924 {
925 get
926 {
927 return Cell.blockList[(int)this._block].tileType.IsFullBlock;
928 }
929 }
930
931 // Token: 0x17000DAD RID: 3501
932 // (get) Token: 0x06002FF9 RID: 12281 RVA: 0x0010D0A2 File Offset: 0x0010B2A2
933 public bool HasFullBlockOrWallOrFence
934 {
935 get
936 {
937 return this.HasFullBlock || this.HasWallOrFence;
938 }
939 }
940
941 // Token: 0x17000DAE RID: 3502
942 // (get) Token: 0x06002FFA RID: 12282 RVA: 0x0010D0B4 File Offset: 0x0010B2B4
943 public bool HasWallOrFence
944 {
945 get
946 {
947 return Cell.blockList[(int)this._block].tileType.IsWallOrFence;
948 }
949 }
950
951 // Token: 0x17000DAF RID: 3503
952 // (get) Token: 0x06002FFB RID: 12283 RVA: 0x0010D0D0 File Offset: 0x0010B2D0
953 public bool HasWall
954 {
955 get
956 {
957 return Cell.blockList[(int)this._block].tileType.IsWall;
958 }
959 }
960
961 // Token: 0x17000DB0 RID: 3504
962 // (get) Token: 0x06002FFC RID: 12284 RVA: 0x0010D0EC File Offset: 0x0010B2EC
963 public bool HasFence
964 {
965 get
966 {
967 return Cell.blockList[(int)this._block].tileType.IsFence;
968 }
969 }
970
971 // Token: 0x17000DB1 RID: 3505
972 // (get) Token: 0x06002FFD RID: 12285 RVA: 0x0010D108 File Offset: 0x0010B308
973 public bool HasRamp
974 {
975 get
976 {
977 return Cell.blockList[(int)this._block].tileType.IsRamp;
978 }
979 }
980
981 // Token: 0x17000DB2 RID: 3506
982 // (get) Token: 0x06002FFE RID: 12286 RVA: 0x0010D124 File Offset: 0x0010B324
983 public bool HasLadder
984 {
985 get
986 {
987 return Cell.blockList[(int)this._block].tileType.IsLadder;
988 }
989 }
990
991 // Token: 0x17000DB3 RID: 3507
992 // (get) Token: 0x06002FFF RID: 12287 RVA: 0x0010D140 File Offset: 0x0010B340
993 public bool HasRampOrLadder
994 {
995 get
996 {
997 return this.HasRamp || this.HasLadder;
998 }
999 }
1000
1001 // Token: 0x17000DB4 RID: 3508
1002 // (get) Token: 0x06003000 RID: 12288 RVA: 0x0010D152 File Offset: 0x0010B352
1003 public bool HasSlope
1004 {
1005 get
1006 {
1007 return Cell.blockList[(int)this._block].tileType == TileType.Slope;
1008 }
1009 }
1010
1011 // Token: 0x17000DB5 RID: 3509
1012 // (get) Token: 0x06003001 RID: 12289 RVA: 0x0010D170 File Offset: 0x0010B370
1013 public bool HasStairs
1014 {
1015 get
1016 {
1017 return Cell.blockList[(int)this._block].tileType == TileType.Stairs;
1018 }
1019 }
1020
1021 // Token: 0x17000DB6 RID: 3510
1022 // (get) Token: 0x06003002 RID: 12290 RVA: 0x0010D18E File Offset: 0x0010B38E
1023 public bool HasHalfBlock
1024 {
1025 get
1026 {
1027 return Cell.blockList[(int)this._block].tileType == TileType.HalfBlock;
1028 }
1029 }
1030
1031 // Token: 0x17000DB7 RID: 3511
1032 // (get) Token: 0x06003003 RID: 12291 RVA: 0x0010D1AC File Offset: 0x0010B3AC
1033 public bool HasBlockOrRamp
1034 {
1035 get
1036 {
1037 return Cell.blockList[(int)this._block].isBlockOrRamp;
1038 }
1039 }
1040
1041 // Token: 0x17000DB8 RID: 3512
1042 // (get) Token: 0x06003004 RID: 12292 RVA: 0x0010D1C3 File Offset: 0x0010B3C3
1043 public bool UseLowBlock
1044 {
1045 get
1046 {
1047 return Cell.blockList[(int)this._block].tileType.UseLowBlock;
1048 }
1049 }
1050
1051 // Token: 0x17000DB9 RID: 3513
1052 // (get) Token: 0x06003005 RID: 12293 RVA: 0x0010D1DF File Offset: 0x0010B3DF
1053 public bool CastShadow
1054 {
1055 get
1056 {
1057 return Cell.blockList[(int)this._block].tileType.CastShadowSelf;
1058 }
1059 }
1060
1061 // Token: 0x17000DBA RID: 3514
1062 // (get) Token: 0x06003006 RID: 12294 RVA: 0x0010D1FB File Offset: 0x0010B3FB
1063 public bool CastAmbientShadow
1064 {
1065 get
1066 {
1067 return Cell.blockList[(int)this._block].tileType.CastAmbientShadow;
1068 }
1069 }
1070
1071 // Token: 0x17000DBB RID: 3515
1072 // (get) Token: 0x06003007 RID: 12295 RVA: 0x0010D217 File Offset: 0x0010B417
1073 public bool IsRoomEdge
1074 {
1075 get
1076 {
1077 return this.Front.room != this.room || this.Right.room != this.room || this.FrontRight.room != this.room;
1078 }
1079 }
1080
1081 // Token: 0x17000DBC RID: 3516
1082 // (get) Token: 0x06003008 RID: 12296 RVA: 0x0010D258 File Offset: 0x0010B458
1083 public bool IsLotEdge
1084 {
1085 get
1086 {
1087 return this.Front.room == null || this.Right.room == null || this.FrontRight.room == null || this.Back.room == null || this.Left.room == null || (this.Front.room != null && (this.Front.room.data.atrium || !this.Front.HasRoof)) || (this.Right.room != null && (this.Right.room.data.atrium | !this.Right.HasRoof));
1088 }
1089 }
1090
1091 // Token: 0x17000DBD RID: 3517
1092 // (get) Token: 0x06003009 RID: 12297 RVA: 0x0010D312 File Offset: 0x0010B512
1093 public bool IsBlocked
1094 {
1095 get
1096 {
1097 return this.blocked;
1098 }
1099 }
1100
1101 // Token: 0x0600300A RID: 12298 RVA: 0x0010D31A File Offset: 0x0010B51A
1102 public bool HasObstacle()
1103 {
1104 return this.blocked || this._block != 0 || this.obj != 0 || this.hasDoor;
1105 }
1106
1107 // Token: 0x0600300B RID: 12299 RVA: 0x0010D33C File Offset: 0x0010B53C
1108 public bool CanBuildRamp(int dir)
1109 {
1110 return !this.HasRamp || this.blockDir == dir;
1111 }
1112
1113 // Token: 0x17000DBE RID: 3518
1114 // (get) Token: 0x0600300C RID: 12300 RVA: 0x0010D351 File Offset: 0x0010B551
1115 // (set) Token: 0x0600300D RID: 12301 RVA: 0x0010D35B File Offset: 0x0010B55B
1116 public int blockDir
1117 {
1118 get
1119 {
1120 return (int)(this._dirs % 4);
1121 }
1122 set
1123 {
1124 this._dirs = (byte)((int)this._dirs - this.blockDir + value);
1125 }
1126 }
1127
1128 // Token: 0x17000DBF RID: 3519
1129 // (get) Token: 0x0600300E RID: 12302 RVA: 0x0010D373 File Offset: 0x0010B573
1130 // (set) Token: 0x0600300F RID: 12303 RVA: 0x0010D37F File Offset: 0x0010B57F
1131 public int objDir
1132 {
1133 get
1134 {
1135 return (int)(this._dirs / 4 % 8);
1136 }
1137 set
1138 {
1139 this._dirs = (byte)((int)this._dirs - this.objDir * 4 + value % 8 * 4);
1140 }
1141 }
1142
1143 // Token: 0x17000DC0 RID: 3520
1144 // (get) Token: 0x06003010 RID: 12304 RVA: 0x0010D39D File Offset: 0x0010B59D
1145 // (set) Token: 0x06003011 RID: 12305 RVA: 0x0010D3A8 File Offset: 0x0010B5A8
1146 public int floorDir
1147 {
1148 get
1149 {
1150 return (int)(this._dirs / 32);
1151 }
1152 set
1153 {
1154 this._dirs = (byte)((int)this._dirs - this.floorDir * 32 + value * 32);
1155 }
1156 }
1157
1158 // Token: 0x17000DC1 RID: 3521
1159 // (get) Token: 0x06003012 RID: 12306 RVA: 0x0010D3C6 File Offset: 0x0010B5C6
1160 public bool IsSky
1161 {
1162 get
1163 {
1164 return this.sourceFloor.tileType == TileType.Sky && !this.HasBridge;
1165 }
1166 }
1167
1168 // Token: 0x17000DC2 RID: 3522
1169 // (get) Token: 0x06003013 RID: 12307 RVA: 0x0010D3E5 File Offset: 0x0010B5E5
1170 public int liquidLv
1171 {
1172 get
1173 {
1174 if (this.effect != null && this.effect.LiquidAmount != 0)
1175 {
1176 CellEffect cellEffect = this.effect;
1177 return ((cellEffect != null) ? cellEffect.LiquidAmount : 0) / 3 + 1;
1178 }
1179 return 0;
1180 }
1181 }
1182
1183 // Token: 0x17000DC3 RID: 3523
1184 // (get) Token: 0x06003014 RID: 12308 RVA: 0x0010D414 File Offset: 0x0010B614
1185 public int fireAmount
1186 {
1187 get
1188 {
1189 CellEffect cellEffect = this.effect;
1190 if (cellEffect == null)
1191 {
1192 return 0;
1193 }
1194 return cellEffect.FireAmount;
1195 }
1196 }
1197
1198 // Token: 0x17000DC4 RID: 3524
1199 // (get) Token: 0x06003015 RID: 12309 RVA: 0x0010D427 File Offset: 0x0010B627
1200 public bool IsVoid
1201 {
1202 get
1203 {
1204 return this == Cell.Void;
1205 }
1206 }
1207
1208 // Token: 0x17000DC5 RID: 3525
1209 // (get) Token: 0x06003016 RID: 12310 RVA: 0x0010D431 File Offset: 0x0010B631
1210 public Thing FirstThing
1211 {
1212 get
1213 {
1214 CellDetail cellDetail = this.detail;
1215 if (cellDetail == null || cellDetail.things.Count <= 0)
1216 {
1217 return null;
1218 }
1219 return this.detail.things[0];
1220 }
1221 }
1222
1223 // Token: 0x17000DC6 RID: 3526
1224 // (get) Token: 0x06003017 RID: 12311 RVA: 0x0010D464 File Offset: 0x0010B664
1225 public Thing Installed
1226 {
1227 get
1228 {
1229 if (this.detail == null || this.detail.things.Count <= 0 || !this.detail.things[0].IsInstalled)
1230 {
1231 return null;
1232 }
1233 return this.detail.things[0];
1234 }
1235 }
1236
1237 // Token: 0x17000DC7 RID: 3527
1238 // (get) Token: 0x06003018 RID: 12312 RVA: 0x0010D4B7 File Offset: 0x0010B6B7
1239 public List<Thing> Things
1240 {
1241 get
1242 {
1243 return (this.detail ?? CellDetail.Empty).things;
1244 }
1245 }
1246
1247 // Token: 0x17000DC8 RID: 3528
1248 // (get) Token: 0x06003019 RID: 12313 RVA: 0x0010D4CD File Offset: 0x0010B6CD
1249 public List<Chara> Charas
1250 {
1251 get
1252 {
1253 return (this.detail ?? CellDetail.Empty).charas;
1254 }
1255 }
1256
1257 // Token: 0x17000DC9 RID: 3529
1258 // (get) Token: 0x0600301A RID: 12314 RVA: 0x0010D4E3 File Offset: 0x0010B6E3
1259 // (set) Token: 0x0600301B RID: 12315 RVA: 0x0010D514 File Offset: 0x0010B714
1260 public int gatherCount
1261 {
1262 get
1263 {
1264 if (!Cell.map.gatherCounts.ContainsKey(this.index))
1265 {
1266 return 0;
1267 }
1268 return Cell.map.gatherCounts[this.index];
1269 }
1270 set
1271 {
1272 if (value == 0)
1273 {
1274 if (Cell.map.gatherCounts.ContainsKey(this.index))
1275 {
1276 Cell.map.gatherCounts.Remove(this.index);
1277 return;
1278 }
1279 }
1280 else
1281 {
1282 Cell.map.gatherCounts[this.index] = value;
1283 }
1284 }
1285 }
1286
1287 // Token: 0x17000DCA RID: 3530
1288 // (get) Token: 0x0600301C RID: 12316 RVA: 0x0010D568 File Offset: 0x0010B768
1289 public bool HasFloodBlock
1290 {
1291 get
1292 {
1293 return this.sourceBlock.tileType.IsFloodBlock || this.hasDoor;
1294 }
1295 }
1296
1297 // Token: 0x17000DCB RID: 3531
1298 // (get) Token: 0x0600301D RID: 12317 RVA: 0x0010D584 File Offset: 0x0010B784
1299 public SourceMaterial.Row matRoofBlock
1300 {
1301 get
1302 {
1303 return Cell.matList[(int)this._roofBlockMat];
1304 }
1305 }
1306
1307 // Token: 0x17000DCC RID: 3532
1308 // (get) Token: 0x0600301E RID: 12318 RVA: 0x0010D596 File Offset: 0x0010B796
1309 public SourceMaterial.Row matBlock
1310 {
1311 get
1312 {
1313 return Cell.matList[(int)this._blockMat];
1314 }
1315 }
1316
1317 // Token: 0x17000DCD RID: 3533
1318 // (get) Token: 0x0600301F RID: 12319 RVA: 0x0010D5A8 File Offset: 0x0010B7A8
1319 public SourceMaterial.Row matFloor
1320 {
1321 get
1322 {
1323 return Cell.matList[(int)this._floorMat];
1324 }
1325 }
1326
1327 // Token: 0x17000DCE RID: 3534
1328 // (get) Token: 0x06003020 RID: 12320 RVA: 0x0010D5BA File Offset: 0x0010B7BA
1329 public SourceMaterial.Row matBridge
1330 {
1331 get
1332 {
1333 return Cell.matList[(int)this._bridgeMat];
1334 }
1335 }
1336
1337 // Token: 0x17000DCF RID: 3535
1338 // (get) Token: 0x06003021 RID: 12321 RVA: 0x0010D5CC File Offset: 0x0010B7CC
1339 public SourceMaterial.Row matObj
1340 {
1341 get
1342 {
1343 return Cell.matList[(int)this.objMat];
1344 }
1345 }
1346
1347 // Token: 0x17000DD0 RID: 3536
1348 // (get) Token: 0x06003022 RID: 12322 RVA: 0x0010D5DE File Offset: 0x0010B7DE
1349 public SourceMaterial.Row matObj_fixed
1350 {
1351 get
1352 {
1353 if (!this.isObjDyed)
1354 {
1355 return Cell.matList[(int)this.objMat];
1356 }
1357 return this.sourceObj.DefaultMaterial;
1358 }
1359 }
1360
1361 // Token: 0x17000DD1 RID: 3537
1362 // (get) Token: 0x06003023 RID: 12323 RVA: 0x0010D604 File Offset: 0x0010B804
1363 public SourceBlock.Row sourceRoofBlock
1364 {
1365 get
1366 {
1367 return Cell.blockList[(int)this._roofBlock];
1368 }
1369 }
1370
1371 // Token: 0x17000DD2 RID: 3538
1372 // (get) Token: 0x06003024 RID: 12324 RVA: 0x0010D616 File Offset: 0x0010B816
1373 public SourceBlock.Row sourceBlock
1374 {
1375 get
1376 {
1377 return Cell.blockList[(int)this._block];
1378 }
1379 }
1380
1381 // Token: 0x17000DD3 RID: 3539
1382 // (get) Token: 0x06003025 RID: 12325 RVA: 0x0010D628 File Offset: 0x0010B828
1383 public SourceFloor.Row sourceFloor
1384 {
1385 get
1386 {
1387 return Cell.floorList[(int)this._floor];
1388 }
1389 }
1390
1391 // Token: 0x17000DD4 RID: 3540
1392 // (get) Token: 0x06003026 RID: 12326 RVA: 0x0010D63A File Offset: 0x0010B83A
1393 public SourceFloor.Row sourceBridge
1394 {
1395 get
1396 {
1397 return Cell.floorList[(int)this._bridge];
1398 }
1399 }
1400
1401 // Token: 0x17000DD5 RID: 3541
1402 // (get) Token: 0x06003027 RID: 12327 RVA: 0x0010D64C File Offset: 0x0010B84C
1403 public SourceFloor.Row sourceSurface
1404 {
1405 get
1406 {
1407 if (this._bridge != 0)
1408 {
1409 return this.sourceBridge;
1410 }
1411 return this.sourceFloor;
1412 }
1413 }
1414
1415 // Token: 0x17000DD6 RID: 3542
1416 // (get) Token: 0x06003028 RID: 12328 RVA: 0x0010D663 File Offset: 0x0010B863
1417 public SourceCellEffect.Row sourceEffect
1418 {
1419 get
1420 {
1421 CellEffect cellEffect = this.effect;
1422 return ((cellEffect != null) ? cellEffect.source : null) ?? Cell.effectList[0];
1423 }
1424 }
1425
1426 // Token: 0x17000DD7 RID: 3543
1427 // (get) Token: 0x06003029 RID: 12329 RVA: 0x0010D686 File Offset: 0x0010B886
1428 public SourceObj.Row sourceObj
1429 {
1430 get
1431 {
1432 return Cell.objList[(int)this.obj];
1433 }
1434 }
1435
1436 // Token: 0x17000DD8 RID: 3544
1437 // (get) Token: 0x0600302A RID: 12330 RVA: 0x0010D698 File Offset: 0x0010B898
1438 public BiomeProfile biome
1439 {
1440 get
1441 {
1442 if (!(this.sourceFloor.biome != null))
1443 {
1444 return EClass._zone.biome;
1445 }
1446 return this.sourceFloor.biome;
1447 }
1448 }
1449
1450 // Token: 0x0600302B RID: 12331 RVA: 0x0010D6C4 File Offset: 0x0010B8C4
1451 public void Refresh()
1452 {
1453 Cell.<>c__DisplayClass311_0 CS$<>8__locals1;
1454 CS$<>8__locals1.<>4__this = this;
1455 Cell cell = (this.x > 0) ? Cell.cells[(int)(this.x - 1), (int)this.z] : Cell.Void;
1456 Cell cell2 = ((int)(this.x + 1) < Cell.Size) ? Cell.cells[(int)(this.x + 1), (int)this.z] : Cell.Void;
1457 Cell cell3 = (this.z > 0) ? Cell.cells[(int)this.x, (int)(this.z - 1)] : Cell.Void;
1458 Cell cell4 = ((int)(this.z + 1) < Cell.Size) ? Cell.cells[(int)this.x, (int)(this.z + 1)] : Cell.Void;
1459 Cell cell5 = (this.x > 0 && this.z > 0) ? Cell.cells[(int)(this.x - 1), (int)(this.z - 1)] : Cell.Void;
1460 Cell cell6 = ((int)(this.x + 1) < Cell.Size && this.z > 0) ? Cell.cells[(int)(this.x + 1), (int)(this.z - 1)] : Cell.Void;
1461 Cell cell7 = (this.x > 0 && (int)(this.z + 1) < Cell.Size) ? Cell.cells[(int)(this.x - 1), (int)(this.z + 1)] : Cell.Void;
1462 Cell cell8 = ((int)(this.x + 1) < Cell.Size && (int)(this.z + 1) < Cell.Size) ? Cell.cells[(int)(this.x + 1), (int)(this.z + 1)] : Cell.Void;
1463 Cell cell9 = (this.z > 1) ? Cell.cells[(int)this.x, (int)(this.z - 2)] : Cell.Void;
1464 Cell cell10 = ((int)(this.x + 2) < Cell.Size) ? Cell.cells[(int)(this.x + 2), (int)this.z] : Cell.Void;
1465 TileType tileType = this.sourceBlock.tileType;
1466 TileType tileType2 = this.sourceFloor.tileType;
1467 MapBounds bounds = Cell.map.bounds;
1468 bool flag = this._bridge > 0;
1469 this.outOfBounds = ((int)this.x < bounds.x || (int)this.z < bounds.z || (int)this.x > bounds.maxX || (int)this.z > bounds.maxZ);
1470 this.isSurrounded4d = (cell.HasFullBlock && cell2.HasFullBlock && cell3.HasFullBlock && cell4.HasFullBlock);
1471 this.isSurrounded = (this.isSurrounded4d && cell5.HasFullBlock && cell6.HasFullBlock && cell7.HasFullBlock && cell8.HasFullBlock && cell3.bridgeHeight == this.bridgeHeight && cell2.bridgeHeight == this.bridgeHeight && cell4.bridgeHeight == this.bridgeHeight && cell.bridgeHeight == this.bridgeHeight);
1472 this.isFloating = this.isForceFloat;
1473 this.hasDoor = false;
1474 this.hasDoorBoat = false;
1475 this.isDeck = false;
1476 this.isShoreSand = false;
1477 this.hasWindow = false;
1478 this.isCurtainClosed = false;
1479 this.isSkyFloor = (tileType2 != TileType.Sky && (cell2.sourceFloor.tileType == TileType.Sky || cell3.sourceFloor.tileType == TileType.Sky));
1480 Cell.openPath = false;
1481 Cell.openSight = (tileType.IsOpenSight || (cell3.hasWindow && !cell3.isCurtainClosed) || (cell2.hasWindow && !cell2.isCurtainClosed));
1482 this.blockSight = (tileType.IsBlockSight || ((Cell.objList[(int)this.obj].growth != null) ? Cell.objList[(int)this.obj].growth.BlockSight(this) : Cell.objList[(int)this.obj].tileType.IsBlockSight));
1483 this.blocked = (this.outOfBounds || tileType.IsBlockPass || (tileType2.IsBlockPass && !flag) || ((Cell.objList[(int)this.obj].growth != null) ? Cell.objList[(int)this.obj].growth.BlockPass(this) : Cell.objList[(int)this.obj].tileType.IsBlockPass) || this.impassable);
1484 this.isSlopeEdge = (this.height > cell2.height || this.height > cell3.height);
1485 if (flag && this.sourceBridge.tileType.ShowPillar)
1486 {
1487 this.isBridgeEdge = (this._bridge != cell2._bridge || this._bridge != cell3._bridge || this.bridgeHeight > cell2.bridgeHeight || this.bridgeHeight > cell3.bridgeHeight || this._bridge != cell._bridge || this._bridge != cell4._bridge || this.bridgeHeight > cell.bridgeHeight || this.bridgeHeight > cell4.bridgeHeight);
1488 }
1489 else
1490 {
1491 this.isBridgeEdge = false;
1492 }
1493 this.lotShade = false;
1494 if (this.room == null && !EClass._zone.IsSnowCovered)
1495 {
1496 if ((cell10.room != null && cell2.sourceBlock.tileType.CastShadowSelf) || (cell9.room != null && cell3.sourceBlock.tileType.CastShadowSelf))
1497 {
1498 this.lotShade = true;
1499 }
1500 else if ((cell10.Front.room != null && cell6.sourceBlock.tileType.CastShadowSelf) || (cell9.Right.room != null && cell6.sourceBlock.tileType.CastShadowSelf) || (cell6.FrontRight.room != null && cell6.Right.sourceBlock.tileType.CastShadowSelf))
1501 {
1502 this.lotShade = true;
1503 }
1504 else if (cell10.sourceBlock.tileType.CastShadowSelf && cell10.Right.room != null)
1505 {
1506 this.lotShade = true;
1507 }
1508 }
1509 this.isShadowed = (this.lotShade || this.sourceBlock.tileType.CastShadowSelf || cell3.sourceBlock.tileType.CastShadowBack || (!this.HasRoof && this._roofBlock > 0));
1510 this.castFloorShadow = (this.lotShade || (this.room == null && this.sourceBlock.tileType.CastShadowSelf));
1511 byte b = flag ? this.bridgeHeight : this.height;
1512 byte b2 = (cell3.bridgeHeight == 0) ? cell3.height : cell3.bridgeHeight;
1513 byte b3 = (cell2.bridgeHeight == 0) ? cell2.height : cell2.bridgeHeight;
1514 byte b4 = (cell9.bridgeHeight == 0) ? cell9.height : cell9.bridgeHeight;
1515 byte b5 = (cell10.bridgeHeight == 0) ? cell10.height : cell10.bridgeHeight;
1516 int num = 0;
1517 if ((int)(b3 - b) > num)
1518 {
1519 num = (int)(b3 - b);
1520 }
1521 if ((int)(b2 - b) > num)
1522 {
1523 num = (int)(b2 - b);
1524 }
1525 if ((int)(b5 - b - 4) > num)
1526 {
1527 num = (int)(b5 - b - 4);
1528 }
1529 if ((int)(b4 - b - 4) > num)
1530 {
1531 num = (int)(b4 - b - 4);
1532 }
1533 num -= 4;
1534 if (num > 15)
1535 {
1536 num = 15;
1537 }
1538 if (this.IsTopWater)
1539 {
1540 num /= 3;
1541 }
1542 else if (this.isShadowed)
1543 {
1544 num /= 2;
1545 }
1546 if (num <= 0)
1547 {
1548 num = 0;
1549 }
1550 this.shadowMod = (byte)num;
1551 this.baseWeight = 0;
1552 if (this.detail != null && this.detail.things.Count > 0)
1553 {
1554 for (int i = 0; i < this.detail.things.Count; i++)
1555 {
1556 Thing thing = this.detail.things[i];
1557 if (thing.IsInstalled)
1558 {
1559 if (thing.trait.WeightMod > this.baseWeight)
1560 {
1561 this.baseWeight = thing.trait.WeightMod;
1562 }
1563 if (!thing.isHidden)
1564 {
1565 if (thing.trait.IsFloating)
1566 {
1567 this.isFloating = true;
1568 if (this.IsFloorWater)
1569 {
1570 this.blocked = true;
1571 }
1572 else
1573 {
1574 this.isDeck = true;
1575 }
1576 }
1577 else
1578 {
1579 if (thing.trait.IsOpenPath)
1580 {
1581 this.blocked = false;
1582 this.hasDoorBoat = true;
1583 Cell.openPath = true;
1584 Cell.openSight = true;
1585 }
1586 if (thing.trait.IsBlockPath)
1587 {
1588 this.blocked = true;
1589 }
1590 }
1591 if (thing.trait.IsOpenSight)
1592 {
1593 Cell.openSight = true;
1594 }
1595 if (thing.trait is TraitDoor)
1596 {
1597 this.blocked = false;
1598 this.hasDoor = true;
1599 this.blockSight = true;
1600 }
1601 else if (thing.trait.IsBlockSight)
1602 {
1603 this.blockSight = true;
1604 }
1605 Trait trait = thing.trait;
1606 if (!(trait is TraitWindow))
1607 {
1608 if (trait is TraitCurtain)
1609 {
1610 this.isCurtainClosed = thing.isOn;
1611 }
1612 }
1613 else
1614 {
1615 this.hasWindow = true;
1616 }
1617 }
1618 }
1619 }
1620 }
1621 this.minHeight = (byte)((int)(10 + b) + ((this.IsTopWater && !this.isFloating) ? this.sourceFloor.tileType.FloorAltitude : 0));
1622 this.topHeight = this.minHeight + tileType.slopeHeight;
1623 this.weights[0] = ((Mathf.Abs((int)(cell3.minHeight - this.topHeight)) > 8 && Mathf.Abs((int)(cell3.topHeight - this.minHeight)) > 8) ? 0 : 1);
1624 this.weights[1] = ((Mathf.Abs((int)(cell2.minHeight - this.topHeight)) > 8 && Mathf.Abs((int)(cell2.topHeight - this.minHeight)) > 8) ? 0 : 1);
1625 this.weights[2] = ((Mathf.Abs((int)(cell4.minHeight - this.topHeight)) > 8 && Mathf.Abs((int)(cell4.topHeight - this.minHeight)) > 8) ? 0 : 1);
1626 this.weights[3] = ((Mathf.Abs((int)(cell.minHeight - this.topHeight)) > 8 && Mathf.Abs((int)(cell.topHeight - this.minHeight)) > 8) ? 0 : 1);
1627 if (this.IsDeepWater)
1628 {
1629 this.baseWeight += 100;
1630 }
1631 this.ignoreObjShadow = ((b2 > b && b2 - b > 6) || (b3 > b && b3 - b > 6));
1632 this.isWallEdge = (!this.blocked && cell2.sourceBlock.tileType.IsWallOrFence && cell2.blockDir != 1 && cell3.sourceBlock.tileType.IsWallOrFence && cell3.blockDir != 0);
1633 if (this.isWallEdge)
1634 {
1635 this.blockSight = (cell2.sourceBlock.tileType.IsBlockSight && cell3.sourceBlock.tileType.IsBlockSight);
1636 this.blocked = true;
1637 this.blockSight = true;
1638 }
1639 this.shadow = 0;
1640 if (!this.HasBlock)
1641 {
1642 if (cell.isSeen && cell.CastAmbientShadow && !cell.hasDoor && this.bridgeHeight == cell.bridgeHeight && !this.sourceFloor.ignoreTransition && (!cell.sourceBlock.tileType.IsWallOrFence || cell.blockDir != 0))
1643 {
1644 this.shadow += 1;
1645 }
1646 if (cell4.isSeen && cell4.CastAmbientShadow && !cell4.hasDoor && this.bridgeHeight == cell4.bridgeHeight && !this.sourceFloor.ignoreTransition && (!cell4.sourceBlock.tileType.IsWallOrFence || cell4.blockDir != 1))
1647 {
1648 this.shadow += 2;
1649 }
1650 }
1651 else
1652 {
1653 if (this.isFloating && (this.room != null || cell3.room != null || cell2.room != null || cell6.room != null))
1654 {
1655 this.isFloating = false;
1656 }
1657 if (this.sourceBlock.tileType.IsFence && !this.hasDoor && (this.blockDir != 0 || cell4.topHeight >= b - 3) && (this.blockDir != 1 || cell.topHeight >= b - 3))
1658 {
1659 this.shadow = (byte)(this.blockDir + 4);
1660 }
1661 }
1662 CS$<>8__locals1.isFloorWater = this.IsFloorWater;
1663 if (CS$<>8__locals1.isFloorWater)
1664 {
1665 this.shore = (byte)((((cell4.IsNotWaterEdge || (int)this.z == Cell.Size - 1 || this.height != cell4.height) ? 0 : 1) + ((cell2.IsNotWaterEdge || (int)this.x == Cell.Size - 1 || this.height != cell2.height) ? 0 : 2) + ((cell3.IsNotWaterEdge || this.z == 0 || this.height != cell3.height) ? 0 : 4) + ((cell.IsNotWaterEdge || this.x == 0 || this.height != cell.height) ? 0 : 8)) * 12);
1666 this.isShoreSand = (cell4.sourceFloor.isBeach || cell2.sourceFloor.isBeach || cell3.sourceFloor.isBeach || cell.sourceFloor.isBeach);
1667 if (this.shore != 0)
1668 {
1669 this.shore += (this.isShoreSand ? 2 : 3);
1670 }
1671 }
1672 else
1673 {
1674 this.shore = 0;
1675 }
1676 if (this.sourceFloor.autotile > 0)
1677 {
1678 this.autotile = (byte)(((!this.<Refresh>g__IsAutoTileEdge|311_0(cell4, ref CS$<>8__locals1) || (int)this.z == Cell.Size - 1) ? 0 : 1) + ((!this.<Refresh>g__IsAutoTileEdge|311_0(cell2, ref CS$<>8__locals1) || (int)this.x == Cell.Size - 1) ? 0 : 2) + ((!this.<Refresh>g__IsAutoTileEdge|311_0(cell3, ref CS$<>8__locals1) || this.z == 0) ? 0 : 4) + ((!this.<Refresh>g__IsAutoTileEdge|311_0(cell, ref CS$<>8__locals1) || this.x == 0) ? 0 : 8));
1679 }
1680 else
1681 {
1682 this.autotile = 0;
1683 }
1684 if (this._bridge != 0 && this.sourceBridge.autotile > 0)
1685 {
1686 this.autotileBridge = (byte)(((!this.<Refresh>g__IsBridgeAutoTileEdge|311_1(cell4, ref CS$<>8__locals1) || (int)this.z == Cell.Size - 1) ? 0 : 1) + ((!this.<Refresh>g__IsBridgeAutoTileEdge|311_1(cell2, ref CS$<>8__locals1) || (int)this.x == Cell.Size - 1) ? 0 : 2) + ((!this.<Refresh>g__IsBridgeAutoTileEdge|311_1(cell3, ref CS$<>8__locals1) || this.z == 0) ? 0 : 4) + ((!this.<Refresh>g__IsBridgeAutoTileEdge|311_1(cell, ref CS$<>8__locals1) || this.x == 0) ? 0 : 8));
1687 }
1688 else
1689 {
1690 this.autotileBridge = 0;
1691 }
1692 if (this.obj != 0 && this.sourceObj.autoTile)
1693 {
1694 this.autotileObj = (byte)(((!this.<Refresh>g__IsObjAutoTileEdge|311_2(cell4, ref CS$<>8__locals1) || (int)this.z == Cell.Size - 1) ? 0 : 1) + ((!this.<Refresh>g__IsObjAutoTileEdge|311_2(cell2, ref CS$<>8__locals1) || (int)this.x == Cell.Size - 1) ? 0 : 2) + ((!this.<Refresh>g__IsObjAutoTileEdge|311_2(cell3, ref CS$<>8__locals1) || this.z == 0) ? 0 : 4) + ((!this.<Refresh>g__IsObjAutoTileEdge|311_2(cell, ref CS$<>8__locals1) || this.x == 0) ? 0 : 8));
1695 }
1696 else
1697 {
1698 this.autotileObj = 0;
1699 }
1700 if (Cell.openSight)
1701 {
1702 this.blockSight = false;
1703 }
1704 if (Cell.openPath)
1705 {
1706 this.blocked = false;
1707 }
1708 }
1709
1710 // Token: 0x0600302C RID: 12332 RVA: 0x0010E67C File Offset: 0x0010C87C
1711 public void RotateBlock(int a)
1712 {
1713 int num = this.blockDir;
1714 int num2 = this.sourceBlock.tileType.IsWallOrFence ? 3 : this.sourceBlock._tiles.Length;
1715 num += a;
1716 if (num < 0)
1717 {
1718 num = num2 - 1;
1719 }
1720 if (num >= num2)
1721 {
1722 num = 0;
1723 }
1724 this.blockDir = num;
1725 }
1726
1727 // Token: 0x0600302D RID: 12333 RVA: 0x0010E6CC File Offset: 0x0010C8CC
1728 public void RotateFloor(int a)
1729 {
1730 int num = this.floorDir;
1731 num += a;
1732 if (num < 0)
1733 {
1734 num = this.sourceFloor._tiles.Length - 1;
1735 }
1736 if (num >= this.sourceFloor._tiles.Length)
1737 {
1738 num = 0;
1739 }
1740 this.floorDir = num;
1741 }
1742
1743 // Token: 0x0600302E RID: 12334 RVA: 0x0010E714 File Offset: 0x0010C914
1744 public void RotateObj(bool reverse = false, bool useBlockDir = false)
1745 {
1746 int num = useBlockDir ? this.blockDir : this.objDir;
1747 if (reverse)
1748 {
1749 num--;
1750 }
1751 else
1752 {
1753 num++;
1754 }
1755 if (num < 0)
1756 {
1757 num = this.sourceObj._tiles.Length - 1;
1758 }
1759 if (num >= this.sourceObj._tiles.Length)
1760 {
1761 num = 0;
1762 }
1763 if (useBlockDir)
1764 {
1765 this.blockDir = num;
1766 return;
1767 }
1768 this.objDir = num;
1769 }
1770
1771 // Token: 0x0600302F RID: 12335 RVA: 0x0010E778 File Offset: 0x0010C978
1772 public void RotateAll()
1773 {
1774 bool flag = EInput.isShiftDown || Input.GetMouseButton(1);
1775 PointTarget mouseTarget = Core.Instance.scene.mouseTarget;
1776 if (mouseTarget.card != null)
1777 {
1778 mouseTarget.card.Rotate(flag);
1779 return;
1780 }
1781 if (this.detail == null || this.detail.things.Count == 0)
1782 {
1783 if (this.HasBlock)
1784 {
1785 if (this.sourceBlock.tileType.CanRotate(false))
1786 {
1787 this.RotateBlock(flag ? -1 : 1);
1788 }
1789 }
1790 else if (this.HasObj)
1791 {
1792 if (this.sourceObj.tileType.CanRotate(false))
1793 {
1794 this.RotateObj(flag, this.sourceObj.tileType.IsUseBlockDir);
1795 }
1796 }
1797 else if (this.HasFloor)
1798 {
1799 this.RotateFloor(flag ? -1 : 1);
1800 }
1801 }
1802 this.GetPoint().RefreshNeighborTiles();
1803 }
1804
1805 // Token: 0x06003030 RID: 12336 RVA: 0x0010E854 File Offset: 0x0010CA54
1806 public void Reset()
1807 {
1808 this._block = (this._blockMat = (this._floor = (this._floorMat = (this.obj = (this.decal = (this.objVal = (this.objMat = 0)))))));
1809 this.bits.Bits = 0U;
1810 this.bits2.Bits = 0U;
1811 }
1812
1813 // Token: 0x06003031 RID: 12337 RVA: 0x0010E8BF File Offset: 0x0010CABF
1814 public CellDetail GetOrCreateDetail()
1815 {
1816 if (this.detail == null)
1817 {
1818 this.detail = CellDetail.Spawn();
1819 }
1820 return this.detail;
1821 }
1822
1823 // Token: 0x06003032 RID: 12338 RVA: 0x0010E8DA File Offset: 0x0010CADA
1824 public void TryDespawnDetail()
1825 {
1826 if (this.detail != null && this.detail.TryDespawn())
1827 {
1828 this.detail = null;
1829 }
1830 }
1831
1832 // Token: 0x06003033 RID: 12339 RVA: 0x0010E8F8 File Offset: 0x0010CAF8
1833 public void AddCard(Card c)
1834 {
1835 this.GetOrCreateDetail();
1836 if (c.isChara)
1837 {
1838 this.detail.charas.Add(c.Chara);
1839 return;
1840 }
1841 this.detail.things.Add(c.Thing);
1842 c.Thing.stackOrder = this.detail.things.Count - 1;
1843 if (c.trait.ShouldRefreshTile || c.sourceCard.multisize)
1844 {
1845 this.GetPoint().RefreshNeighborTiles();
1846 }
1847 }
1848
1849 // Token: 0x06003034 RID: 12340 RVA: 0x0010E984 File Offset: 0x0010CB84
1850 public void RemoveCard(Card c)
1851 {
1852 if (c.isChara)
1853 {
1854 if (this.detail != null)
1855 {
1856 this.detail.charas.Remove(c.Chara);
1857 }
1858 }
1859 else
1860 {
1861 if (this.detail != null)
1862 {
1863 this.detail.things.Remove(c.Thing);
1864 }
1865 if (c.trait.ShouldRefreshTile || c.sourceCard.multisize)
1866 {
1867 this.GetPoint().RefreshNeighborTiles();
1868 }
1869 }
1870 this.TryDespawnDetail();
1871 }
1872
1873 // Token: 0x06003035 RID: 12341 RVA: 0x0010EA04 File Offset: 0x0010CC04
1874 public string GetBlockName()
1875 {
1876 return Lang.Parse("blockName", this.matBlock.GetName(), this.sourceBlock.GetName(), null, null, null);
1877 }
1878
1879 // Token: 0x06003036 RID: 12342 RVA: 0x0010EA29 File Offset: 0x0010CC29
1880 public string GetFloorName()
1881 {
1882 return Lang.Parse("blockName", this.matFloor.GetName(), this.sourceFloor.GetName(), null, null, null);
1883 }
1884
1885 // Token: 0x06003037 RID: 12343 RVA: 0x0010EA4E File Offset: 0x0010CC4E
1886 public string GetBridgeName()
1887 {
1888 return Lang.Parse("blockName", this.matBridge.GetName(), this.sourceBridge.GetName(), null, null, null);
1889 }
1890
1891 // Token: 0x06003038 RID: 12344 RVA: 0x0010EA74 File Offset: 0x0010CC74
1892 public string GetObjName()
1893 {
1894 PlantData plantData = EClass._map.TryGetPlant(this);
1895 string text = this.sourceObj.GetName();
1896 if (this.sourceObj.tag.Contains("mat_name") && this.matObj.alias != "granite" && (this.sourceObj.id != 10 || !(this.matObj.alias == "crystal")))
1897 {
1898 text = "_of2".lang(this.matObj.GetName(), text, null, null, null);
1899 }
1900 if (plantData != null && plantData.size > 0)
1901 {
1902 text = Lang.GetList("plant_size")[plantData.size - 1] + text;
1903 }
1904 text = text.AddArticle();
1905 if (plantData != null)
1906 {
1907 if (plantData.seed != null)
1908 {
1909 if (!plantData.seed.c_refText.IsEmpty())
1910 {
1911 text = plantData.seed.c_refText;
1912 }
1913 if (plantData.seed.encLV > 0)
1914 {
1915 text = text + "+" + plantData.seed.encLV.ToString();
1916 }
1917 }
1918 if (plantData.fert != 0)
1919 {
1920 text += ((plantData.fert > 0) ? "fertilized" : "defertilized").lang();
1921 }
1922 }
1923 if (Cell.map.backerObjs.ContainsKey(this.index))
1924 {
1925 int key = Cell.map.backerObjs[this.index];
1926 SourceBacker.Row row = EClass.sources.backers.map.TryGetValue(key, null);
1927 if (row != null && EClass.core.config.backer.Show(row))
1928 {
1929 string name = row.Name;
1930 text = ((this.sourceObj.id == 82) ? "backerRemain".lang(text, name, null, null, null) : "backerTree".lang(text, name, null, null, null));
1931 }
1932 }
1933 return text;
1934 }
1935
1936 // Token: 0x06003039 RID: 12345 RVA: 0x0010EC53 File Offset: 0x0010CE53
1937 public string GetLiquidName()
1938 {
1939 return Lang.Parse("liquidName", this.sourceEffect.GetName(), null, null, null, null);
1940 }
1941
1942 // Token: 0x0600303A RID: 12346 RVA: 0x0010EC6E File Offset: 0x0010CE6E
1943 public bool CanGrow(SourceObj.Row obj, VirtualDate date)
1944 {
1945 GrowSystem.cell = this;
1946 GrowSystem growth = obj.growth;
1947 return growth != null && growth.CanGrow(date);
1948 }
1949
1950 // Token: 0x0600303B RID: 12347 RVA: 0x0010EC88 File Offset: 0x0010CE88
1951 public void TryGrow(VirtualDate date = null)
1952 {
1953 GrowSystem growth = this.growth;
1954 if (growth == null)
1955 {
1956 return;
1957 }
1958 growth.TryGrow(date);
1959 }
1960
1961 // Token: 0x0600303C RID: 12348 RVA: 0x0010EC9B File Offset: 0x0010CE9B
1962 public bool CanHarvest()
1963 {
1964 GrowSystem growth = this.growth;
1965 return growth != null && growth.CanHarvest();
1966 }
1967
1968 // Token: 0x0600303D RID: 12349 RVA: 0x0010ECAE File Offset: 0x0010CEAE
1969 public bool CanReapSeed()
1970 {
1971 GrowSystem growth = this.growth;
1972 return growth != null && growth.CanReapSeed();
1973 }
1974
1975 // Token: 0x0600303E RID: 12350 RVA: 0x0010ECC1 File Offset: 0x0010CEC1
1976 public bool CanMakeStraw()
1977 {
1978 return this.sourceObj.alias == "wheat" && this.growth.IsLastStage();
1979 }
1980
1981 // Token: 0x0600303F RID: 12351 RVA: 0x0010ECE7 File Offset: 0x0010CEE7
1982 public PlantData TryGetPlant()
1983 {
1984 return EClass._map.TryGetPlant(this);
1985 }
1986
1987 // Token: 0x06003040 RID: 12352 RVA: 0x0010ECF4 File Offset: 0x0010CEF4
1988 public float GetSurfaceHeight()
1989 {
1990 if (this.detail == null)
1991 {
1992 return 0f;
1993 }
1994 bool isTopWater = this.IsTopWater;
1995 for (int i = 0; i < this.detail.things.Count; i++)
1996 {
1997 Thing thing = this.detail.things[i];
1998 if (thing.IsInstalled)
1999 {
2000 if (isTopWater)
2001 {
2002 if (thing.isFloating)
2003 {
2004 return thing.Pref.height + 0.1f;
2005 }
2006 }
2007 else if (thing.Pref.Surface)
2008 {
2009 return 0.1f * (float)thing.altitude + thing.Pref.height;
2010 }
2011 }
2012 }
2013 return 0f;
2014 }
2015
2016 // Token: 0x06003041 RID: 12353 RVA: 0x0010ED94 File Offset: 0x0010CF94
2017 public bool HasZoneStairs(bool includeLocked = true)
2018 {
2019 if (this.detail == null)
2020 {
2021 return false;
2022 }
2023 foreach (Thing thing in this.detail.things)
2024 {
2025 if (thing.IsInstalled && (thing.trait is TraitStairs || (includeLocked && thing.trait is TraitStairsLocked)))
2026 {
2027 return true;
2028 }
2029 }
2030 return false;
2031 }
2032
2033 // Token: 0x06003042 RID: 12354 RVA: 0x0010EE1C File Offset: 0x0010D01C
2034 public override bool IsPathBlocked(PathManager.MoveType moveType)
2035 {
2036 if (moveType == PathManager.MoveType.Default)
2037 {
2038 return this.blocked;
2039 }
2040 return this.blocked || (this.detail != null && this.detail.charas.Count > 0);
2041 }
2042
2043 // Token: 0x06003045 RID: 12357 RVA: 0x0010EE64 File Offset: 0x0010D064
2044 [CompilerGenerated]
2045 private bool <Refresh>g__IsAutoTileEdge|311_0(Cell cell, ref Cell.<>c__DisplayClass311_0 A_2)
2046 {
2047 return (cell.sourceFloor.autotilePriority <= this.sourceFloor.autotilePriority && (!this.sourceFloor.isBeach || !cell.sourceFloor.isBeach) && (cell._floor != this._floor || cell._floorMat != this._floorMat)) || (!A_2.isFloorWater && this.height != cell.height);
2048 }
2049
2050 // Token: 0x06003046 RID: 12358 RVA: 0x0010EEDC File Offset: 0x0010D0DC
2051 [CompilerGenerated]
2052 private bool <Refresh>g__IsBridgeAutoTileEdge|311_1(Cell cell, ref Cell.<>c__DisplayClass311_0 A_2)
2053 {
2054 return (cell.sourceBridge.autotilePriority <= this.sourceBridge.autotilePriority && (cell._bridge != this._bridge || cell._bridgeMat != this._bridgeMat)) || this.bridgeHeight != cell.bridgeHeight;
2055 }
2056
2057 // Token: 0x06003047 RID: 12359 RVA: 0x0010EF30 File Offset: 0x0010D130
2058 [CompilerGenerated]
2059 private bool <Refresh>g__IsObjAutoTileEdge|311_2(Cell cell, ref Cell.<>c__DisplayClass311_0 A_2)
2060 {
2061 return (cell.obj != this.obj && (this.obj != 31 || (cell.obj != 97 && cell.obj != 98))) || this.topHeight != cell.topHeight;
2062 }
2063
2064 // Token: 0x04001AC7 RID: 6855
2065 public static Map map;
2066
2067 // Token: 0x04001AC8 RID: 6856
2068 public static Cell Void = new Cell();
2069
2070 // Token: 0x04001AC9 RID: 6857
2071 public static List<SourceMaterial.Row> matList;
2072
2073 // Token: 0x04001ACA RID: 6858
2074 public static List<SourceBlock.Row> blockList;
2075
2076 // Token: 0x04001ACB RID: 6859
2077 public static List<SourceFloor.Row> floorList;
2078
2079 // Token: 0x04001ACC RID: 6860
2080 public static List<SourceCellEffect.Row> effectList;
2081
2082 // Token: 0x04001ACD RID: 6861
2083 public static List<SourceObj.Row> objList;
2084
2085 // Token: 0x04001ACE RID: 6862
2086 public static int Size;
2087
2088 // Token: 0x04001ACF RID: 6863
2089 public static Cell[,] cells;
2090
2091 // Token: 0x04001AD0 RID: 6864
2092 public const int DivAutotile = 12;
2093
2094 // Token: 0x04001AD1 RID: 6865
2095 public byte _dirs;
2096
2097 // Token: 0x04001AD2 RID: 6866
2098 public byte _block;
2099
2100 // Token: 0x04001AD3 RID: 6867
2101 public byte _blockMat;
2102
2103 // Token: 0x04001AD4 RID: 6868
2104 public byte _floor;
2105
2106 // Token: 0x04001AD5 RID: 6869
2107 public byte _floorMat;
2108
2109 // Token: 0x04001AD6 RID: 6870
2110 public byte obj;
2111
2112 // Token: 0x04001AD7 RID: 6871
2113 public byte objVal;
2114
2115 // Token: 0x04001AD8 RID: 6872
2116 public byte objMat;
2117
2118 // Token: 0x04001AD9 RID: 6873
2119 public byte decal;
2120
2121 // Token: 0x04001ADA RID: 6874
2122 public byte _bridge;
2123
2124 // Token: 0x04001ADB RID: 6875
2125 public byte _bridgeMat;
2126
2127 // Token: 0x04001ADC RID: 6876
2128 public byte _roofBlock;
2129
2130 // Token: 0x04001ADD RID: 6877
2131 public byte _roofBlockMat;
2132
2133 // Token: 0x04001ADE RID: 6878
2134 public byte _roofBlockDir;
2135
2136 // Token: 0x04001ADF RID: 6879
2137 public byte x;
2138
2139 // Token: 0x04001AE0 RID: 6880
2140 public byte z;
2141
2142 // Token: 0x04001AE1 RID: 6881
2143 public byte light;
2144
2145 // Token: 0x04001AE2 RID: 6882
2146 public byte autotile;
2147
2148 // Token: 0x04001AE3 RID: 6883
2149 public byte autotileBridge;
2150
2151 // Token: 0x04001AE4 RID: 6884
2152 public byte autotileObj;
2153
2154 // Token: 0x04001AE5 RID: 6885
2155 public byte shore;
2156
2157 // Token: 0x04001AE6 RID: 6886
2158 public byte shadow;
2159
2160 // Token: 0x04001AE7 RID: 6887
2161 public byte height;
2162
2163 // Token: 0x04001AE8 RID: 6888
2164 public byte bridgeHeight;
2165
2166 // Token: 0x04001AE9 RID: 6889
2167 public byte shadowMod;
2168
2169 // Token: 0x04001AEA RID: 6890
2170 public byte topHeight;
2171
2172 // Token: 0x04001AEB RID: 6891
2173 public byte minHeight;
2174
2175 // Token: 0x04001AEC RID: 6892
2176 public byte bridgePillar;
2177
2178 // Token: 0x04001AED RID: 6893
2179 public byte highlight;
2180
2181 // Token: 0x04001AEE RID: 6894
2182 public ushort lightR;
2183
2184 // Token: 0x04001AEF RID: 6895
2185 public ushort lightG;
2186
2187 // Token: 0x04001AF0 RID: 6896
2188 public ushort lightB;
2189
2190 // Token: 0x04001AF1 RID: 6897
2191 public CellDetail detail;
2192
2193 // Token: 0x04001AF2 RID: 6898
2194 public CellEffect effect;
2195
2196 // Token: 0x04001AF3 RID: 6899
2197 public Critter critter;
2198
2199 // Token: 0x04001AF4 RID: 6900
2200 public BitArray32 bits;
2201
2202 // Token: 0x04001AF5 RID: 6901
2203 public BitArray32 bits2;
2204
2205 // Token: 0x04001AF6 RID: 6902
2206 public Room room;
2207
2208 // Token: 0x04001AF7 RID: 6903
2209 public bool pcSync;
2210
2211 // Token: 0x04001AF8 RID: 6904
2212 public const int DIV_LIQUID = 10;
2213
2214 // Token: 0x04001AF9 RID: 6905
2215 private static bool openSight;
2216
2217 // Token: 0x04001AFA RID: 6906
2218 private static bool openPath;
2219
2220 // Token: 0x04001AFB RID: 6907
2221 public const int DivStage = 30;
2222}
Definition Card.cs:13
Definition Cell.cs:10
Definition Map.cs:15
Definition Point.cs:11
Definition Room.cs:6
Definition Thing.cs:10
Definition Trait.cs:9