Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TileObjectData.cs
Go to the documentation of this file.
1using System;
6using Terraria.ID;
8
10
11public class TileObjectData
12{
14
15 private bool _linkedAlternates;
16
17 private bool _usesCustomCanPlace;
18
20
22
24
26
28
30
32
34
36
38
40
41 private bool _hasOwnAlternates;
42
43 private bool _hasOwnAnchor;
44
45 private bool _hasOwnAnchorTiles;
46
47 private bool _hasOwnLiquidDeath;
48
50
52
53 private bool _hasOwnSubTiles;
54
56
58
60
62
64
66
67 private static bool readOnlyData;
68
69 private static TileObjectData newTile;
70
71 private static TileObjectData newSubTile;
72
74
76
77 private static TileObjectData StyleTorch;
78
79 private static TileObjectData Style4x2;
80
81 private static TileObjectData Style2x2;
82
83 private static TileObjectData Style1x2;
84
85 private static TileObjectData Style1x1;
86
87 private static TileObjectData StyleAlch;
88
89 private static TileObjectData StyleDye;
90
91 private static TileObjectData Style2x1;
92
93 private static TileObjectData Style6x3;
94
96
98
100
101 private static TileObjectData Style1xX;
102
103 private static TileObjectData Style2xX;
104
105 private static TileObjectData Style3x2;
106
107 private static TileObjectData Style3x3;
108
109 private static TileObjectData Style3x4;
110
111 private static TileObjectData Style5x4;
112
114
115 private bool LinkedAlternates
116 {
117 get
118 {
119 return _linkedAlternates;
120 }
121 set
122 {
123 WriteCheck();
124 if (value && !_hasOwnAlternates)
125 {
126 _hasOwnAlternates = true;
128 }
130 }
131 }
132
134 {
135 get
136 {
137 return _usesCustomCanPlace;
138 }
139 set
140 {
141 WriteCheck();
143 }
144 }
145
147 {
148 get
149 {
150 if (_alternates == null)
151 {
152 return _baseObject.Alternates;
153 }
154 return _alternates.data;
155 }
156 set
157 {
159 {
160 _hasOwnAlternates = true;
162 }
163 _alternates.data = value;
164 }
165 }
166
168 {
169 get
170 {
171 if (_anchor == null)
172 {
173 return _baseObject.AnchorTop;
174 }
175 return _anchor.top;
176 }
177 set
178 {
179 WriteCheck();
180 if (!_hasOwnAnchor)
181 {
182 if (_anchor.top == value)
183 {
184 return;
185 }
186 _hasOwnAnchor = true;
188 }
189 _anchor.top = value;
191 {
192 for (int i = 0; i < _alternates.data.Count; i++)
193 {
194 _alternates.data[i].AnchorTop = value;
195 }
196 }
197 }
198 }
199
201 {
202 get
203 {
204 if (_anchor == null)
205 {
206 return _baseObject.AnchorBottom;
207 }
208 return _anchor.bottom;
209 }
210 set
211 {
212 WriteCheck();
213 if (!_hasOwnAnchor)
214 {
215 if (_anchor.bottom == value)
216 {
217 return;
218 }
219 _hasOwnAnchor = true;
221 }
222 _anchor.bottom = value;
224 {
225 for (int i = 0; i < _alternates.data.Count; i++)
226 {
227 _alternates.data[i].AnchorBottom = value;
228 }
229 }
230 }
231 }
232
234 {
235 get
236 {
237 if (_anchor == null)
238 {
239 return _baseObject.AnchorLeft;
240 }
241 return _anchor.left;
242 }
243 set
244 {
245 WriteCheck();
246 if (!_hasOwnAnchor)
247 {
248 if (_anchor.left == value)
249 {
250 return;
251 }
252 _hasOwnAnchor = true;
254 }
255 _anchor.left = value;
257 {
258 for (int i = 0; i < _alternates.data.Count; i++)
259 {
260 _alternates.data[i].AnchorLeft = value;
261 }
262 }
263 }
264 }
265
267 {
268 get
269 {
270 if (_anchor == null)
271 {
272 return _baseObject.AnchorRight;
273 }
274 return _anchor.right;
275 }
276 set
277 {
278 WriteCheck();
279 if (!_hasOwnAnchor)
280 {
281 if (_anchor.right == value)
282 {
283 return;
284 }
285 _hasOwnAnchor = true;
287 }
288 _anchor.right = value;
290 {
291 for (int i = 0; i < _alternates.data.Count; i++)
292 {
293 _alternates.data[i].AnchorRight = value;
294 }
295 }
296 }
297 }
298
299 public bool AnchorWall
300 {
301 get
302 {
303 if (_anchor == null)
304 {
305 return _baseObject.AnchorWall;
306 }
307 return _anchor.wall;
308 }
309 set
310 {
311 WriteCheck();
312 if (!_hasOwnAnchor)
313 {
314 if (_anchor.wall == value)
315 {
316 return;
317 }
318 _hasOwnAnchor = true;
320 }
321 _anchor.wall = value;
323 {
324 for (int i = 0; i < _alternates.data.Count; i++)
325 {
326 _alternates.data[i].AnchorWall = value;
327 }
328 }
329 }
330 }
331
332 public int[] AnchorValidTiles
333 {
334 get
335 {
336 if (_anchorTiles == null)
337 {
338 return _baseObject.AnchorValidTiles;
339 }
340 return _anchorTiles.tileValid;
341 }
342 set
343 {
344 WriteCheck();
346 {
347 if (value.deepCompare(_anchorTiles.tileValid))
348 {
349 return;
350 }
351 _hasOwnAnchorTiles = true;
353 }
354 _anchorTiles.tileValid = value;
356 {
357 return;
358 }
359 for (int i = 0; i < _alternates.data.Count; i++)
360 {
361 int[] anchorValidTiles = value;
362 if (value != null)
363 {
364 anchorValidTiles = (int[])value.Clone();
365 }
366 _alternates.data[i].AnchorValidTiles = anchorValidTiles;
367 }
368 }
369 }
370
372 {
373 get
374 {
375 if (_anchorTiles == null)
376 {
377 return _baseObject.AnchorInvalidTiles;
378 }
380 }
381 set
382 {
383 WriteCheck();
385 {
386 if (value.deepCompare(_anchorTiles.tileInvalid))
387 {
388 return;
389 }
390 _hasOwnAnchorTiles = true;
392 }
393 _anchorTiles.tileInvalid = value;
395 {
396 return;
397 }
398 for (int i = 0; i < _alternates.data.Count; i++)
399 {
401 if (value != null)
402 {
403 anchorInvalidTiles = (int[])value.Clone();
404 }
405 _alternates.data[i].AnchorInvalidTiles = anchorInvalidTiles;
406 }
407 }
408 }
409
411 {
412 get
413 {
414 if (_anchorTiles == null)
415 {
416 return _baseObject.AnchorAlternateTiles;
417 }
419 }
420 set
421 {
422 WriteCheck();
424 {
425 if (value.deepCompare(_anchorTiles.tileInvalid))
426 {
427 return;
428 }
429 _hasOwnAnchorTiles = true;
431 }
432 _anchorTiles.tileAlternates = value;
434 {
435 return;
436 }
437 for (int i = 0; i < _alternates.data.Count; i++)
438 {
440 if (value != null)
441 {
442 anchorAlternateTiles = (int[])value.Clone();
443 }
444 _alternates.data[i].AnchorAlternateTiles = anchorAlternateTiles;
445 }
446 }
447 }
448
449 public int[] AnchorValidWalls
450 {
451 get
452 {
453 if (_anchorTiles == null)
454 {
455 return _baseObject.AnchorValidWalls;
456 }
457 return _anchorTiles.wallValid;
458 }
459 set
460 {
461 WriteCheck();
463 {
464 _hasOwnAnchorTiles = true;
466 }
467 _anchorTiles.wallValid = value;
469 {
470 return;
471 }
472 for (int i = 0; i < _alternates.data.Count; i++)
473 {
474 int[] anchorValidWalls = value;
475 if (value != null)
476 {
477 anchorValidWalls = (int[])value.Clone();
478 }
479 _alternates.data[i].AnchorValidWalls = anchorValidWalls;
480 }
481 }
482 }
483
484 public bool WaterDeath
485 {
486 get
487 {
488 if (_liquidDeath == null)
489 {
490 return _baseObject.WaterDeath;
491 }
492 return _liquidDeath.water;
493 }
494 set
495 {
496 WriteCheck();
498 {
499 if (_liquidDeath.water == value)
500 {
501 return;
502 }
503 _hasOwnLiquidDeath = true;
505 }
506 _liquidDeath.water = value;
508 {
509 for (int i = 0; i < _alternates.data.Count; i++)
510 {
511 _alternates.data[i].WaterDeath = value;
512 }
513 }
514 }
515 }
516
517 public bool LavaDeath
518 {
519 get
520 {
521 if (_liquidDeath == null)
522 {
523 return _baseObject.LavaDeath;
524 }
525 return _liquidDeath.lava;
526 }
527 set
528 {
529 WriteCheck();
531 {
532 if (_liquidDeath.lava == value)
533 {
534 return;
535 }
536 _hasOwnLiquidDeath = true;
538 }
539 _liquidDeath.lava = value;
541 {
542 for (int i = 0; i < _alternates.data.Count; i++)
543 {
544 _alternates.data[i].LavaDeath = value;
545 }
546 }
547 }
548 }
549
551 {
552 get
553 {
554 if (_liquidPlacement == null)
555 {
556 return _baseObject.WaterPlacement;
557 }
558 return _liquidPlacement.water;
559 }
560 set
561 {
562 WriteCheck();
564 {
566 {
567 return;
568 }
571 }
572 _liquidPlacement.water = value;
574 {
575 for (int i = 0; i < _alternates.data.Count; i++)
576 {
577 _alternates.data[i].WaterPlacement = value;
578 }
579 }
580 }
581 }
582
584 {
585 get
586 {
587 if (_liquidPlacement == null)
588 {
589 return _baseObject.LavaPlacement;
590 }
591 return _liquidPlacement.lava;
592 }
593 set
594 {
595 WriteCheck();
597 {
599 {
600 return;
601 }
604 }
605 _liquidPlacement.lava = value;
607 {
608 for (int i = 0; i < _alternates.data.Count; i++)
609 {
610 _alternates.data[i].LavaPlacement = value;
611 }
612 }
613 }
614 }
615
617 {
618 get
619 {
620 if (_placementHooks == null)
621 {
622 return _baseObject.HookCheckIfCanPlace;
623 }
624 return _placementHooks.check;
625 }
626 set
627 {
628 WriteCheck();
630 {
633 }
634 _placementHooks.check = value;
635 }
636 }
637
639 {
640 get
641 {
642 if (_placementHooks == null)
643 {
644 return _baseObject.HookPostPlaceEveryone;
645 }
647 }
648 set
649 {
650 WriteCheck();
652 {
655 }
656 _placementHooks.postPlaceEveryone = value;
657 }
658 }
659
661 {
662 get
663 {
664 if (_placementHooks == null)
665 {
666 return _baseObject.HookPostPlaceMyPlayer;
667 }
669 }
670 set
671 {
672 WriteCheck();
674 {
677 }
678 _placementHooks.postPlaceMyPlayer = value;
679 }
680 }
681
683 {
684 get
685 {
686 if (_placementHooks == null)
687 {
688 return _baseObject.HookPlaceOverride;
689 }
691 }
692 set
693 {
694 WriteCheck();
696 {
699 }
700 _placementHooks.placeOverride = value;
701 }
702 }
703
705 {
706 get
707 {
708 if (_subTiles == null)
709 {
710 return _baseObject.SubTiles;
711 }
712 return _subTiles.data;
713 }
714 set
715 {
716 if (!_hasOwnSubTiles)
717 {
718 _hasOwnSubTiles = true;
720 }
721 if (value == null)
722 {
723 _subTiles.data = null;
724 }
725 else
726 {
727 _subTiles.data = value;
728 }
729 }
730 }
731
732 public int DrawYOffset
733 {
734 get
735 {
736 if (_tileObjectDraw == null)
737 {
738 return DrawYOffset;
739 }
741 }
742 set
743 {
744 WriteCheck();
746 {
748 {
749 return;
750 }
753 }
754 _tileObjectDraw.yOffset = value;
756 {
757 for (int i = 0; i < _alternates.data.Count; i++)
758 {
759 _alternates.data[i].DrawYOffset = value;
760 }
761 }
762 }
763 }
764
765 public int DrawXOffset
766 {
767 get
768 {
769 if (_tileObjectDraw == null)
770 {
771 return DrawXOffset;
772 }
774 }
775 set
776 {
777 WriteCheck();
779 {
781 {
782 return;
783 }
786 }
787 _tileObjectDraw.xOffset = value;
789 {
790 for (int i = 0; i < _alternates.data.Count; i++)
791 {
792 _alternates.data[i].DrawXOffset = value;
793 }
794 }
795 }
796 }
797
799 {
800 get
801 {
802 if (_tileObjectDraw == null)
803 {
804 return DrawFlipHorizontal;
805 }
807 }
808 set
809 {
810 WriteCheck();
812 {
814 {
815 return;
816 }
819 }
820 _tileObjectDraw.flipHorizontal = value;
822 {
823 for (int i = 0; i < _alternates.data.Count; i++)
824 {
825 _alternates.data[i].DrawFlipHorizontal = value;
826 }
827 }
828 }
829 }
830
832 {
833 get
834 {
835 if (_tileObjectDraw == null)
836 {
837 return DrawFlipVertical;
838 }
840 }
841 set
842 {
843 WriteCheck();
845 {
847 {
848 return;
849 }
852 }
853 _tileObjectDraw.flipVertical = value;
855 {
856 for (int i = 0; i < _alternates.data.Count; i++)
857 {
858 _alternates.data[i].DrawFlipVertical = value;
859 }
860 }
861 }
862 }
863
864 public int DrawStepDown
865 {
866 get
867 {
868 if (_tileObjectDraw == null)
869 {
870 return DrawStepDown;
871 }
873 }
874 set
875 {
876 WriteCheck();
878 {
880 {
881 return;
882 }
885 }
886 _tileObjectDraw.stepDown = value;
888 {
889 for (int i = 0; i < _alternates.data.Count; i++)
890 {
891 _alternates.data[i].DrawStepDown = value;
892 }
893 }
894 }
895 }
896
897 public bool StyleHorizontal
898 {
899 get
900 {
901 if (_tileObjectStyle == null)
902 {
903 return StyleHorizontal;
904 }
906 }
907 set
908 {
909 WriteCheck();
911 {
913 {
914 return;
915 }
918 }
919 _tileObjectStyle.horizontal = value;
921 {
922 for (int i = 0; i < _alternates.data.Count; i++)
923 {
924 _alternates.data[i].StyleHorizontal = value;
925 }
926 }
927 }
928 }
929
930 public int Style
931 {
932 get
933 {
934 if (_tileObjectStyle == null)
935 {
936 return _baseObject.Style;
937 }
938 return _tileObjectStyle.style;
939 }
940 set
941 {
942 WriteCheck();
944 {
946 {
947 return;
948 }
951 }
952 _tileObjectStyle.style = value;
954 {
955 for (int i = 0; i < _alternates.data.Count; i++)
956 {
957 _alternates.data[i].Style = value;
958 }
959 }
960 }
961 }
962
963 public int StyleWrapLimit
964 {
965 get
966 {
967 if (_tileObjectStyle == null)
968 {
969 return _baseObject.StyleWrapLimit;
970 }
972 }
973 set
974 {
975 WriteCheck();
977 {
979 {
980 return;
981 }
984 }
985 _tileObjectStyle.styleWrapLimit = value;
987 {
988 for (int i = 0; i < _alternates.data.Count; i++)
989 {
990 _alternates.data[i].StyleWrapLimit = value;
991 }
992 }
993 }
994 }
995
997 {
998 get
999 {
1000 if (_tileObjectStyle == null)
1001 {
1002 return _baseObject.StyleWrapLimitVisualOverride;
1003 }
1005 }
1006 set
1007 {
1008 WriteCheck();
1010 {
1012 {
1013 return;
1014 }
1017 }
1018 _tileObjectStyle.styleWrapLimitVisualOverride = value;
1020 {
1021 for (int i = 0; i < _alternates.data.Count; i++)
1022 {
1023 _alternates.data[i].StyleWrapLimitVisualOverride = value;
1024 }
1025 }
1026 }
1027 }
1028
1030 {
1031 get
1032 {
1033 if (_tileObjectStyle == null)
1034 {
1035 return _baseObject.styleLineSkipVisualOverride;
1036 }
1038 }
1039 set
1040 {
1041 WriteCheck();
1043 {
1045 {
1046 return;
1047 }
1050 }
1051 _tileObjectStyle.styleLineSkipVisualoverride = value;
1053 {
1054 for (int i = 0; i < _alternates.data.Count; i++)
1055 {
1056 _alternates.data[i].styleLineSkipVisualOverride = value;
1057 }
1058 }
1059 }
1060 }
1061
1062 public int StyleLineSkip
1063 {
1064 get
1065 {
1066 if (_tileObjectStyle == null)
1067 {
1068 return _baseObject.StyleLineSkip;
1069 }
1071 }
1072 set
1073 {
1074 WriteCheck();
1076 {
1078 {
1079 return;
1080 }
1083 }
1084 _tileObjectStyle.styleLineSkip = value;
1086 {
1087 for (int i = 0; i < _alternates.data.Count; i++)
1088 {
1089 _alternates.data[i].StyleLineSkip = value;
1090 }
1091 }
1092 }
1093 }
1094
1096 {
1097 get
1098 {
1099 if (_tileObjectStyle == null)
1100 {
1101 return _baseObject.StyleMultiplier;
1102 }
1104 }
1105 set
1106 {
1107 WriteCheck();
1109 {
1111 {
1112 return;
1113 }
1116 }
1117 _tileObjectStyle.styleMultiplier = value;
1119 {
1120 for (int i = 0; i < _alternates.data.Count; i++)
1121 {
1122 _alternates.data[i].StyleMultiplier = value;
1123 }
1124 }
1125 }
1126 }
1127
1128 public int Width
1129 {
1130 get
1131 {
1132 if (_tileObjectBase == null)
1133 {
1134 return _baseObject.Width;
1135 }
1136 return _tileObjectBase.width;
1137 }
1138 set
1139 {
1140 WriteCheck();
1142 {
1144 {
1145 return;
1146 }
1147 _hasOwnTileObjectBase = true;
1150 {
1153 _tileObjectCoords.calculated = false;
1154 }
1155 }
1156 _tileObjectBase.width = value;
1158 {
1159 for (int i = 0; i < _alternates.data.Count; i++)
1160 {
1161 _alternates.data[i].Width = value;
1162 }
1163 }
1164 }
1165 }
1166
1167 public int Height
1168 {
1169 get
1170 {
1171 if (_tileObjectBase == null)
1172 {
1173 return _baseObject.Height;
1174 }
1175 return _tileObjectBase.height;
1176 }
1177 set
1178 {
1179 WriteCheck();
1181 {
1183 {
1184 return;
1185 }
1186 _hasOwnTileObjectBase = true;
1189 {
1192 _tileObjectCoords.calculated = false;
1193 }
1194 }
1195 _tileObjectBase.height = value;
1197 {
1198 for (int i = 0; i < _alternates.data.Count; i++)
1199 {
1200 _alternates.data[i].Height = value;
1201 }
1202 }
1203 }
1204 }
1205
1207 {
1208 get
1209 {
1210 if (_tileObjectBase == null)
1211 {
1212 return _baseObject.Origin;
1213 }
1214 return _tileObjectBase.origin;
1215 }
1216 set
1217 {
1218 WriteCheck();
1220 {
1222 {
1223 return;
1224 }
1225 _hasOwnTileObjectBase = true;
1227 }
1228 _tileObjectBase.origin = value;
1230 {
1231 for (int i = 0; i < _alternates.data.Count; i++)
1232 {
1233 _alternates.data[i].Origin = value;
1234 }
1235 }
1236 }
1237 }
1238
1240 {
1241 get
1242 {
1243 if (_tileObjectBase == null)
1244 {
1245 return _baseObject.Direction;
1246 }
1248 }
1249 set
1250 {
1251 WriteCheck();
1253 {
1255 {
1256 return;
1257 }
1258 _hasOwnTileObjectBase = true;
1260 }
1261 _tileObjectBase.direction = value;
1263 {
1264 for (int i = 0; i < _alternates.data.Count; i++)
1265 {
1266 _alternates.data[i].Direction = value;
1267 }
1268 }
1269 }
1270 }
1271
1273 {
1274 get
1275 {
1276 if (_tileObjectBase == null)
1277 {
1278 return _baseObject.RandomStyleRange;
1279 }
1281 }
1282 set
1283 {
1284 WriteCheck();
1286 {
1288 {
1289 return;
1290 }
1291 _hasOwnTileObjectBase = true;
1293 }
1294 _tileObjectBase.randomRange = value;
1296 {
1297 for (int i = 0; i < _alternates.data.Count; i++)
1298 {
1299 _alternates.data[i].RandomStyleRange = value;
1300 }
1301 }
1302 }
1303 }
1304
1306 {
1307 get
1308 {
1309 if (_tileObjectBase == null)
1310 {
1311 return _baseObject.SpecificRandomStyles;
1312 }
1314 }
1315 set
1316 {
1317 WriteCheck();
1319 {
1321 {
1322 return;
1323 }
1324 _hasOwnTileObjectBase = true;
1326 }
1327 _tileObjectBase.specificRandomStyles = value;
1329 {
1330 for (int i = 0; i < _alternates.data.Count; i++)
1331 {
1332 _alternates.data[i].SpecificRandomStyles = value;
1333 }
1334 }
1335 }
1336 }
1337
1338 public bool FlattenAnchors
1339 {
1340 get
1341 {
1342 if (_tileObjectBase == null)
1343 {
1344 return _baseObject.FlattenAnchors;
1345 }
1347 }
1348 set
1349 {
1350 WriteCheck();
1352 {
1354 {
1355 return;
1356 }
1357 _hasOwnTileObjectBase = true;
1359 }
1360 _tileObjectBase.flattenAnchors = value;
1362 {
1363 for (int i = 0; i < _alternates.data.Count; i++)
1364 {
1365 _alternates.data[i].FlattenAnchors = value;
1366 }
1367 }
1368 }
1369 }
1370
1372 {
1373 get
1374 {
1375 if (_tileObjectCoords == null)
1376 {
1377 return _baseObject.CoordinateHeights;
1378 }
1380 }
1381 set
1382 {
1383 WriteCheck();
1385 {
1386 if (value.deepCompare(_tileObjectCoords.heights))
1387 {
1388 return;
1389 }
1392 }
1393 else
1394 {
1395 _tileObjectCoords.heights = value;
1396 }
1397 _tileObjectCoords.calculated = false;
1398 if (!_linkedAlternates)
1399 {
1400 return;
1401 }
1402 for (int i = 0; i < _alternates.data.Count; i++)
1403 {
1404 int[] coordinateHeights = value;
1405 if (value != null)
1406 {
1407 coordinateHeights = (int[])value.Clone();
1408 }
1409 _alternates.data[i].CoordinateHeights = coordinateHeights;
1410 }
1411 }
1412 }
1413
1415 {
1416 get
1417 {
1418 if (_tileObjectCoords == null)
1419 {
1420 return _baseObject.CoordinateWidth;
1421 }
1422 return _tileObjectCoords.width;
1423 }
1424 set
1425 {
1426 WriteCheck();
1428 {
1430 {
1431 return;
1432 }
1435 }
1436 _tileObjectCoords.width = value;
1437 _tileObjectCoords.calculated = false;
1439 {
1440 for (int i = 0; i < _alternates.data.Count; i++)
1441 {
1442 _alternates.data[i].CoordinateWidth = value;
1443 }
1444 }
1445 }
1446 }
1447
1449 {
1450 get
1451 {
1452 if (_tileObjectCoords == null)
1453 {
1454 return _baseObject.CoordinatePadding;
1455 }
1457 }
1458 set
1459 {
1460 WriteCheck();
1462 {
1464 {
1465 return;
1466 }
1469 }
1470 _tileObjectCoords.padding = value;
1471 _tileObjectCoords.calculated = false;
1473 {
1474 for (int i = 0; i < _alternates.data.Count; i++)
1475 {
1476 _alternates.data[i].CoordinatePadding = value;
1477 }
1478 }
1479 }
1480 }
1481
1483 {
1484 get
1485 {
1486 if (_tileObjectCoords == null)
1487 {
1488 return _baseObject.CoordinatePaddingFix;
1489 }
1491 }
1492 set
1493 {
1494 WriteCheck();
1496 {
1498 {
1499 return;
1500 }
1503 }
1504 _tileObjectCoords.paddingFix = value;
1505 _tileObjectCoords.calculated = false;
1507 {
1508 for (int i = 0; i < _alternates.data.Count; i++)
1509 {
1510 _alternates.data[i].CoordinatePaddingFix = value;
1511 }
1512 }
1513 }
1514 }
1515
1517 {
1518 get
1519 {
1520 if (_tileObjectCoords == null)
1521 {
1522 return _baseObject.CoordinateFullWidth;
1523 }
1525 {
1526 Calculate();
1527 }
1529 }
1530 }
1531
1533 {
1534 get
1535 {
1536 if (_tileObjectCoords == null)
1537 {
1538 return _baseObject.CoordinateFullHeight;
1539 }
1541 {
1542 Calculate();
1543 }
1545 }
1546 }
1547
1549 {
1550 get
1551 {
1552 if (_tileObjectCoords == null)
1553 {
1554 return _baseObject.DrawStyleOffset;
1555 }
1557 }
1558 set
1559 {
1560 WriteCheck();
1562 {
1564 {
1565 return;
1566 }
1569 }
1570 _tileObjectCoords.drawStyleOffset = value;
1571 _tileObjectCoords.calculated = false;
1573 {
1574 for (int i = 0; i < _alternates.data.Count; i++)
1575 {
1576 _alternates.data[i].DrawStyleOffset = value;
1577 }
1578 }
1579 }
1580 }
1581
1583
1585 {
1586 _parent = null;
1587 _linkedAlternates = false;
1588 if (copyFrom == null)
1589 {
1590 _usesCustomCanPlace = false;
1591 _alternates = null;
1592 _anchor = null;
1593 _anchorTiles = null;
1594 _tileObjectBase = null;
1595 _liquidDeath = null;
1596 _liquidPlacement = null;
1597 _placementHooks = null;
1598 _tileObjectDraw = null;
1599 _tileObjectStyle = null;
1600 _tileObjectCoords = null;
1601 }
1602 else
1603 {
1605 }
1606 }
1607
1609 {
1610 if (copy != null)
1611 {
1612 _usesCustomCanPlace = copy._usesCustomCanPlace;
1613 _alternates = copy._alternates;
1614 _anchor = copy._anchor;
1615 _anchorTiles = copy._anchorTiles;
1616 _tileObjectBase = copy._tileObjectBase;
1617 _liquidDeath = copy._liquidDeath;
1618 _liquidPlacement = copy._liquidPlacement;
1619 _placementHooks = copy._placementHooks;
1620 _tileObjectDraw = copy._tileObjectDraw;
1621 _tileObjectStyle = copy._tileObjectStyle;
1622 _tileObjectCoords = copy._tileObjectCoords;
1623 }
1624 }
1625
1626 public void FullCopyFrom(ushort tileType)
1627 {
1628 FullCopyFrom(GetTileData(tileType, 0));
1629 }
1630
1632 {
1633 if (copy != null)
1634 {
1635 _usesCustomCanPlace = copy._usesCustomCanPlace;
1636 _alternates = copy._alternates;
1637 _anchor = copy._anchor;
1638 _anchorTiles = copy._anchorTiles;
1639 _tileObjectBase = copy._tileObjectBase;
1640 _liquidDeath = copy._liquidDeath;
1641 _liquidPlacement = copy._liquidPlacement;
1642 _placementHooks = copy._placementHooks;
1643 _tileObjectDraw = copy._tileObjectDraw;
1644 _tileObjectStyle = copy._tileObjectStyle;
1645 _tileObjectCoords = copy._tileObjectCoords;
1646 _subTiles = new TileObjectSubTilesModule(copy._subTiles);
1647 _hasOwnSubTiles = true;
1648 }
1649 }
1650
1651 private void SetupBaseObject()
1652 {
1654 _hasOwnAlternates = true;
1656 _anchor = new AnchorDataModule();
1657 _hasOwnAnchor = true;
1658 AnchorTop = default(AnchorData);
1659 AnchorBottom = default(AnchorData);
1660 AnchorLeft = default(AnchorData);
1661 AnchorRight = default(AnchorData);
1662 AnchorWall = false;
1664 _hasOwnAnchorTiles = true;
1665 AnchorValidTiles = null;
1666 AnchorInvalidTiles = null;
1667 AnchorAlternateTiles = null;
1668 AnchorValidWalls = null;
1670 _hasOwnLiquidDeath = true;
1671 WaterDeath = false;
1672 LavaDeath = false;
1676 LavaPlacement = LiquidPlacement.NotAllowed;
1678 _hasOwnPlacementHooks = true;
1685 _hasOwnTileObjectBase = true;
1686 Width = 1;
1687 Height = 1;
1690 RandomStyleRange = 0;
1691 FlattenAnchors = false;
1694 CoordinateHeights = new int[1] { 16 };
1695 CoordinateWidth = 0;
1699 _hasOwnTileObjectDraw = true;
1700 DrawYOffset = 0;
1701 DrawFlipHorizontal = false;
1702 DrawFlipVertical = false;
1703 DrawStepDown = 0;
1706 Style = 0;
1707 StyleHorizontal = false;
1708 StyleWrapLimit = 0;
1709 StyleMultiplier = 1;
1710 }
1711
1712 private void Calculate()
1713 {
1715 {
1716 return;
1717 }
1718 _tileObjectCoords.calculated = true;
1719 _tileObjectCoords.styleWidth = (_tileObjectCoords.width + _tileObjectCoords.padding) * Width + _tileObjectCoords.paddingFix.X;
1720 int num = 0;
1721 _tileObjectCoords.styleHeight = 0;
1722 for (int i = 0; i < _tileObjectCoords.heights.Length; i++)
1723 {
1725 }
1727 _tileObjectCoords.styleHeight = num;
1729 {
1730 if (_liquidDeath.lava)
1731 {
1732 LavaPlacement = LiquidPlacement.NotAllowed;
1733 }
1734 if (_liquidDeath.water)
1735 {
1736 WaterPlacement = LiquidPlacement.NotAllowed;
1737 }
1738 }
1739 }
1740
1741 private void WriteCheck()
1742 {
1743 if (readOnlyData)
1744 {
1745 throw new FieldAccessException("Tile data is locked and only accessible during startup.");
1746 }
1747 }
1748
1749 private void LockWrites()
1750 {
1751 readOnlyData = true;
1752 }
1753
1755 {
1756 if (checkTile == null)
1757 {
1758 return false;
1759 }
1760 if (checkTile.liquid > 0)
1761 {
1762 switch (checkTile.liquidType())
1763 {
1764 case 1:
1765 if (LavaPlacement == LiquidPlacement.NotAllowed)
1766 {
1767 return false;
1768 }
1769 if (LavaPlacement == LiquidPlacement.OnlyInFullLiquid && checkTile.liquid != byte.MaxValue)
1770 {
1771 return false;
1772 }
1773 break;
1774 case 0:
1775 case 2:
1776 case 3:
1777 if (WaterPlacement == LiquidPlacement.NotAllowed)
1778 {
1779 return false;
1780 }
1781 if (WaterPlacement == LiquidPlacement.OnlyInFullLiquid && checkTile.liquid != byte.MaxValue)
1782 {
1783 return false;
1784 }
1785 break;
1786 }
1787 }
1788 else
1789 {
1790 switch (checkTile.liquidType())
1791 {
1792 case 1:
1793 if (LavaPlacement == LiquidPlacement.OnlyInFullLiquid || LavaPlacement == LiquidPlacement.OnlyInLiquid)
1794 {
1795 return false;
1796 }
1797 break;
1798 case 0:
1799 case 2:
1800 case 3:
1801 if (WaterPlacement == LiquidPlacement.OnlyInFullLiquid || WaterPlacement == LiquidPlacement.OnlyInLiquid)
1802 {
1803 return false;
1804 }
1805 break;
1806 }
1807 }
1808 return true;
1809 }
1810
1811 public bool isValidTileAnchor(int type)
1812 {
1813 int[] array;
1814 int[] array2;
1815 if (_anchorTiles == null)
1816 {
1817 array = null;
1818 array2 = null;
1819 }
1820 else
1821 {
1824 }
1825 if (array2 != null)
1826 {
1827 for (int i = 0; i < array2.Length; i++)
1828 {
1829 if (type == array2[i])
1830 {
1831 return false;
1832 }
1833 }
1834 }
1835 if (array == null)
1836 {
1837 return true;
1838 }
1839 for (int j = 0; j < array.Length; j++)
1840 {
1841 if (type == array[j])
1842 {
1843 return true;
1844 }
1845 }
1846 return false;
1847 }
1848
1849 public bool isValidWallAnchor(int type)
1850 {
1851 int[] array = ((_anchorTiles != null) ? _anchorTiles.wallValid : null);
1852 if (array == null)
1853 {
1854 if (type == 0)
1855 {
1856 return false;
1857 }
1858 return true;
1859 }
1860 for (int i = 0; i < array.Length; i++)
1861 {
1862 if (type == array[i])
1863 {
1864 return true;
1865 }
1866 }
1867 return false;
1868 }
1869
1871 {
1872 if (_anchorTiles == null)
1873 {
1874 return false;
1875 }
1876 int[] tileAlternates = _anchorTiles.tileAlternates;
1877 if (tileAlternates == null)
1878 {
1879 return false;
1880 }
1881 for (int i = 0; i < tileAlternates.Length; i++)
1882 {
1883 if (type == tileAlternates[i])
1884 {
1885 return true;
1886 }
1887 }
1888 return false;
1889 }
1890
1891 public int CalculatePlacementStyle(int style, int alternate, int random)
1892 {
1893 int num = style * StyleMultiplier;
1894 num += Style;
1895 if (random >= 0)
1896 {
1897 num += random;
1898 }
1899 return num;
1900 }
1901
1903 {
1904 newTile.Calculate();
1905 baseTile = newTile;
1906 baseTile._parent = _baseObject;
1908 }
1909
1910 private static void addTile(int tileType)
1911 {
1912 newTile.Calculate();
1913 _data[tileType] = newTile;
1915 }
1916
1917 private static void addSubTile(params int[] styles)
1918 {
1919 newSubTile.Calculate();
1920 foreach (int num in styles)
1921 {
1923 if (!newTile._hasOwnSubTiles)
1924 {
1925 list = new List<TileObjectData>(num + 1);
1926 newTile.SubTiles = list;
1927 }
1928 else
1929 {
1930 list = newTile.SubTiles;
1931 }
1932 if (list.Count <= num)
1933 {
1934 for (int j = list.Count; j <= num; j++)
1935 {
1936 list.Add(null);
1937 }
1938 }
1939 newSubTile._parent = newTile;
1940 list[num] = newSubTile;
1941 }
1943 }
1944
1945 private static void addSubTile(int style)
1946 {
1947 newSubTile.Calculate();
1949 if (!newTile._hasOwnSubTiles)
1950 {
1951 list = new List<TileObjectData>(style + 1);
1952 newTile.SubTiles = list;
1953 }
1954 else
1955 {
1956 list = newTile.SubTiles;
1957 }
1958 if (list.Count <= style)
1959 {
1960 for (int i = list.Count; i <= style; i++)
1961 {
1962 list.Add(null);
1963 }
1964 }
1965 newSubTile._parent = newTile;
1966 list[style] = newSubTile;
1968 }
1969
1970 private static void addAlternate(int baseStyle)
1971 {
1972 newAlternate.Calculate();
1973 if (!newTile._hasOwnAlternates)
1974 {
1975 newTile.Alternates = new List<TileObjectData>();
1976 }
1977 newAlternate.Style = baseStyle;
1978 newAlternate._parent = newTile;
1979 newTile.Alternates.Add(newAlternate);
1981 }
1982
1983 public static void Initialize()
1984 {
1986 _baseObject.SetupBaseObject();
1988 for (int i = 0; i < TileID.Count; i++)
1989 {
1990 _data.Add(null);
1991 }
1995 newTile.CoordinateHeights = new int[1] { 16 };
1996 newTile.CoordinateWidth = 16;
1997 newTile.CoordinatePadding = 2;
1998 newTile.StyleHorizontal = true;
1999 newTile.StyleMultiplier = 27;
2000 newTile.StyleWrapLimit = 27;
2001 newTile.UsesCustomCanPlace = false;
2002 newTile.LavaDeath = true;
2003 newSubTile.CopyFrom(newTile);
2004 newSubTile.LavaDeath = false;
2005 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2006 addSubTile(13, 47);
2007 addSubTile(43);
2008 addTile(19);
2009 newTile.CoordinateHeights = new int[1] { 16 };
2010 newTile.CoordinateWidth = 16;
2011 newTile.CoordinatePadding = 2;
2012 newTile.StyleHorizontal = true;
2013 newTile.StyleMultiplier = 27;
2014 newTile.StyleWrapLimit = 27;
2015 newTile.UsesCustomCanPlace = false;
2016 newTile.LavaDeath = true;
2017 addTile(427);
2018 for (int j = 435; j <= 439; j++)
2019 {
2020 newTile.CoordinateHeights = new int[1] { 16 };
2021 newTile.CoordinateWidth = 16;
2022 newTile.CoordinatePadding = 2;
2023 newTile.StyleHorizontal = true;
2024 newTile.StyleMultiplier = 27;
2025 newTile.StyleWrapLimit = 27;
2026 newTile.UsesCustomCanPlace = false;
2027 newTile.LavaDeath = true;
2028 addTile(j);
2029 }
2030 newTile.Width = 4;
2031 newTile.Height = 8;
2032 newTile.Origin = new Point16(1, 7);
2033 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop, newTile.Width, 0);
2034 newTile.UsesCustomCanPlace = true;
2035 newTile.HookPlaceOverride = new PlacementHook(WorldGen.PlaceXmasTree_Direct, -1, 0, processedCoordinates: true);
2036 newTile.CoordinateHeights = new int[8] { 16, 16, 16, 16, 16, 16, 16, 16 };
2037 newTile.CoordinateWidth = 16;
2038 newTile.CoordinatePadding = 0;
2039 addTile(171);
2040 newTile.Width = 1;
2041 newTile.Height = 1;
2042 newTile.Origin = new Point16(0, 0);
2043 newTile.AnchorTop = new AnchorData(AnchorType.EmptyTile, newTile.Width, 0);
2044 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
2045 newTile.UsesCustomCanPlace = true;
2046 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
2047 newTile.LavaDeath = true;
2048 newTile.CoordinateHeights = new int[1] { 38 };
2049 newTile.CoordinateWidth = 32;
2050 newTile.CoordinatePadding = 2;
2051 newTile.DrawYOffset = -20;
2052 newTile.StyleHorizontal = true;
2053 newTile.DrawFlipHorizontal = true;
2055 newTile.CopyFrom(StyleDye);
2056 newSubTile.CopyFrom(StyleDye);
2057 newSubTile.AnchorValidWalls = new int[1];
2058 addSubTile(3);
2059 newSubTile.CopyFrom(StyleDye);
2060 newSubTile.AnchorValidWalls = new int[1];
2061 addSubTile(4);
2062 newSubTile.CopyFrom(StyleDye);
2063 newSubTile.WaterPlacement = LiquidPlacement.OnlyInFullLiquid;
2064 addSubTile(5);
2065 newSubTile.CopyFrom(StyleDye);
2066 newSubTile.AnchorValidTiles = new int[1] { 80 };
2067 newSubTile.AnchorLeft = new AnchorData(AnchorType.EmptyTile, 1, 1);
2068 newSubTile.AnchorRight = new AnchorData(AnchorType.EmptyTile, 1, 1);
2069 addSubTile(6);
2070 newSubTile.CopyFrom(StyleDye);
2071 newSubTile.DrawYOffset = -6;
2072 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
2073 newSubTile.AnchorTop = new AnchorData(AnchorType.SolidTile, newSubTile.Width, 0);
2074 newSubTile.AnchorBottom = new AnchorData(AnchorType.EmptyTile, newSubTile.Width, 0);
2075 addSubTile(7);
2076 addTile(227);
2077 newTile.CopyFrom(StyleDye);
2078 newTile.CoordinateHeights = new int[1] { 20 };
2079 newTile.CoordinateWidth = 20;
2080 newTile.CoordinatePadding = 2;
2081 newTile.DrawYOffset = -2;
2082 newTile.AnchorTop = AnchorData.Empty;
2083 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.Table, newTile.Width, 0);
2084 newTile.Direction = TileObjectDirection.PlaceLeft;
2085 newTile.StyleHorizontal = true;
2086 newTile.DrawFlipHorizontal = false;
2087 newAlternate.CopyFrom(newTile);
2088 newAlternate.Direction = TileObjectDirection.PlaceRight;
2089 addAlternate(1);
2090 addTile(579);
2091 newTile.Width = 1;
2092 newTile.Height = 3;
2093 newTile.Origin = new Point16(0, 0);
2094 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
2095 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
2096 newTile.UsesCustomCanPlace = true;
2097 newTile.LavaDeath = true;
2098 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2099 newTile.CoordinateWidth = 16;
2100 newTile.CoordinatePadding = 2;
2101 newTile.StyleHorizontal = false;
2102 newTile.StyleWrapLimit = 36;
2103 newTile.StyleLineSkip = 3;
2104 newAlternate.CopyFrom(newTile);
2105 newAlternate.Origin = new Point16(0, 1);
2106 addAlternate(0);
2107 newAlternate.CopyFrom(newTile);
2108 newAlternate.Origin = new Point16(0, 2);
2109 addAlternate(0);
2110 newSubTile.CopyFrom(newTile);
2111 newSubTile.LinkedAlternates = true;
2112 newSubTile.LavaDeath = false;
2113 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2114 addSubTile(19, 48);
2115 addTile(10);
2116 newTile.Width = 2;
2117 newTile.Height = 3;
2118 newTile.Origin = new Point16(0, 0);
2119 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 0);
2120 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 0);
2121 newTile.UsesCustomCanPlace = true;
2122 newTile.LavaDeath = true;
2123 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2124 newTile.CoordinateWidth = 16;
2125 newTile.CoordinatePadding = 2;
2126 newTile.StyleHorizontal = false;
2127 newTile.StyleWrapLimit = 36;
2128 newTile.StyleLineSkip = 2;
2129 newTile.Direction = TileObjectDirection.PlaceRight;
2130 newAlternate.CopyFrom(newTile);
2131 newAlternate.Origin = new Point16(0, 1);
2132 addAlternate(0);
2133 newAlternate.CopyFrom(newTile);
2134 newAlternate.Origin = new Point16(0, 2);
2135 addAlternate(0);
2136 newAlternate.CopyFrom(newTile);
2137 newAlternate.Origin = new Point16(1, 0);
2138 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
2139 newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
2140 newAlternate.Direction = TileObjectDirection.PlaceLeft;
2141 addAlternate(1);
2142 newAlternate.CopyFrom(newTile);
2143 newAlternate.Origin = new Point16(1, 1);
2144 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
2145 newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
2146 newAlternate.Direction = TileObjectDirection.PlaceLeft;
2147 addAlternate(1);
2148 newAlternate.CopyFrom(newTile);
2149 newAlternate.Origin = new Point16(1, 2);
2150 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile, 1, 1);
2151 newAlternate.AnchorBottom = new AnchorData(AnchorType.SolidTile, 1, 1);
2152 newAlternate.Direction = TileObjectDirection.PlaceLeft;
2153 addAlternate(1);
2154 newSubTile.CopyFrom(newTile);
2155 newSubTile.LinkedAlternates = true;
2156 newSubTile.LavaDeath = false;
2157 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2158 addSubTile(19, 48);
2159 addTile(11);
2160 newTile.Width = 1;
2161 newTile.Height = 5;
2162 newTile.Origin = new Point16(0, 0);
2163 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
2164 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
2165 newTile.UsesCustomCanPlace = true;
2166 newTile.LavaDeath = true;
2167 newTile.DrawYOffset = -2;
2168 newTile.CoordinateHeights = new int[5] { 18, 16, 16, 16, 18 };
2169 newTile.CoordinateWidth = 16;
2170 newTile.CoordinatePadding = 2;
2171 newTile.Direction = TileObjectDirection.PlaceLeft;
2172 newTile.StyleMultiplier = 2;
2173 newTile.StyleWrapLimit = 2;
2174 for (int k = 1; k < 5; k++)
2175 {
2176 newAlternate.CopyFrom(newTile);
2177 newAlternate.Origin = new Point16(0, k);
2178 addAlternate(0);
2179 }
2180 newAlternate.CopyFrom(newTile);
2181 newAlternate.Direction = TileObjectDirection.PlaceRight;
2182 addAlternate(1);
2183 for (int l = 1; l < 5; l++)
2184 {
2185 newAlternate.CopyFrom(newTile);
2186 newAlternate.Origin = new Point16(0, l);
2187 newAlternate.Direction = TileObjectDirection.PlaceRight;
2188 addAlternate(1);
2189 }
2190 addTile(388);
2191 newTile.FullCopyFrom(388);
2192 addTile(389);
2193 newTile.Width = 1;
2194 newTile.Height = 1;
2195 newTile.Origin = new Point16(0, 0);
2196 newTile.AnchorBottom = new AnchorData(AnchorType.Table, newTile.Width, 0);
2197 newTile.UsesCustomCanPlace = true;
2198 newTile.LavaDeath = true;
2199 newTile.CoordinateHeights = new int[1] { 16 };
2200 newTile.CoordinateWidth = 16;
2201 newTile.CoordinatePadding = 2;
2203 newTile.CopyFrom(StyleOnTable1x1);
2204 newTile.CoordinatePadding = 2;
2205 newTile.StyleHorizontal = true;
2206 addTile(13);
2207 newTile.CopyFrom(StyleOnTable1x1);
2208 newTile.CoordinateHeights = new int[1] { 20 };
2209 newTile.DrawYOffset = -4;
2210 newSubTile.CopyFrom(newTile);
2211 newSubTile.LavaDeath = false;
2212 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2213 addSubTile(25, 41);
2214 newSubTile.CopyFrom(newTile);
2215 newSubTile.WaterDeath = false;
2216 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
2217 addSubTile(39);
2218 addTile(33);
2219 newTile.CopyFrom(StyleOnTable1x1);
2220 newTile.CoordinateHeights = new int[1] { 20 };
2221 newTile.DrawYOffset = -4;
2222 addTile(49);
2223 newTile.CopyFrom(StyleOnTable1x1);
2224 newTile.CoordinateHeights = new int[1] { 16 };
2225 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table, newTile.Width, 0);
2226 newTile.DrawYOffset = 2;
2227 newTile.HookPostPlaceMyPlayer = new PlacementHook(TEFoodPlatter.Hook_AfterPlacement, -1, 0, processedCoordinates: true);
2228 newTile.StyleHorizontal = true;
2229 newTile.Direction = TileObjectDirection.PlaceLeft;
2230 newAlternate.CopyFrom(newTile);
2231 newAlternate.Direction = TileObjectDirection.PlaceRight;
2232 addAlternate(1);
2233 addTile(520);
2234 newTile.CopyFrom(StyleOnTable1x1);
2235 newTile.CoordinateHeights = new int[1] { 20 };
2236 newTile.DrawYOffset = -4;
2237 addTile(372);
2238 newTile.CopyFrom(StyleOnTable1x1);
2239 newTile.CoordinateHeights = new int[1] { 20 };
2240 newTile.DrawYOffset = -4;
2241 addTile(646);
2242 newTile.CopyFrom(StyleOnTable1x1);
2243 newTile.StyleHorizontal = true;
2244 newTile.RandomStyleRange = 5;
2245 addTile(50);
2246 newTile.CopyFrom(StyleOnTable1x1);
2247 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table, newTile.Width, 0);
2248 newTile.DrawYOffset = 2;
2249 addTile(494);
2250 newTile.CopyFrom(StyleOnTable1x1);
2251 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
2252 newTile.DrawYOffset = 2;
2253 newTile.LavaDeath = false;
2254 addTile(78);
2255 newTile.CopyFrom(StyleOnTable1x1);
2256 newTile.CoordinateHeights = new int[1] { 20 };
2257 newTile.DrawYOffset = -4;
2258 addTile(174);
2259 newTile.Width = 1;
2260 newTile.Height = 3;
2261 newTile.Origin = new Point16(0, 2);
2262 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2263 newTile.UsesCustomCanPlace = true;
2264 newTile.LavaDeath = true;
2265 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2266 newTile.CoordinateWidth = 16;
2267 newTile.CoordinatePadding = 2;
2269 newTile.CopyFrom(Style1xX);
2270 newTile.StyleWrapLimitVisualOverride = 37;
2271 newTile.StyleLineSkip = 2;
2272 newTile.DrawYOffset = 2;
2273 newTile.WaterDeath = true;
2274 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
2275 newTile.LavaPlacement = LiquidPlacement.NotAllowed;
2276 newSubTile.CopyFrom(newTile);
2277 newSubTile.LavaDeath = false;
2278 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2279 addSubTile(23, 42);
2280 newSubTile.CopyFrom(newTile);
2281 newSubTile.WaterDeath = false;
2282 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
2283 addSubTile(40);
2284 addTile(93);
2285 newTile.CopyFrom(Style1xX);
2286 newTile.Height = 6;
2287 newTile.Origin = new Point16(0, 5);
2288 newTile.CoordinateHeights = new int[6] { 16, 16, 16, 16, 16, 16 };
2289 addTile(92);
2290 newTile.CopyFrom(Style1xX);
2291 newTile.LavaPlacement = LiquidPlacement.NotAllowed;
2292 newTile.StyleHorizontal = true;
2293 newTile.Direction = TileObjectDirection.PlaceLeft;
2294 newAlternate.CopyFrom(newTile);
2295 newAlternate.Direction = TileObjectDirection.PlaceRight;
2296 addAlternate(1);
2297 addTile(453);
2298 newTile.Width = 1;
2299 newTile.Height = 2;
2300 newTile.Origin = new Point16(0, 0);
2301 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.PlanterBox, newTile.Width, 0);
2302 newTile.UsesCustomCanPlace = true;
2303 newTile.CoordinateHeights = new int[2] { 16, 16 };
2304 newTile.CoordinateWidth = 16;
2305 newTile.CoordinatePadding = 2;
2306 newTile.LavaDeath = true;
2308 newTile.CopyFrom(Style1x2Top);
2309 newTile.DrawYOffset = -2;
2310 newAlternate.CopyFrom(newTile);
2311 newAlternate.AnchorTop = new AnchorData(AnchorType.Platform, newTile.Width, 0);
2312 newAlternate.DrawYOffset = -10;
2313 addAlternate(0);
2314 addTile(270);
2315 newTile.CopyFrom(Style1x2Top);
2316 newTile.DrawYOffset = -2;
2317 newAlternate.CopyFrom(newTile);
2318 newAlternate.AnchorTop = new AnchorData(AnchorType.Platform, newTile.Width, 0);
2319 newAlternate.DrawYOffset = -10;
2320 addAlternate(0);
2321 addTile(271);
2322 newTile.CopyFrom(Style1x2Top);
2323 newTile.DrawYOffset = -2;
2324 newAlternate.CopyFrom(newTile);
2325 newAlternate.AnchorTop = new AnchorData(AnchorType.Platform, newTile.Width, 0);
2326 newAlternate.DrawYOffset = -10;
2327 addAlternate(0);
2328 addTile(581);
2329 newTile.CopyFrom(Style1x2Top);
2330 newTile.DrawYOffset = -2;
2331 newAlternate.CopyFrom(newTile);
2332 newAlternate.AnchorTop = new AnchorData(AnchorType.Platform, newTile.Width, 0);
2333 newAlternate.DrawYOffset = -10;
2334 addAlternate(0);
2335 addTile(660);
2336 newTile.CopyFrom(Style1x2Top);
2337 newTile.DrawYOffset = -2;
2338 newTile.StyleWrapLimit = 6;
2339 newAlternate.CopyFrom(newTile);
2340 newAlternate.AnchorTop = new AnchorData(AnchorType.Platform, newTile.Width, 0);
2341 newAlternate.DrawYOffset = -10;
2342 addAlternate(0);
2343 addTile(572);
2344 newTile.CopyFrom(Style1x2Top);
2345 newTile.DrawYOffset = -2;
2346 newAlternate.CopyFrom(newTile);
2347 newAlternate.AnchorTop = new AnchorData(AnchorType.Platform, newTile.Width, 0);
2348 newAlternate.DrawYOffset = -10;
2349 addAlternate(0);
2350 newSubTile.CopyFrom(newTile);
2351 newSubTile.LavaDeath = false;
2352 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2353 addSubTile(32, 48);
2354 newSubTile.CopyFrom(newTile);
2355 newSubTile.WaterDeath = false;
2356 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
2357 addSubTile(46);
2358 addTile(42);
2359 newTile.CopyFrom(Style1x2Top);
2360 newTile.Height = 3;
2361 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2362 newTile.StyleHorizontal = true;
2363 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.SolidBottom | AnchorType.PlanterBox, newTile.Width, 0);
2364 newTile.StyleWrapLimit = 111;
2365 newTile.DrawYOffset = -2;
2366 newAlternate.CopyFrom(newTile);
2367 newAlternate.AnchorTop = new AnchorData(AnchorType.Platform, newTile.Width, 0);
2368 newAlternate.DrawYOffset = -10;
2369 addAlternate(0);
2370 addTile(91);
2371 newTile.Width = 4;
2372 newTile.Height = 2;
2373 newTile.Origin = new Point16(1, 1);
2374 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2375 newTile.UsesCustomCanPlace = true;
2376 newTile.CoordinateHeights = new int[2] { 16, 18 };
2377 newTile.CoordinateWidth = 16;
2378 newTile.CoordinatePadding = 2;
2379 newTile.StyleHorizontal = true;
2380 newTile.LavaDeath = false;
2381 addTile(487);
2382 newTile.Width = 4;
2383 newTile.Height = 2;
2384 newTile.Origin = new Point16(1, 1);
2385 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2386 newTile.UsesCustomCanPlace = true;
2387 newTile.CoordinateHeights = new int[2] { 16, 16 };
2388 newTile.CoordinateWidth = 16;
2389 newTile.CoordinatePadding = 2;
2390 newTile.Direction = TileObjectDirection.PlaceLeft;
2391 newTile.StyleMultiplier = 2;
2392 newTile.StyleWrapLimit = 2;
2393 newTile.StyleHorizontal = true;
2394 newTile.LavaDeath = true;
2395 newAlternate.CopyFrom(newTile);
2396 newAlternate.Direction = TileObjectDirection.PlaceRight;
2397 addAlternate(1);
2399 newTile.CopyFrom(Style4x2);
2400 newSubTile.CopyFrom(newTile);
2401 newSubTile.LinkedAlternates = true;
2402 newSubTile.LavaDeath = false;
2403 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2404 addSubTile(25, 42);
2405 addTile(90);
2406 newTile.CopyFrom(Style4x2);
2407 newTile.CoordinateHeights = new int[2] { 16, 18 };
2408 newTile.CoordinatePaddingFix = new Point16(0, -2);
2409 newSubTile.CopyFrom(newTile);
2410 newSubTile.LinkedAlternates = true;
2411 newSubTile.LavaDeath = false;
2412 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2413 addSubTile(8, 42);
2414 addTile(79);
2415 newTile.Width = 4;
2416 newTile.Height = 3;
2417 newTile.Origin = new Point16(1, 2);
2418 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop, 2, 1);
2419 newTile.UsesCustomCanPlace = true;
2420 newTile.LavaDeath = true;
2421 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2422 newTile.CoordinateWidth = 16;
2423 newTile.StyleHorizontal = true;
2424 newTile.CoordinatePadding = 2;
2425 addTile(209);
2426 newTile.Width = 3;
2427 newTile.Height = 2;
2428 newTile.Origin = new Point16(1, 1);
2429 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
2430 newTile.UsesCustomCanPlace = true;
2431 newTile.CoordinateHeights = new int[2] { 16, 16 };
2432 newTile.CoordinateWidth = 16;
2433 newTile.CoordinatePadding = 2;
2434 newTile.LavaDeath = true;
2435 newTile.DrawYOffset = 0;
2437 newTile.CopyFrom(StyleSmallCage);
2438 addTile(285);
2439 newTile.CopyFrom(StyleSmallCage);
2440 addTile(286);
2441 newTile.CopyFrom(StyleSmallCage);
2442 addTile(582);
2443 newTile.CopyFrom(StyleSmallCage);
2444 addTile(619);
2445 newTile.CopyFrom(StyleSmallCage);
2446 addTile(298);
2447 newTile.CopyFrom(StyleSmallCage);
2448 addTile(299);
2449 newTile.CopyFrom(StyleSmallCage);
2450 addTile(310);
2451 newTile.CopyFrom(StyleSmallCage);
2452 addTile(532);
2453 newTile.CopyFrom(StyleSmallCage);
2454 addTile(533);
2455 newTile.CopyFrom(StyleSmallCage);
2456 addTile(339);
2457 newTile.CopyFrom(StyleSmallCage);
2458 addTile(538);
2459 newTile.CopyFrom(StyleSmallCage);
2460 addTile(555);
2461 newTile.CopyFrom(StyleSmallCage);
2462 addTile(556);
2463 newTile.CopyFrom(StyleSmallCage);
2464 addTile(629);
2465 newTile.Width = 6;
2466 newTile.Height = 3;
2467 newTile.Origin = new Point16(3, 2);
2468 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
2469 newTile.UsesCustomCanPlace = true;
2470 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2471 newTile.CoordinateWidth = 16;
2472 newTile.CoordinatePadding = 2;
2473 newTile.DrawYOffset = 0;
2474 newTile.LavaDeath = true;
2476 newTile.CopyFrom(Style6x3);
2477 addTile(275);
2478 newTile.CopyFrom(Style6x3);
2479 addTile(276);
2480 newTile.CopyFrom(Style6x3);
2481 addTile(413);
2482 newTile.CopyFrom(Style6x3);
2483 addTile(414);
2484 newTile.CopyFrom(Style6x3);
2485 addTile(277);
2486 newTile.CopyFrom(Style6x3);
2487 addTile(278);
2488 newTile.CopyFrom(Style6x3);
2489 addTile(279);
2490 newTile.CopyFrom(Style6x3);
2491 addTile(280);
2492 newTile.CopyFrom(Style6x3);
2493 addTile(281);
2494 newTile.CopyFrom(Style6x3);
2495 addTile(632);
2496 newTile.CopyFrom(Style6x3);
2497 addTile(640);
2498 newTile.CopyFrom(Style6x3);
2499 addTile(643);
2500 newTile.CopyFrom(Style6x3);
2501 addTile(644);
2502 newTile.CopyFrom(Style6x3);
2503 addTile(645);
2504 newTile.CopyFrom(Style6x3);
2505 addTile(296);
2506 newTile.CopyFrom(Style6x3);
2507 addTile(297);
2508 newTile.CopyFrom(Style6x3);
2509 addTile(309);
2510 newTile.CopyFrom(Style6x3);
2511 addTile(550);
2512 newTile.CopyFrom(Style6x3);
2513 addTile(551);
2514 newTile.CopyFrom(Style6x3);
2515 addTile(553);
2516 newTile.CopyFrom(Style6x3);
2517 addTile(554);
2518 newTile.CopyFrom(Style6x3);
2519 addTile(558);
2520 newTile.CopyFrom(Style6x3);
2521 addTile(559);
2522 newTile.CopyFrom(Style6x3);
2523 addTile(599);
2524 newTile.CopyFrom(Style6x3);
2525 addTile(600);
2526 newTile.CopyFrom(Style6x3);
2527 addTile(601);
2528 newTile.CopyFrom(Style6x3);
2529 addTile(602);
2530 newTile.CopyFrom(Style6x3);
2531 addTile(603);
2532 newTile.CopyFrom(Style6x3);
2533 addTile(604);
2534 newTile.CopyFrom(Style6x3);
2535 addTile(605);
2536 newTile.CopyFrom(Style6x3);
2537 addTile(606);
2538 newTile.CopyFrom(Style6x3);
2539 addTile(607);
2540 newTile.CopyFrom(Style6x3);
2541 addTile(608);
2542 newTile.CopyFrom(Style6x3);
2543 addTile(609);
2544 newTile.CopyFrom(Style6x3);
2545 addTile(610);
2546 newTile.CopyFrom(Style6x3);
2547 addTile(611);
2548 newTile.CopyFrom(Style6x3);
2549 addTile(612);
2550 newTile.Width = 5;
2551 newTile.Height = 4;
2552 newTile.Origin = new Point16(2, 3);
2553 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2554 newTile.UsesCustomCanPlace = true;
2555 newTile.CoordinateHeights = new int[4] { 16, 16, 16, 16 };
2556 newTile.CoordinateWidth = 16;
2557 newTile.CoordinatePadding = 2;
2558 newTile.DrawYOffset = 2;
2559 newTile.LavaDeath = true;
2561 newTile.CopyFrom(Style5x4);
2562 addTile(464);
2563 newTile.CopyFrom(Style5x4);
2564 addTile(466);
2565 newTile.Width = 2;
2566 newTile.Height = 1;
2567 newTile.Origin = new Point16(0, 0);
2568 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2569 newTile.UsesCustomCanPlace = true;
2570 newTile.CoordinateHeights = new int[1] { 16 };
2571 newTile.CoordinateWidth = 16;
2572 newTile.CoordinatePadding = 2;
2573 newTile.StyleHorizontal = true;
2574 newTile.LavaDeath = true;
2576 newTile.CopyFrom(Style2x1);
2577 newTile.AnchorBottom = new AnchorData(AnchorType.Table, newTile.Width, 0);
2578 addTile(29);
2579 newTile.CopyFrom(Style2x1);
2580 newTile.AnchorBottom = new AnchorData(AnchorType.Table, newTile.Width, 0);
2581 addTile(103);
2582 newTile.CopyFrom(Style2x1);
2583 newTile.AnchorBottom = new AnchorData(AnchorType.Table, newTile.Width, 0);
2584 addTile(462);
2585 newTile.CopyFrom(Style2x1);
2586 newTile.CoordinateHeights = new int[1] { 18 };
2587 newSubTile.CopyFrom(newTile);
2588 newSubTile.LavaDeath = false;
2589 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2590 addSubTile(14, 43);
2591 addTile(18);
2592 newTile.CopyFrom(Style2x1);
2593 newTile.CoordinateHeights = new int[1] { 18 };
2594 addTile(16);
2595 newTile.CopyFrom(Style2x1);
2596 newTile.DrawYOffset = 2;
2597 newTile.LavaDeath = false;
2598 addTile(134);
2599 newTile.CopyFrom(Style2x1);
2600 newTile.AnchorBottom = AnchorData.Empty;
2601 newTile.AnchorLeft = new AnchorData(AnchorType.SolidTile, newTile.Height, 0);
2602 newTile.AnchorRight = new AnchorData(AnchorType.SolidTile, newTile.Height, 0);
2603 addTile(387);
2604 newTile.CopyFrom(Style2x1);
2605 newTile.DrawYOffset = 2;
2606 newTile.StyleWrapLimit = 53;
2607 addTile(649);
2608 newTile.CopyFrom(Style2x1);
2609 newTile.DrawYOffset = 2;
2610 newTile.LavaDeath = false;
2611 newAlternate.CopyFrom(newTile);
2612 newAlternate.Direction = TileObjectDirection.PlaceRight;
2613 addAlternate(1);
2614 newAlternate.CopyFrom(newTile);
2615 newAlternate.AnchorBottom = AnchorData.Empty;
2616 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidBottom, newTile.Width, 0);
2617 newAlternate.DrawYOffset = -2;
2618 addAlternate(2);
2619 newAlternate.CopyFrom(newTile);
2620 newAlternate.Direction = TileObjectDirection.PlaceRight;
2621 newAlternate.AnchorBottom = AnchorData.Empty;
2622 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidBottom, newTile.Width, 0);
2623 newAlternate.DrawYOffset = -2;
2624 addAlternate(3);
2625 addTile(443);
2626 newTile.Width = 2;
2627 newTile.Height = 3;
2628 newTile.Origin = new Point16(1, 2);
2629 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2630 newTile.UsesCustomCanPlace = true;
2631 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2632 newTile.CoordinateWidth = 16;
2633 newTile.CoordinatePadding = 2;
2634 newTile.StyleHorizontal = true;
2636 newTile.CopyFrom(Style2xX);
2637 newTile.Height = 5;
2638 newTile.Origin = new Point16(1, 4);
2639 newTile.CoordinateHeights = new int[5] { 16, 16, 16, 16, 16 };
2640 newTile.DrawYOffset = 2;
2641 newTile.LavaDeath = true;
2642 addTile(547);
2643 newTile.CopyFrom(Style2xX);
2644 newTile.Height = 5;
2645 newTile.Origin = new Point16(1, 4);
2646 newTile.CoordinateHeights = new int[5] { 16, 16, 16, 16, 16 };
2647 newTile.DrawYOffset = 2;
2648 newTile.LavaDeath = true;
2649 addTile(623);
2650 newTile.CopyFrom(Style2xX);
2651 newTile.Height = 4;
2652 newTile.Origin = new Point16(1, 3);
2653 newTile.CoordinateHeights = new int[4] { 16, 16, 16, 16 };
2654 newTile.DrawYOffset = 2;
2655 addTile(207);
2656 newTile.CopyFrom(Style2xX);
2657 newTile.Height = 3;
2658 newTile.Origin = new Point16(1, 2);
2659 newTile.CoordinateHeights = new int[3] { 16, 16, 18 };
2660 addTile(410);
2661 newTile.CopyFrom(Style2xX);
2662 newTile.Height = 3;
2663 newTile.Origin = new Point16(1, 2);
2664 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2665 newTile.DrawYOffset = 2;
2666 addTile(480);
2667 newTile.CopyFrom(Style2xX);
2668 newTile.Height = 3;
2669 newTile.Origin = new Point16(1, 2);
2670 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2671 newTile.DrawYOffset = 2;
2672 addTile(509);
2673 newTile.CopyFrom(Style2xX);
2674 newTile.Height = 3;
2675 newTile.Origin = new Point16(1, 2);
2676 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2677 newTile.DrawYOffset = 2;
2678 addTile(657);
2679 newTile.CopyFrom(Style2xX);
2680 newTile.Height = 3;
2681 newTile.Origin = new Point16(1, 2);
2682 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2683 newTile.DrawYOffset = 2;
2684 addTile(658);
2685 newTile.CopyFrom(Style2xX);
2686 newTile.Height = 3;
2687 newTile.Origin = new Point16(1, 2);
2688 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2689 addTile(489);
2690 newTile.CopyFrom(Style2xX);
2691 newTile.DrawYOffset = 2;
2692 newTile.StyleWrapLimit = 7;
2693 newTile.Direction = TileObjectDirection.PlaceLeft;
2694 newAlternate.CopyFrom(newTile);
2695 newAlternate.Direction = TileObjectDirection.PlaceRight;
2696 addAlternate(7);
2697 addTile(349);
2698 newTile.CopyFrom(Style2xX);
2699 addTile(337);
2700 newTile.CopyFrom(Style2xX);
2701 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
2702 newTile.DrawYOffset = 2;
2703 addTile(560);
2704 newTile.CopyFrom(Style2xX);
2705 newTile.Height = 3;
2706 newTile.Origin = new Point16(0, 0);
2707 newTile.AnchorBottom = default(AnchorData);
2708 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.SolidBottom | AnchorType.PlanterBox, newTile.Width, 0);
2709 newTile.LavaDeath = true;
2710 newTile.DrawYOffset = -2;
2711 newAlternate.CopyFrom(newTile);
2712 newAlternate.AnchorTop = new AnchorData(AnchorType.PlatformNonHammered, newTile.Width, 0);
2713 newAlternate.DrawYOffset = -10;
2714 addAlternate(0);
2715 addTile(465);
2716 newTile.CopyFrom(Style2xX);
2717 newTile.Height = 3;
2718 newTile.Origin = new Point16(0, 0);
2719 newTile.AnchorBottom = default(AnchorData);
2720 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.SolidBottom, newTile.Width, 0);
2721 newTile.LavaDeath = true;
2722 addTile(531);
2723 newTile.CopyFrom(Style2xX);
2724 addTile(320);
2725 newTile.CopyFrom(Style2xX);
2726 addTile(456);
2727 newTile.CopyFrom(Style2xX);
2728 newTile.HookPostPlaceMyPlayer = new PlacementHook(TETrainingDummy.Hook_AfterPlacement, -1, 0, processedCoordinates: false);
2729 newTile.Direction = TileObjectDirection.PlaceLeft;
2730 newTile.StyleMultiplier = 2;
2731 newTile.StyleWrapLimit = 2;
2732 newTile.DrawYOffset = 2;
2733 newAlternate.CopyFrom(newTile);
2734 newAlternate.Direction = TileObjectDirection.PlaceRight;
2735 addAlternate(1);
2736 addTile(378);
2737 newTile.CopyFrom(Style2xX);
2738 newTile.DrawYOffset = 2;
2739 newTile.StyleWrapLimit = 55;
2740 newTile.Direction = TileObjectDirection.PlaceLeft;
2741 newAlternate.CopyFrom(newTile);
2742 newAlternate.Direction = TileObjectDirection.PlaceRight;
2743 addAlternate(165);
2744 addTile(105);
2745 newTile.CopyFrom(Style2xX);
2746 newTile.Origin = new Point16(0, 2);
2747 newTile.RandomStyleRange = 2;
2748 newTile.Direction = TileObjectDirection.PlaceLeft;
2749 newTile.StyleWrapLimit = 2;
2750 newTile.StyleMultiplier = 2;
2751 newAlternate.CopyFrom(newTile);
2752 newAlternate.Direction = TileObjectDirection.PlaceRight;
2753 addAlternate(2);
2754 addTile(545);
2755 newTile.CopyFrom(Style2xX);
2756 newTile.DrawYOffset = 2;
2757 newTile.Height = 5;
2758 newTile.Origin = new Point16(0, 4);
2759 newTile.CoordinateHeights = new int[5] { 16, 16, 16, 16, 16 };
2760 newTile.LavaDeath = true;
2761 newSubTile.CopyFrom(newTile);
2762 newSubTile.LavaDeath = false;
2763 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2764 addSubTile(17, 43);
2765 addTile(104);
2766 newTile.CopyFrom(Style2xX);
2767 newTile.Origin = new Point16(0, 2);
2768 newTile.Direction = TileObjectDirection.PlaceLeft;
2769 newAlternate.CopyFrom(newTile);
2770 newAlternate.Direction = TileObjectDirection.PlaceRight;
2771 addAlternate(1);
2772 newTile.LavaDeath = true;
2773 addTile(128);
2774 newTile.CopyFrom(Style2xX);
2775 newTile.Origin = new Point16(0, 2);
2776 newTile.Direction = TileObjectDirection.PlaceLeft;
2777 newTile.LavaDeath = true;
2778 newTile.DrawYOffset = 2;
2779 newAlternate.CopyFrom(newTile);
2780 newAlternate.Direction = TileObjectDirection.PlaceRight;
2781 addAlternate(1);
2782 addTile(506);
2783 newTile.CopyFrom(Style2xX);
2784 newTile.Origin = new Point16(0, 2);
2785 newTile.Direction = TileObjectDirection.PlaceLeft;
2786 newAlternate.CopyFrom(newTile);
2787 newAlternate.Direction = TileObjectDirection.PlaceRight;
2788 addAlternate(1);
2789 newTile.LavaDeath = true;
2790 addTile(269);
2791 newTile.CopyFrom(Style2xX);
2792 newTile.LavaDeath = false;
2793 newTile.DrawYOffset = 2;
2794 newTile.Origin = new Point16(0, 2);
2795 newTile.Direction = TileObjectDirection.PlaceLeft;
2796 newTile.DrawStyleOffset = 4;
2797 newTile.HookPostPlaceMyPlayer = new PlacementHook(TEDisplayDoll.Hook_AfterPlacement, -1, 0, processedCoordinates: false);
2798 newTile.AnchorInvalidTiles = new int[5] { 127, 138, 664, 665, 484 };
2799 newAlternate.CopyFrom(newTile);
2800 newAlternate.Direction = TileObjectDirection.PlaceRight;
2801 addAlternate(1);
2802 addTile(470);
2803 newTile.CopyFrom(Style2xX);
2804 newTile.Height = 3;
2805 newTile.Origin = new Point16(0, 0);
2806 newTile.AnchorBottom = default(AnchorData);
2807 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.SolidBottom | AnchorType.PlanterBox, newTile.Width, 0);
2808 newTile.LavaDeath = true;
2809 newTile.DrawYOffset = -2;
2810 newAlternate.CopyFrom(newTile);
2811 newAlternate.AnchorTop = new AnchorData(AnchorType.PlatformNonHammered, newTile.Width, 0);
2812 newAlternate.DrawYOffset = -10;
2813 addAlternate(0);
2814 addTile(591);
2815 newTile.CopyFrom(Style2xX);
2816 newTile.Height = 3;
2817 newTile.Origin = new Point16(0, 0);
2818 newTile.AnchorBottom = default(AnchorData);
2819 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.SolidBottom | AnchorType.PlanterBox, newTile.Width, 0);
2820 newTile.LavaDeath = true;
2821 newTile.DrawYOffset = -2;
2822 newAlternate.CopyFrom(newTile);
2823 newAlternate.AnchorTop = new AnchorData(AnchorType.PlatformNonHammered, newTile.Width, 0);
2824 newAlternate.DrawYOffset = -10;
2825 addAlternate(0);
2826 addTile(592);
2827 newTile.Width = 3;
2828 newTile.Height = 3;
2829 newTile.Origin = new Point16(1, 2);
2830 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
2831 newTile.UsesCustomCanPlace = true;
2832 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
2833 newTile.CoordinateWidth = 16;
2834 newTile.CoordinatePadding = 2;
2836 newTile.CopyFrom(Style3x3);
2837 newTile.Height = 6;
2838 newTile.Origin = new Point16(1, 5);
2839 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2840 newTile.CoordinateHeights = new int[6] { 16, 16, 16, 16, 16, 16 };
2841 newTile.DrawYOffset = 2;
2842 newTile.LavaDeath = true;
2843 newTile.StyleHorizontal = true;
2844 newSubTile.CopyFrom(newTile);
2845 newSubTile.LavaDeath = false;
2846 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2847 addSubTile(7);
2848 newSubTile.CopyFrom(newTile);
2849 newSubTile.LavaDeath = false;
2850 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2851 addSubTile(8);
2852 addTile(548);
2853 newTile.CopyFrom(Style3x3);
2854 newTile.Height = 5;
2855 newTile.Origin = new Point16(1, 4);
2856 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2857 newTile.CoordinateHeights = new int[5] { 16, 16, 16, 16, 16 };
2858 newTile.DrawYOffset = 2;
2859 newTile.LavaDeath = false;
2860 newTile.LavaPlacement = LiquidPlacement.Allowed;
2861 newTile.StyleHorizontal = true;
2862 addTile(613);
2863 newTile.CopyFrom(Style3x3);
2864 newTile.Height = 6;
2865 newTile.Origin = new Point16(1, 5);
2866 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2867 newTile.CoordinateHeights = new int[6] { 16, 16, 16, 16, 16, 16 };
2868 newTile.DrawYOffset = 2;
2869 newTile.LavaDeath = false;
2870 newTile.LavaPlacement = LiquidPlacement.Allowed;
2871 newTile.StyleHorizontal = true;
2872 addTile(614);
2873 newTile.CopyFrom(Style3x3);
2874 newTile.Origin = new Point16(1, 0);
2875 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 1, 1);
2876 newTile.AnchorBottom = AnchorData.Empty;
2877 newTile.LavaDeath = true;
2878 newTile.StyleWrapLimit = 37;
2879 newTile.StyleHorizontal = false;
2880 newTile.StyleLineSkip = 2;
2881 newTile.DrawYOffset = -2;
2882 newSubTile.CopyFrom(newTile);
2883 newSubTile.LavaDeath = false;
2884 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2885 addSubTile(32, 48);
2886 newSubTile.CopyFrom(newTile);
2887 newSubTile.WaterDeath = false;
2888 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
2889 addSubTile(46);
2890 addTile(34);
2891 newTile.CopyFrom(Style3x3);
2892 newTile.Width = 4;
2893 newTile.Origin = new Point16(2, 0);
2894 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 1, 1);
2895 newTile.AnchorBottom = AnchorData.Empty;
2896 newTile.LavaDeath = true;
2897 newTile.DrawYOffset = -2;
2898 addTile(454);
2899 newTile.Width = 3;
2900 newTile.Height = 2;
2901 newTile.Origin = new Point16(1, 1);
2902 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
2903 newTile.UsesCustomCanPlace = true;
2904 newTile.CoordinateHeights = new int[2] { 16, 16 };
2905 newTile.CoordinateWidth = 16;
2906 newTile.CoordinatePadding = 2;
2907 newTile.StyleHorizontal = true;
2908 newTile.LavaDeath = true;
2910 newTile.CopyFrom(Style3x2);
2911 newTile.CoordinateHeights = new int[2] { 16, 18 };
2912 newSubTile.CopyFrom(Style3x2);
2913 newSubTile.LavaDeath = false;
2914 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2915 addSubTile(13);
2916 newSubTile.CopyFrom(Style3x2);
2917 newSubTile.Height = 1;
2918 newSubTile.Origin = new Point16(1, 0);
2919 newSubTile.CoordinateHeights = new int[1] { 16 };
2920 addSubTile(25);
2921 addTile(14);
2922 newTile.CopyFrom(Style3x2);
2923 newTile.CoordinateHeights = new int[2] { 16, 18 };
2924 newSubTile.CopyFrom(Style3x2);
2925 newSubTile.LavaDeath = false;
2926 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2927 addSubTile(11);
2928 addTile(469);
2929 newTile.CopyFrom(Style3x2);
2930 newTile.StyleWrapLimitVisualOverride = 37;
2931 newTile.HookCheckIfCanPlace = new PlacementHook(Chest.FindEmptyChest, -1, 0, processedCoordinates: true);
2932 newTile.HookPostPlaceMyPlayer = new PlacementHook(Chest.AfterPlacement_Hook, -1, 0, processedCoordinates: false);
2933 newTile.AnchorInvalidTiles = new int[5] { 127, 138, 664, 665, 484 };
2934 newTile.LavaDeath = false;
2935 newSubTile.CopyFrom(newTile);
2936 newSubTile.LavaDeath = false;
2937 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2938 addSubTile(9, 42);
2939 addTile(88);
2940 newTile.CopyFrom(Style3x2);
2941 newTile.LavaDeath = false;
2942 newTile.LavaPlacement = LiquidPlacement.Allowed;
2943 addTile(237);
2944 newTile.CopyFrom(Style3x2);
2945 newTile.DrawYOffset = 2;
2946 addTile(244);
2947 newTile.CopyFrom(Style3x2);
2948 newTile.DrawYOffset = 2;
2949 addTile(647);
2950 newTile.CopyFrom(Style3x2);
2951 newTile.DrawYOffset = 2;
2952 newTile.StyleWrapLimit = 35;
2953 addTile(648);
2954 newTile.CopyFrom(Style3x2);
2955 newTile.DrawYOffset = 2;
2956 addTile(651);
2957 newTile.CopyFrom(Style3x2);
2958 newTile.LavaDeath = false;
2959 newTile.CoordinateHeights = new int[2] { 16, 18 };
2960 addTile(26);
2961 newTile.CopyFrom(Style3x2);
2962 addTile(86);
2963 newTile.CopyFrom(Style3x2);
2964 newTile.DrawYOffset = 2;
2965 addTile(377);
2966 newTile.CopyFrom(Style3x2);
2967 newTile.StyleWrapLimitVisualOverride = 37;
2968 newSubTile.CopyFrom(newTile);
2969 newSubTile.LavaDeath = false;
2970 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2971 addSubTile(15, 42);
2972 addTile(87);
2973 newTile.CopyFrom(Style3x2);
2974 newTile.LavaDeath = false;
2975 newTile.CoordinateHeights = new int[2] { 16, 18 };
2976 addTile(486);
2977 newTile.CopyFrom(Style3x2);
2978 newTile.LavaDeath = false;
2979 addTile(488);
2980 newTile.CopyFrom(Style3x2);
2981 newTile.DrawYOffset = 2;
2982 newTile.StyleWrapLimitVisualOverride = 37;
2983 newSubTile.CopyFrom(newTile);
2984 newSubTile.LavaDeath = false;
2985 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
2986 addSubTile(10, 46);
2987 addTile(89);
2988 newTile.CopyFrom(Style3x2);
2989 newTile.LavaDeath = false;
2990 addTile(114);
2991 newTile.CopyFrom(Style3x2);
2992 newTile.LavaDeath = false;
2993 newTile.DrawYOffset = 2;
2994 newSubTile.CopyFrom(newTile);
2995 newSubTile.AnchorValidTiles = new int[2] { 59, 70 };
2996 addSubTile(32, 33, 34);
2997 newSubTile.CopyFrom(newTile);
2998 newSubTile.AnchorValidTiles = new int[7] { 147, 161, 163, 200, 164, 162, 224 };
2999 addSubTile(26, 27, 28, 29, 30, 31);
3000 addTile(186);
3001 newTile.CopyFrom(Style3x2);
3002 newTile.StyleWrapLimit = 35;
3003 newTile.LavaDeath = false;
3004 newTile.DrawYOffset = 2;
3005 newSubTile.CopyFrom(newTile);
3006 newSubTile.AnchorValidTiles = new int[3] { 59, 60, 226 };
3007 addSubTile(0, 1, 2, 3, 4, 5);
3008 newSubTile.CopyFrom(newTile);
3009 newSubTile.AnchorValidTiles = new int[4] { 57, 58, 75, 76 };
3010 addSubTile(6, 7, 8);
3011 newSubTile.CopyFrom(newTile);
3012 newSubTile.AnchorValidTiles = new int[12]
3013 {
3014 53, 397, 396, 112, 398, 400, 234, 399, 401, 116,
3015 402, 403
3016 };
3017 addSubTile(29, 30, 31, 32, 33, 34);
3018 addTile(187);
3019 newTile.CopyFrom(Style3x2);
3020 newTile.AnchorValidTiles = new int[4] { 53, 112, 234, 116 };
3021 newTile.WaterDeath = true;
3022 newTile.LavaDeath = true;
3023 newTile.DrawYOffset = 2;
3024 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
3025 newTile.LavaPlacement = LiquidPlacement.NotAllowed;
3026 newTile.RandomStyleRange = 4;
3027 addTile(552);
3028 newTile.CopyFrom(Style3x2);
3029 newTile.StyleWrapLimit = 16;
3030 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
3031 newTile.LavaPlacement = LiquidPlacement.NotAllowed;
3032 newTile.WaterDeath = true;
3033 newTile.LavaDeath = true;
3034 newTile.DrawYOffset = 2;
3035 newSubTile.CopyFrom(newTile);
3036 newSubTile.WaterDeath = false;
3037 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3038 addSubTile(1);
3039 newSubTile.CopyFrom(newTile);
3040 newSubTile.WaterDeath = false;
3041 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3042 addSubTile(4);
3043 newSubTile.CopyFrom(newTile);
3044 newSubTile.WaterDeath = false;
3045 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3046 addSubTile(9);
3047 newSubTile.CopyFrom(newTile);
3048 newSubTile.WaterDeath = false;
3049 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3050 addSubTile(1 + newTile.StyleWrapLimit);
3051 newSubTile.CopyFrom(newTile);
3052 newSubTile.WaterDeath = false;
3053 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3054 addSubTile(4 + newTile.StyleWrapLimit);
3055 newSubTile.CopyFrom(newTile);
3056 newSubTile.WaterDeath = false;
3057 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3058 addSubTile(9 + newTile.StyleWrapLimit);
3059 addTile(215);
3060 newTile.CopyFrom(Style3x2);
3061 newTile.DrawYOffset = 2;
3062 addTile(217);
3063 newTile.CopyFrom(Style3x2);
3064 newTile.DrawYOffset = 2;
3065 addTile(218);
3066 newTile.CopyFrom(Style3x2);
3067 newTile.CoordinateHeights = new int[2] { 16, 18 };
3068 addTile(17);
3069 newTile.CopyFrom(Style3x2);
3070 newTile.CoordinateHeights = new int[2] { 16, 18 };
3071 newTile.LavaDeath = false;
3072 addTile(77);
3073 newTile.CopyFrom(Style3x2);
3074 newTile.CoordinateHeights = new int[2] { 16, 18 };
3075 newTile.DrawYOffset = 2;
3076 newTile.StyleHorizontal = true;
3077 newTile.LavaDeath = false;
3078 addTile(133);
3079 newTile.CopyFrom(Style3x2);
3080 addTile(405);
3081 newTile.Width = 3;
3082 newTile.Height = 1;
3083 newTile.Origin = new Point16(1, 0);
3084 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3085 newTile.UsesCustomCanPlace = true;
3086 newTile.CoordinateHeights = new int[1] { 16 };
3087 newTile.CoordinateWidth = 16;
3088 newTile.CoordinatePadding = 2;
3089 addTile(235);
3090 newTile.Width = 3;
3091 newTile.Height = 4;
3092 newTile.Origin = new Point16(1, 3);
3093 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3094 newTile.UsesCustomCanPlace = true;
3095 newTile.CoordinateHeights = new int[4] { 16, 16, 16, 16 };
3096 newTile.CoordinateWidth = 16;
3097 newTile.CoordinatePadding = 2;
3098 newTile.StyleHorizontal = true;
3099 newTile.LavaDeath = true;
3101 newTile.CopyFrom(Style3x4);
3102 newTile.StyleWrapLimitVisualOverride = 37;
3103 newSubTile.CopyFrom(newTile);
3104 newSubTile.LavaDeath = false;
3105 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
3106 addSubTile(4, 43);
3107 addTile(101);
3108 newTile.CopyFrom(Style3x4);
3109 newTile.DrawYOffset = 2;
3110 addTile(102);
3111 newTile.CopyFrom(Style3x4);
3112 newTile.DrawYOffset = 2;
3113 addTile(463);
3114 newTile.CopyFrom(Style3x4);
3115 newTile.LavaDeath = false;
3116 newTile.DrawYOffset = 2;
3117 newTile.Direction = TileObjectDirection.PlaceLeft;
3118 newTile.HookPostPlaceMyPlayer = new PlacementHook(TEHatRack.Hook_AfterPlacement, -1, 0, processedCoordinates: false);
3119 newTile.AnchorInvalidTiles = new int[5] { 127, 138, 664, 665, 484 };
3120 newAlternate.CopyFrom(newTile);
3121 newAlternate.Direction = TileObjectDirection.PlaceRight;
3122 addAlternate(1);
3123 addTile(475);
3124 newTile.CopyFrom(Style3x4);
3125 newTile.LavaDeath = false;
3126 newTile.DrawYOffset = 2;
3127 newTile.HookCheckIfCanPlace = new PlacementHook(TETeleportationPylon.PlacementPreviewHook_CheckIfCanPlace, 1, 0, processedCoordinates: true);
3128 newTile.HookPostPlaceMyPlayer = new PlacementHook(TETeleportationPylon.PlacementPreviewHook_AfterPlacement, -1, 0, processedCoordinates: false);
3129 newTile.StyleHorizontal = true;
3130 addTile(597);
3131 newTile.CopyFrom(Style3x4);
3132 newTile.LavaDeath = false;
3133 newTile.DrawYOffset = 2;
3134 newTile.Direction = TileObjectDirection.PlaceLeft;
3135 newTile.StyleHorizontal = false;
3136 newTile.StyleWrapLimitVisualOverride = 2;
3137 newTile.StyleMultiplier = 2;
3138 newTile.StyleWrapLimit = 2;
3139 newTile.styleLineSkipVisualOverride = 0;
3140 newAlternate.CopyFrom(newTile);
3141 newAlternate.Direction = TileObjectDirection.PlaceRight;
3142 addAlternate(1);
3143 addTile(617);
3144 newTile.Width = 2;
3145 newTile.Height = 2;
3146 newTile.Origin = new Point16(0, 1);
3147 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
3148 newTile.UsesCustomCanPlace = true;
3149 newTile.CoordinateHeights = new int[2] { 16, 16 };
3150 newTile.CoordinateWidth = 16;
3151 newTile.CoordinatePadding = 2;
3152 newTile.LavaDeath = true;
3154 newTile.CopyFrom(Style2x2);
3155 newTile.Origin = new Point16(0, 1);
3156 newTile.CoordinateHeights = new int[2] { 16, 18 };
3157 newTile.HookCheckIfCanPlace = new PlacementHook(Chest.FindEmptyChest, -1, 0, processedCoordinates: true);
3158 newTile.HookPostPlaceMyPlayer = new PlacementHook(Chest.AfterPlacement_Hook, -1, 0, processedCoordinates: false);
3159 newTile.AnchorInvalidTiles = new int[5] { 127, 138, 664, 665, 484 };
3160 newTile.StyleHorizontal = true;
3161 newTile.LavaDeath = false;
3162 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3163 addTile(21);
3164 newTile.CopyFrom(Style2x2);
3165 newTile.Origin = new Point16(0, 1);
3166 newTile.CoordinateHeights = new int[2] { 16, 18 };
3167 newTile.HookCheckIfCanPlace = new PlacementHook(Chest.FindEmptyChest, -1, 0, processedCoordinates: true);
3168 newTile.HookPostPlaceMyPlayer = new PlacementHook(Chest.AfterPlacement_Hook, -1, 0, processedCoordinates: false);
3169 newTile.AnchorInvalidTiles = new int[5] { 127, 138, 664, 665, 484 };
3170 newTile.StyleHorizontal = true;
3171 newTile.LavaDeath = false;
3172 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3173 addTile(467);
3174 newTile.CopyFrom(Style2x2);
3175 newTile.Origin = new Point16(0, 1);
3176 newTile.CoordinateHeights = new int[2] { 16, 18 };
3177 newTile.AnchorInvalidTiles = new int[5] { 127, 138, 664, 665, 484 };
3178 newTile.StyleHorizontal = true;
3179 newTile.LavaDeath = false;
3180 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3181 addTile(441);
3182 newTile.CopyFrom(Style2x2);
3183 newTile.Origin = new Point16(0, 1);
3184 newTile.CoordinateHeights = new int[2] { 16, 18 };
3185 newTile.AnchorInvalidTiles = new int[5] { 127, 138, 664, 665, 484 };
3186 newTile.StyleHorizontal = true;
3187 newTile.LavaDeath = false;
3188 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3189 addTile(468);
3190 newTile.CopyFrom(Style2x2);
3191 newTile.DrawYOffset = 2;
3192 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
3193 newTile.StyleWrapLimit = 6;
3194 newTile.StyleMultiplier = 6;
3195 newTile.RandomStyleRange = 6;
3196 newTile.AnchorValidTiles = new int[4] { 2, 477, 109, 492 };
3197 addTile(254);
3198 newTile.CopyFrom(Style2x2);
3199 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3200 newTile.StyleHorizontal = true;
3201 addTile(96);
3202 newTile.CopyFrom(Style2x2);
3203 newTile.DrawYOffset = 2;
3204 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
3205 newTile.StyleWrapLimit = 4;
3206 newTile.StyleMultiplier = 1;
3207 newTile.RandomStyleRange = 4;
3208 newTile.StyleHorizontal = true;
3209 addTile(485);
3210 newTile.CopyFrom(Style2x2);
3211 newTile.Origin = new Point16(0, 1);
3212 newTile.DrawYOffset = 2;
3213 newTile.RandomStyleRange = 5;
3214 newTile.StyleHorizontal = true;
3215 addTile(457);
3216 newTile.CopyFrom(Style2x2);
3217 newTile.Origin = new Point16(0, 1);
3218 newTile.DrawYOffset = 2;
3219 newTile.StyleHorizontal = true;
3220 addTile(490);
3221 newTile.CopyFrom(Style2x2);
3222 newTile.Origin = new Point16(0, 1);
3223 newTile.LavaDeath = false;
3224 newTile.DrawYOffset = 2;
3225 newTile.StyleWrapLimitVisualOverride = 56;
3226 newTile.styleLineSkipVisualOverride = 2;
3227 addTile(139);
3228 newTile.CopyFrom(Style2x2);
3229 newTile.Origin = new Point16(0, 1);
3230 newTile.RandomStyleRange = 9;
3231 addTile(35);
3232 newTile.CopyFrom(Style2x2);
3233 newTile.DrawYOffset = 2;
3234 newTile.StyleHorizontal = true;
3235 addTile(652);
3236 int styleWrapLimit = 3;
3237 newTile.CopyFrom(Style2x2);
3238 newTile.DrawYOffset = 2;
3239 newTile.StyleHorizontal = true;
3240 newTile.StyleWrapLimit = styleWrapLimit;
3241 addTile(653);
3242 newTile.CopyFrom(Style2x2);
3243 newTile.Origin = new Point16(1, 0);
3244 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3245 newTile.AnchorBottom = AnchorData.Empty;
3246 newTile.DrawYOffset = -2;
3247 addTile(95);
3248 newTile.CopyFrom(Style2x2);
3249 newTile.Origin = new Point16(1, 0);
3250 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3251 newTile.AnchorBottom = AnchorData.Empty;
3252 newTile.DrawYOffset = -2;
3253 addTile(126);
3254 newTile.CopyFrom(Style2x2);
3255 newTile.Origin = new Point16(1, 0);
3256 newTile.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3257 newTile.AnchorBottom = AnchorData.Empty;
3258 newTile.DrawYOffset = -2;
3259 addTile(444);
3260 newTile.CopyFrom(Style2x2);
3261 newTile.WaterDeath = true;
3262 addTile(98);
3263 newTile.CopyFrom(Style2x2);
3264 newTile.CoordinateHeights = new int[2] { 16, 18 };
3265 newSubTile.CopyFrom(newTile);
3266 newSubTile.LavaDeath = false;
3267 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
3268 addSubTile(13, 43);
3269 addTile(172);
3270 newTile.CopyFrom(Style2x2);
3271 addTile(94);
3272 newTile.CopyFrom(Style2x2);
3273 newTile.LavaDeath = false;
3274 addTile(411);
3275 newTile.CopyFrom(Style2x2);
3276 addTile(97);
3277 newTile.CopyFrom(Style2x2);
3278 newTile.LavaDeath = false;
3279 addTile(99);
3280 newTile.CopyFrom(Style2x2);
3281 newTile.DrawYOffset = 2;
3282 newSubTile.CopyFrom(newTile);
3283 newSubTile.LavaDeath = false;
3284 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
3285 addSubTile(25, 42);
3286 newSubTile.CopyFrom(newTile);
3287 newSubTile.WaterDeath = false;
3288 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3289 addSubTile(40);
3290 addTile(100);
3291 newTile.CopyFrom(Style2x2);
3292 addTile(125);
3293 newTile.CopyFrom(Style2x2);
3294 newTile.DrawYOffset = 2;
3295 addTile(621);
3296 newTile.CopyFrom(Style2x2);
3297 newTile.DrawYOffset = 2;
3298 addTile(622);
3299 newTile.CopyFrom(Style2x2);
3300 addTile(173);
3301 newTile.CopyFrom(Style2x2);
3302 addTile(287);
3303 newTile.CopyFrom(Style2x2);
3304 addTile(319);
3305 newTile.CopyFrom(Style2x2);
3306 addTile(287);
3307 newTile.CopyFrom(Style2x2);
3308 newTile.CoordinateHeights = new int[2] { 16, 18 };
3309 newTile.StyleHorizontal = true;
3310 addTile(376);
3311 newTile.CopyFrom(Style2x2);
3312 newTile.CoordinateHeights = new int[2] { 16, 18 };
3313 newTile.LavaDeath = false;
3314 addTile(138);
3315 newTile.CopyFrom(Style2x2);
3316 newTile.CoordinateHeights = new int[2] { 16, 18 };
3317 newTile.LavaDeath = false;
3318 addTile(664);
3319 newTile.CopyFrom(Style2x2);
3320 newTile.CoordinateHeights = new int[2] { 16, 18 };
3321 newTile.DrawYOffset = 2;
3322 newTile.LavaDeath = true;
3323 addTile(654);
3324 newTile.CopyFrom(Style2x2);
3325 newTile.CoordinateHeights = new int[2] { 16, 16 };
3326 newTile.LavaDeath = true;
3327 addTile(484);
3328 newTile.CopyFrom(Style2x2);
3329 newTile.LavaDeath = false;
3330 newTile.DrawYOffset = 2;
3331 addTile(142);
3332 newTile.CopyFrom(Style2x2);
3333 newTile.LavaDeath = false;
3334 newTile.DrawYOffset = 2;
3335 addTile(143);
3336 newTile.CopyFrom(Style2x2);
3337 newTile.DrawYOffset = 2;
3338 addTile(282);
3339 newTile.CopyFrom(Style2x2);
3340 newTile.DrawYOffset = 2;
3341 addTile(543);
3342 newTile.CopyFrom(Style2x2);
3343 newTile.DrawYOffset = 2;
3344 addTile(598);
3345 newTile.CopyFrom(Style2x2);
3346 newTile.DrawYOffset = 2;
3347 addTile(568);
3348 newTile.CopyFrom(Style2x2);
3349 newTile.DrawYOffset = 2;
3350 addTile(569);
3351 newTile.CopyFrom(Style2x2);
3352 newTile.DrawYOffset = 2;
3353 addTile(570);
3354 newTile.CopyFrom(Style2x2);
3355 addTile(288);
3356 newTile.CopyFrom(Style2x2);
3357 addTile(289);
3358 newTile.CopyFrom(Style2x2);
3359 addTile(290);
3360 newTile.CopyFrom(Style2x2);
3361 addTile(291);
3362 newTile.CopyFrom(Style2x2);
3363 addTile(292);
3364 newTile.CopyFrom(Style2x2);
3365 addTile(293);
3366 newTile.CopyFrom(Style2x2);
3367 addTile(294);
3368 newTile.CopyFrom(Style2x2);
3369 addTile(295);
3370 newTile.CopyFrom(Style2x2);
3371 addTile(316);
3372 newTile.CopyFrom(Style2x2);
3373 addTile(317);
3374 newTile.CopyFrom(Style2x2);
3375 addTile(318);
3376 newTile.CopyFrom(Style2x2);
3377 addTile(360);
3378 newTile.CopyFrom(Style2x2);
3379 addTile(580);
3380 newTile.CopyFrom(Style2x2);
3381 addTile(620);
3382 newTile.CopyFrom(Style2x2);
3383 newTile.DrawYOffset = 2;
3384 addTile(565);
3385 newTile.CopyFrom(Style2x2);
3386 newTile.DrawYOffset = 2;
3387 addTile(521);
3388 newTile.CopyFrom(Style2x2);
3389 newTile.DrawYOffset = 2;
3390 addTile(522);
3391 newTile.CopyFrom(Style2x2);
3392 newTile.DrawYOffset = 2;
3393 addTile(523);
3394 newTile.CopyFrom(Style2x2);
3395 newTile.DrawYOffset = 2;
3396 addTile(524);
3397 newTile.CopyFrom(Style2x2);
3398 newTile.DrawYOffset = 2;
3399 addTile(525);
3400 newTile.CopyFrom(Style2x2);
3401 newTile.DrawYOffset = 2;
3402 addTile(526);
3403 newTile.CopyFrom(Style2x2);
3404 newTile.DrawYOffset = 2;
3405 addTile(527);
3406 newTile.CopyFrom(Style2x2);
3407 newTile.DrawYOffset = 2;
3408 addTile(505);
3409 newTile.CopyFrom(Style6x3);
3410 addTile(358);
3411 newTile.CopyFrom(Style6x3);
3412 addTile(359);
3413 newTile.CopyFrom(Style6x3);
3414 addTile(542);
3415 newTile.CopyFrom(StyleSmallCage);
3416 addTile(361);
3417 newTile.CopyFrom(StyleSmallCage);
3418 addTile(362);
3419 newTile.CopyFrom(StyleSmallCage);
3420 addTile(363);
3421 newTile.CopyFrom(StyleSmallCage);
3422 addTile(364);
3423 newTile.CopyFrom(StyleSmallCage);
3424 addTile(544);
3425 newTile.CopyFrom(StyleSmallCage);
3426 addTile(391);
3427 newTile.CopyFrom(StyleSmallCage);
3428 addTile(392);
3429 newTile.CopyFrom(StyleSmallCage);
3430 addTile(393);
3431 newTile.CopyFrom(StyleSmallCage);
3432 addTile(394);
3433 newTile.CopyFrom(Style2x2);
3434 addTile(287);
3435 newTile.CopyFrom(Style2x2);
3436 addTile(335);
3437 newTile.CopyFrom(Style2x2);
3438 newTile.DrawYOffset = 2;
3439 addTile(564);
3440 newTile.CopyFrom(Style2x2);
3441 newTile.DrawYOffset = 2;
3442 addTile(594);
3443 newTile.CopyFrom(Style3x3);
3444 newTile.DrawYOffset = 2;
3445 addTile(354);
3446 newTile.CopyFrom(Style3x3);
3447 newTile.DrawYOffset = 2;
3448 addTile(355);
3449 newTile.CopyFrom(Style3x3);
3450 newTile.DrawYOffset = 2;
3451 addTile(491);
3452 newTile.CopyFrom(Style2xX);
3453 addTile(356);
3454 newTile.CopyFrom(Style2xX);
3455 addTile(663);
3456 newTile.CopyFrom(Style2x2);
3457 newTile.StyleHorizontal = true;
3458 newTile.AnchorBottom = AnchorData.Empty;
3459 newTile.AnchorLeft = new AnchorData(AnchorType.SolidTile, 1, 1);
3460 newTile.AnchorRight = new AnchorData(AnchorType.SolidTile, 1, 1);
3461 newTile.Origin = new Point16(0, 1);
3462 addTile(386);
3463 newTile.CopyFrom(Style2x2);
3464 newTile.StyleHorizontal = true;
3465 newTile.LavaDeath = false;
3466 newTile.DrawYOffset = 2;
3467 newTile.CoordinateHeights = new int[2] { 16, 18 };
3468 newAlternate.CopyFrom(newTile);
3469 newAlternate.AnchorBottom = AnchorData.Empty;
3470 newAlternate.AnchorWall = true;
3471 addAlternate(2);
3472 addTile(132);
3473 newTile.CopyFrom(Style2x2);
3474 newTile.StyleHorizontal = true;
3475 newAlternate.CopyFrom(newTile);
3476 newAlternate.Origin = Point16.Zero;
3477 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3478 newAlternate.AnchorBottom = AnchorData.Empty;
3479 addAlternate(1);
3480 newAlternate.CopyFrom(newTile);
3481 newAlternate.Origin = new Point16(0, 0);
3482 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3483 newAlternate.AnchorBottom = AnchorData.Empty;
3484 addAlternate(2);
3485 newAlternate.CopyFrom(newTile);
3486 newAlternate.Origin = new Point16(1, 0);
3487 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3488 newAlternate.AnchorBottom = AnchorData.Empty;
3489 addAlternate(3);
3490 newTile.Origin = new Point16(0, 1);
3491 newAlternate.CopyFrom(newTile);
3492 newAlternate.Origin = Point16.Zero;
3493 newAlternate.AnchorWall = true;
3494 newAlternate.AnchorBottom = AnchorData.Empty;
3495 addAlternate(4);
3496 addTile(55);
3497 newTile.CopyFrom(Style2x2);
3498 newTile.StyleHorizontal = true;
3499 newAlternate.CopyFrom(newTile);
3500 newAlternate.Origin = Point16.Zero;
3501 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3502 newAlternate.AnchorBottom = AnchorData.Empty;
3503 addAlternate(1);
3504 newAlternate.CopyFrom(newTile);
3505 newAlternate.Origin = new Point16(0, 0);
3506 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3507 newAlternate.AnchorBottom = AnchorData.Empty;
3508 addAlternate(2);
3509 newAlternate.CopyFrom(newTile);
3510 newAlternate.Origin = new Point16(1, 0);
3511 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3512 newAlternate.AnchorBottom = AnchorData.Empty;
3513 addAlternate(3);
3514 newTile.Origin = new Point16(0, 1);
3515 newAlternate.CopyFrom(newTile);
3516 newAlternate.Origin = Point16.Zero;
3517 newAlternate.AnchorWall = true;
3518 newAlternate.AnchorBottom = AnchorData.Empty;
3519 addAlternate(4);
3520 addTile(573);
3521 newTile.CopyFrom(Style2x2);
3522 newTile.StyleHorizontal = true;
3523 newAlternate.CopyFrom(newTile);
3524 newAlternate.Origin = Point16.Zero;
3525 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3526 newAlternate.AnchorBottom = AnchorData.Empty;
3527 addAlternate(1);
3528 newAlternate.CopyFrom(newTile);
3529 newAlternate.Origin = new Point16(0, 0);
3530 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3531 newAlternate.AnchorBottom = AnchorData.Empty;
3532 addAlternate(2);
3533 newAlternate.CopyFrom(newTile);
3534 newAlternate.Origin = new Point16(1, 0);
3535 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3536 newAlternate.AnchorBottom = AnchorData.Empty;
3537 addAlternate(3);
3538 newTile.Origin = new Point16(0, 1);
3539 newAlternate.CopyFrom(newTile);
3540 newAlternate.Origin = Point16.Zero;
3541 newAlternate.AnchorWall = true;
3542 newAlternate.AnchorBottom = AnchorData.Empty;
3543 addAlternate(4);
3544 addTile(425);
3545 newTile.CopyFrom(Style2x2);
3546 newTile.StyleHorizontal = true;
3547 newAlternate.CopyFrom(newTile);
3548 newAlternate.Origin = Point16.Zero;
3549 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3550 newAlternate.AnchorBottom = AnchorData.Empty;
3551 addAlternate(1);
3552 newAlternate.CopyFrom(newTile);
3553 newAlternate.Origin = new Point16(0, 0);
3554 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3555 newAlternate.AnchorBottom = AnchorData.Empty;
3556 addAlternate(2);
3557 newAlternate.CopyFrom(newTile);
3558 newAlternate.Origin = new Point16(1, 0);
3559 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3560 newAlternate.AnchorBottom = AnchorData.Empty;
3561 addAlternate(3);
3562 newTile.Origin = new Point16(0, 1);
3563 newAlternate.CopyFrom(newTile);
3564 newAlternate.Origin = Point16.Zero;
3565 newAlternate.AnchorWall = true;
3566 newAlternate.AnchorBottom = AnchorData.Empty;
3567 addAlternate(4);
3568 addTile(510);
3569 newTile.CopyFrom(Style2x2);
3570 newTile.StyleHorizontal = true;
3571 newAlternate.CopyFrom(newTile);
3572 newAlternate.Origin = Point16.Zero;
3573 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3574 newAlternate.AnchorBottom = AnchorData.Empty;
3575 addAlternate(1);
3576 newAlternate.CopyFrom(newTile);
3577 newAlternate.Origin = new Point16(0, 0);
3578 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3579 newAlternate.AnchorBottom = AnchorData.Empty;
3580 addAlternate(2);
3581 newAlternate.CopyFrom(newTile);
3582 newAlternate.Origin = new Point16(1, 0);
3583 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3584 newAlternate.AnchorBottom = AnchorData.Empty;
3585 addAlternate(3);
3586 newTile.Origin = new Point16(0, 1);
3587 newAlternate.CopyFrom(newTile);
3588 newAlternate.Origin = Point16.Zero;
3589 newAlternate.AnchorWall = true;
3590 newAlternate.AnchorBottom = AnchorData.Empty;
3591 addAlternate(4);
3592 addTile(511);
3593 newTile.CopyFrom(Style2x2);
3594 newTile.Origin = new Point16(0, 1);
3595 newTile.StyleHorizontal = true;
3596 newTile.DrawYOffset = 2;
3597 newTile.LavaDeath = false;
3598 addTile(85);
3599 newTile.CopyFrom(Style2x2);
3600 newTile.StyleHorizontal = true;
3601 newTile.HookPostPlaceMyPlayer = new PlacementHook(TEItemFrame.Hook_AfterPlacement, -1, 0, processedCoordinates: true);
3602 newAlternate.CopyFrom(newTile);
3603 newAlternate.Origin = Point16.Zero;
3604 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3605 newAlternate.AnchorBottom = AnchorData.Empty;
3606 addAlternate(1);
3607 newAlternate.CopyFrom(newTile);
3608 newAlternate.Origin = new Point16(0, 0);
3609 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3610 newAlternate.AnchorBottom = AnchorData.Empty;
3611 addAlternate(2);
3612 newAlternate.CopyFrom(newTile);
3613 newAlternate.Origin = new Point16(1, 0);
3614 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, 2, 0);
3615 newAlternate.AnchorBottom = AnchorData.Empty;
3616 addAlternate(3);
3617 newTile.Origin = new Point16(0, 1);
3618 newAlternate.CopyFrom(newTile);
3619 newAlternate.Origin = Point16.Zero;
3620 newAlternate.AnchorWall = true;
3621 newAlternate.AnchorBottom = AnchorData.Empty;
3622 addAlternate(4);
3623 addTile(395);
3624 newTile.CopyFrom(Style2x2);
3625 addTile(12);
3626 newTile.CopyFrom(Style2x2);
3627 addTile(665);
3628 newTile.CopyFrom(Style2x2);
3629 addTile(639);
3630 newTile.Width = 3;
3631 newTile.Height = 3;
3632 newTile.Origin = new Point16(1, 2);
3633 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3634 newTile.UsesCustomCanPlace = true;
3635 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
3636 newTile.CoordinateWidth = 16;
3637 newTile.CoordinatePadding = 2;
3638 newTile.LavaDeath = true;
3640 newTile.CopyFrom(Style3x3);
3641 addTile(106);
3642 newTile.CopyFrom(Style3x3);
3643 newTile.Direction = TileObjectDirection.PlaceLeft;
3644 newTile.StyleHorizontal = true;
3645 newAlternate.CopyFrom(newTile);
3646 newAlternate.Direction = TileObjectDirection.PlaceRight;
3647 addAlternate(1);
3648 addTile(212);
3649 newTile.CopyFrom(Style3x3);
3650 newTile.DrawYOffset = 2;
3651 addTile(219);
3652 newTile.CopyFrom(Style3x3);
3653 newTile.DrawYOffset = 2;
3654 addTile(642);
3655 newTile.CopyFrom(Style3x3);
3656 newTile.DrawYOffset = 2;
3657 addTile(220);
3658 newTile.CopyFrom(Style3x3);
3659 newTile.DrawYOffset = 2;
3660 addTile(228);
3661 newTile.CopyFrom(Style3x3);
3662 newTile.LavaDeath = false;
3663 newTile.DrawYOffset = 2;
3664 addTile(231);
3665 newTile.CopyFrom(Style3x3);
3666 newTile.DrawYOffset = 2;
3667 addTile(243);
3668 newTile.CopyFrom(Style3x3);
3669 newTile.DrawYOffset = 2;
3670 addTile(247);
3671 newTile.CopyFrom(Style3x3);
3672 newTile.DrawYOffset = 2;
3673 addTile(283);
3674 newTile.CopyFrom(Style3x3);
3675 newTile.DrawYOffset = 2;
3676 addTile(300);
3677 newTile.CopyFrom(Style3x3);
3678 newTile.DrawYOffset = 2;
3679 addTile(301);
3680 newTile.CopyFrom(Style3x3);
3681 newTile.DrawYOffset = 2;
3682 addTile(302);
3683 newTile.CopyFrom(Style3x3);
3684 newTile.DrawYOffset = 2;
3685 addTile(303);
3686 newTile.CopyFrom(Style3x3);
3687 newTile.DrawYOffset = 2;
3688 addTile(304);
3689 newTile.CopyFrom(Style3x3);
3690 newTile.DrawYOffset = 2;
3691 addTile(305);
3692 newTile.CopyFrom(Style3x3);
3693 newTile.DrawYOffset = 2;
3694 addTile(306);
3695 newTile.CopyFrom(Style3x3);
3696 newTile.DrawYOffset = 2;
3697 addTile(307);
3698 newTile.CopyFrom(Style3x3);
3699 newTile.DrawYOffset = 2;
3700 addTile(308);
3701 newTile.CopyFrom(Style3x3);
3702 addTile(406);
3703 newTile.CopyFrom(Style3x3);
3704 addTile(452);
3705 newTile.CopyFrom(Style3x3);
3706 newTile.DrawYOffset = 2;
3707 addTile(412);
3708 newTile.CopyFrom(Style3x3);
3709 newTile.DrawYOffset = 2;
3710 addTile(455);
3711 newTile.CopyFrom(Style3x3);
3712 newTile.DrawYOffset = 2;
3713 addTile(499);
3714 newTile.Width = 1;
3715 newTile.Height = 2;
3716 newTile.Origin = new Point16(0, 1);
3717 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3718 newTile.UsesCustomCanPlace = true;
3719 newTile.CoordinateHeights = new int[2] { 16, 16 };
3720 newTile.CoordinateWidth = 16;
3721 newTile.CoordinatePadding = 2;
3722 newTile.LavaDeath = true;
3724 newTile.CopyFrom(Style1x2);
3725 newTile.CoordinateHeights = new int[2] { 16, 18 };
3726 newTile.Direction = TileObjectDirection.PlaceLeft;
3727 newTile.StyleWrapLimit = 2;
3728 newTile.StyleMultiplier = 2;
3729 newTile.CoordinatePaddingFix = new Point16(0, 2);
3730 newTile.StyleHorizontal = true;
3731 newAlternate.CopyFrom(newTile);
3732 newAlternate.Direction = TileObjectDirection.PlaceRight;
3733 addAlternate(1);
3734 newSubTile.CopyFrom(newTile);
3735 newSubTile.LinkedAlternates = true;
3736 newSubTile.LavaDeath = false;
3737 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
3738 addSubTile(16, 47);
3739 addTile(15);
3740 newTile.CopyFrom(Style1x2);
3741 newTile.CoordinateHeights = new int[2] { 16, 18 };
3742 newTile.Direction = TileObjectDirection.PlaceLeft;
3743 newTile.StyleWrapLimit = 2;
3744 newTile.StyleMultiplier = 2;
3745 newTile.CoordinatePaddingFix = new Point16(0, 2);
3746 newTile.StyleHorizontal = true;
3747 newAlternate.CopyFrom(newTile);
3748 newAlternate.Direction = TileObjectDirection.PlaceRight;
3749 addAlternate(1);
3750 newSubTile.CopyFrom(newTile);
3751 newSubTile.LinkedAlternates = true;
3752 newSubTile.LavaDeath = false;
3753 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
3754 addSubTile(14, 42);
3755 addTile(497);
3756 newTile.CopyFrom(Style1x2);
3757 newTile.CoordinateHeights = new int[2] { 16, 20 };
3758 addTile(216);
3759 newTile.CopyFrom(Style1x2);
3760 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
3761 addTile(390);
3762 newTile.CopyFrom(Style1x2);
3763 addTile(338);
3764 newTile.CopyFrom(Style1x2);
3765 newTile.StyleHorizontal = true;
3766 newTile.StyleWrapLimit = 6;
3767 newTile.DrawStyleOffset = 13 * newTile.StyleWrapLimit;
3768 addTile(493);
3769 newTile.CopyFrom(Style1x2);
3770 newTile.RandomStyleRange = 5;
3771 newTile.CoordinateHeights = new int[2] { 18, 18 };
3772 newTile.CoordinateWidth = 26;
3773 newTile.CoordinatePadding = 2;
3774 newTile.StyleHorizontal = true;
3775 newTile.DrawFlipHorizontal = true;
3776 addTile(567);
3777 newTile.Width = 1;
3778 newTile.Height = 1;
3779 newTile.Origin = new Point16(0, 0);
3780 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3781 newTile.UsesCustomCanPlace = true;
3782 newTile.CoordinateHeights = new int[1] { 16 };
3783 newTile.CoordinateWidth = 16;
3784 newTile.CoordinatePadding = 2;
3785 newTile.LavaDeath = true;
3787 newTile.CopyFrom(Style1x1);
3788 newTile.AnchorBottom = new AnchorData(AnchorType.None, 0, 0);
3789 newTile.LavaDeath = false;
3790 addTile(420);
3791 newTile.CopyFrom(Style1x1);
3792 addTile(624);
3793 newTile.CopyFrom(Style1x1);
3794 addTile(656);
3795 newTile.CopyFrom(Style1x1);
3796 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table, newTile.Width, 0);
3797 newTile.CoordinateHeights = new int[1] { 18 };
3798 newTile.CoordinateWidth = 20;
3799 newTile.LavaDeath = false;
3800 addTile(476);
3801 newTile.CopyFrom(Style1x1);
3802 newTile.LavaDeath = false;
3803 newTile.AnchorBottom = new AnchorData(AnchorType.AlternateTile, newTile.Width, 0);
3804 newTile.AnchorAlternateTiles = new int[2] { 420, 419 };
3805 newTile.StyleHorizontal = true;
3806 newAlternate.CopyFrom(newTile);
3807 newAlternate.Origin = new Point16(0, 1);
3808 newAlternate.AnchorAlternateTiles = new int[1] { 419 };
3809 addTile(419);
3810 newTile.CopyFrom(Style1x1);
3811 newTile.AnchorBottom = new AnchorData(AnchorType.None, 0, 0);
3812 newTile.LavaDeath = false;
3813 newTile.HookPostPlaceMyPlayer = new PlacementHook(TELogicSensor.Hook_AfterPlacement, -1, 0, processedCoordinates: true);
3814 addTile(423);
3815 newTile.CopyFrom(Style1x1);
3816 newTile.AnchorBottom = new AnchorData(AnchorType.None, 0, 0);
3817 newTile.LavaDeath = false;
3818 addTile(424);
3819 newTile.CopyFrom(Style1x1);
3820 newTile.AnchorBottom = new AnchorData(AnchorType.None, 0, 0);
3821 newTile.LavaDeath = false;
3822 addTile(445);
3823 newTile.CopyFrom(Style1x1);
3824 newTile.AnchorBottom = new AnchorData(AnchorType.None, 0, 0);
3825 newTile.LavaDeath = false;
3826 addTile(429);
3827 newTile.CopyFrom(Style1x1);
3828 newTile.AnchorTop = new AnchorData(AnchorType.EmptyTile, newTile.Width, 0);
3829 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide, newTile.Width, 0);
3830 newTile.UsesCustomCanPlace = true;
3831 newTile.DrawFlipHorizontal = true;
3832 newTile.CoordinateHeights = new int[1] { 26 };
3833 newTile.CoordinateWidth = 24;
3834 newTile.DrawYOffset = -8;
3835 newTile.RandomStyleRange = 6;
3836 newTile.StyleHorizontal = true;
3837 addTile(81);
3838 newTile.CopyFrom(Style1x1);
3839 newTile.CoordinateHeights = new int[1] { 18 };
3840 newTile.CoordinatePadding = 0;
3841 newTile.DrawYOffset = 2;
3842 newTile.LavaDeath = false;
3843 addTile(135);
3844 newTile.CopyFrom(Style1x1);
3845 newTile.CoordinateHeights = new int[1] { 18 };
3846 newTile.CoordinatePadding = 0;
3847 newTile.DrawYOffset = 2;
3848 newTile.LavaDeath = false;
3849 addTile(428);
3850 newTile.CopyFrom(Style1x1);
3851 newTile.RandomStyleRange = 2;
3852 newTile.LavaDeath = false;
3853 addTile(141);
3854 newTile.CopyFrom(Style1x1);
3855 newTile.StyleHorizontal = true;
3856 newTile.LavaDeath = false;
3857 addTile(144);
3858 newTile.CopyFrom(Style1x1);
3859 newTile.DrawYOffset = 2;
3860 addTile(210);
3861 newTile.CopyFrom(Style1x1);
3862 newTile.StyleHorizontal = true;
3863 newTile.LavaDeath = false;
3864 addTile(239);
3865 newTile.CopyFrom(Style1x1);
3866 newTile.DrawYOffset = 2;
3867 newTile.StyleHorizontal = true;
3868 addTile(650);
3869 newTile.CopyFrom(Style1x1);
3870 newTile.StyleHorizontal = true;
3871 newTile.RandomStyleRange = 7;
3872 addTile(36);
3873 newTile.CopyFrom(Style1x1);
3874 newTile.UsesCustomCanPlace = true;
3875 newTile.DrawFlipHorizontal = true;
3876 newTile.RandomStyleRange = 3;
3877 newTile.StyleMultiplier = 3;
3878 newTile.StyleWrapLimit = 3;
3879 newTile.StyleHorizontal = true;
3880 newTile.CoordinateHeights = new int[1] { 20 };
3881 newTile.CoordinateWidth = 20;
3882 newTile.DrawYOffset = -2;
3883 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
3884 addTile(324);
3885 newTile.CopyFrom(Style1x1);
3886 newTile.CoordinateHeights = new int[1] { 16 };
3887 newTile.CoordinateWidth = 16;
3888 newTile.DrawYOffset = 2;
3889 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide, newTile.Width, 0);
3890 addTile(593);
3891 newTile.CopyFrom(Style1x1);
3892 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide | AnchorType.AlternateTile, newTile.Width, 0);
3893 newTile.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
3894 newTile.StyleHorizontal = true;
3895 newAlternate.CopyFrom(newTile);
3896 newAlternate.AnchorBottom = AnchorData.Empty;
3897 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.AlternateTile | AnchorType.SolidBottom, newTile.Width, 0);
3898 addAlternate(1);
3899 newAlternate.CopyFrom(newTile);
3900 newAlternate.AnchorBottom = AnchorData.Empty;
3901 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3902 addAlternate(2);
3903 newAlternate.CopyFrom(newTile);
3904 newAlternate.AnchorBottom = AnchorData.Empty;
3905 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3906 addAlternate(3);
3907 newAlternate.CopyFrom(newTile);
3908 newAlternate.AnchorBottom = AnchorData.Empty;
3909 newAlternate.AnchorWall = true;
3910 addAlternate(4);
3911 addTile(630);
3912 newTile.CopyFrom(Style1x1);
3913 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.SolidSide | AnchorType.AlternateTile, newTile.Width, 0);
3914 newTile.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
3915 newTile.StyleHorizontal = true;
3916 newAlternate.CopyFrom(newTile);
3917 newAlternate.AnchorBottom = AnchorData.Empty;
3918 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.AlternateTile | AnchorType.SolidBottom, newTile.Width, 0);
3919 addAlternate(1);
3920 newAlternate.CopyFrom(newTile);
3921 newAlternate.AnchorBottom = AnchorData.Empty;
3922 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3923 addAlternate(2);
3924 newAlternate.CopyFrom(newTile);
3925 newAlternate.AnchorBottom = AnchorData.Empty;
3926 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3927 addAlternate(3);
3928 newAlternate.CopyFrom(newTile);
3929 newAlternate.AnchorBottom = AnchorData.Empty;
3930 newAlternate.AnchorWall = true;
3931 addAlternate(4);
3932 addTile(631);
3933 newTile.Width = 1;
3934 newTile.Height = 1;
3935 newTile.Origin = new Point16(0, 0);
3936 newTile.UsesCustomCanPlace = true;
3937 newTile.CoordinateHeights = new int[1] { 16 };
3938 newTile.CoordinateWidth = 16;
3939 newTile.CoordinatePadding = 2;
3940 newTile.StyleHorizontal = true;
3941 newTile.FlattenAnchors = true;
3943 newTile.CopyFrom(StyleSwitch);
3944 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, newTile.Width, 0);
3945 newAlternate.CopyFrom(StyleSwitch);
3946 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3947 newAlternate.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
3948 newAlternate.DrawXOffset = -2;
3949 addAlternate(1);
3950 newAlternate.CopyFrom(StyleSwitch);
3951 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3952 newAlternate.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
3953 newAlternate.DrawXOffset = 2;
3954 addAlternate(2);
3955 newAlternate.CopyFrom(StyleSwitch);
3956 newAlternate.AnchorWall = true;
3957 addAlternate(3);
3958 newTile.DrawYOffset = 2;
3959 addTile(136);
3960 newTile.Width = 1;
3961 newTile.Height = 1;
3962 newTile.Origin = new Point16(0, 0);
3963 newTile.FlattenAnchors = true;
3964 newTile.UsesCustomCanPlace = false;
3965 newTile.CoordinateHeights = new int[1] { 20 };
3966 newTile.DrawStepDown = 2;
3967 newTile.CoordinateWidth = 20;
3968 newTile.CoordinatePadding = 2;
3969 newTile.StyleMultiplier = 6;
3970 newTile.StyleWrapLimit = 6;
3971 newTile.StyleHorizontal = true;
3972 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
3973 newTile.LavaPlacement = LiquidPlacement.NotAllowed;
3974 newTile.WaterDeath = true;
3975 newTile.LavaDeath = true;
3977 newTile.CopyFrom(StyleTorch);
3978 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide, newTile.Width, 0);
3979 newAlternate.CopyFrom(StyleTorch);
3980 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3981 newAlternate.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
3982 addAlternate(1);
3983 newAlternate.CopyFrom(StyleTorch);
3984 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile, newTile.Height, 0);
3985 newAlternate.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
3986 addAlternate(2);
3987 newAlternate.CopyFrom(StyleTorch);
3988 newAlternate.AnchorWall = true;
3989 addAlternate(0);
3990 newSubTile.CopyFrom(newTile);
3991 newSubTile.LinkedAlternates = true;
3992 newSubTile.WaterDeath = false;
3993 newSubTile.LavaDeath = false;
3994 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
3995 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
3996 addSubTile(8);
3997 newSubTile.CopyFrom(newTile);
3998 newSubTile.LinkedAlternates = true;
3999 newSubTile.WaterDeath = false;
4000 newSubTile.LavaDeath = false;
4001 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
4002 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
4003 addSubTile(11);
4004 newSubTile.CopyFrom(newTile);
4005 newSubTile.LinkedAlternates = true;
4006 newSubTile.WaterDeath = false;
4007 newSubTile.LavaDeath = false;
4008 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
4009 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
4010 addSubTile(17);
4011 addTile(4);
4012 newTile.Width = 1;
4013 newTile.Height = 1;
4014 newTile.Origin = new Point16(0, 0);
4015 newTile.FlattenAnchors = true;
4016 newTile.UsesCustomCanPlace = true;
4017 newTile.CoordinateHeights = new int[1] { 20 };
4018 newTile.DrawStepDown = 2;
4019 newTile.CoordinateWidth = 20;
4020 newTile.CoordinatePadding = 2;
4021 newTile.StyleHorizontal = true;
4022 newTile.WaterDeath = false;
4023 newTile.LavaDeath = false;
4024 newTile.StyleWrapLimit = 4;
4025 newTile.StyleMultiplier = 4;
4026 newTile.HookCheckIfCanPlace = new PlacementHook(WorldGen.CanPlaceProjectilePressurePad, -1, 0, processedCoordinates: true);
4027 newAlternate.CopyFrom(newTile);
4028 newAlternate.AnchorTop = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile | AnchorType.EmptyTile | AnchorType.SolidBottom, newTile.Width, 0);
4029 newAlternate.DrawStepDown = 0;
4030 newAlternate.DrawYOffset = -4;
4031 addAlternate(1);
4032 newAlternate.CopyFrom(newTile);
4033 newAlternate.AnchorLeft = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile | AnchorType.EmptyTile | AnchorType.SolidBottom, newTile.Height, 0);
4034 newAlternate.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
4035 newAlternate.DrawXOffset = -2;
4036 newAlternate.DrawYOffset = -2;
4037 addAlternate(2);
4038 newAlternate.CopyFrom(newTile);
4039 newAlternate.AnchorRight = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile | AnchorType.EmptyTile | AnchorType.SolidBottom, newTile.Height, 0);
4040 newAlternate.AnchorAlternateTiles = new int[7] { 124, 561, 574, 575, 576, 577, 578 };
4041 newAlternate.DrawXOffset = 2;
4042 newAlternate.DrawYOffset = -2;
4043 addAlternate(3);
4044 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.SolidWithTop | AnchorType.Table | AnchorType.SolidSide | AnchorType.Tree | AnchorType.AlternateTile | AnchorType.EmptyTile | AnchorType.SolidBottom, newTile.Width, 0);
4045 addTile(442);
4046 newTile.Width = 1;
4047 newTile.Height = 1;
4048 newTile.Origin = Point16.Zero;
4049 newTile.UsesCustomCanPlace = true;
4050 newTile.CoordinateHeights = new int[1] { 20 };
4051 newTile.CoordinateWidth = 16;
4052 newTile.CoordinatePadding = 2;
4053 newTile.DrawYOffset = -1;
4054 newTile.StyleHorizontal = true;
4055 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile | AnchorType.AlternateTile, newTile.Width, 0);
4056 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
4057 newTile.LavaDeath = true;
4058 newTile.LavaPlacement = LiquidPlacement.NotAllowed;
4060 newTile.CopyFrom(StyleAlch);
4061 newTile.AnchorValidTiles = new int[4] { 2, 477, 109, 492 };
4062 newTile.AnchorAlternateTiles = new int[1] { 78 };
4063 newSubTile.CopyFrom(StyleAlch);
4064 newSubTile.AnchorValidTiles = new int[1] { 60 };
4065 newSubTile.AnchorAlternateTiles = new int[1] { 78 };
4066 addSubTile(1);
4067 newSubTile.CopyFrom(StyleAlch);
4068 newSubTile.AnchorValidTiles = new int[2] { 0, 59 };
4069 newSubTile.AnchorAlternateTiles = new int[1] { 78 };
4070 addSubTile(2);
4071 newSubTile.CopyFrom(StyleAlch);
4072 newSubTile.AnchorValidTiles = new int[4] { 199, 203, 25, 23 };
4073 newSubTile.AnchorAlternateTiles = new int[1] { 78 };
4074 addSubTile(3);
4075 newSubTile.CopyFrom(StyleAlch);
4076 newSubTile.AnchorValidTiles = new int[2] { 53, 116 };
4077 newSubTile.AnchorAlternateTiles = new int[1] { 78 };
4078 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
4079 addSubTile(4);
4080 newSubTile.CopyFrom(StyleAlch);
4081 newSubTile.AnchorValidTiles = new int[2] { 57, 633 };
4082 newSubTile.AnchorAlternateTiles = new int[1] { 78 };
4083 newSubTile.LavaPlacement = LiquidPlacement.Allowed;
4084 newSubTile.LavaDeath = false;
4085 addSubTile(5);
4086 newSubTile.CopyFrom(StyleAlch);
4087 newSubTile.AnchorValidTiles = new int[5] { 147, 161, 163, 164, 200 };
4088 newSubTile.AnchorAlternateTiles = new int[1] { 78 };
4089 newSubTile.WaterPlacement = LiquidPlacement.Allowed;
4090 addSubTile(6);
4091 addTile(82);
4092 newTile.FullCopyFrom(82);
4093 addTile(83);
4094 newTile.FullCopyFrom(83);
4095 addTile(84);
4096 newTile.Width = 3;
4097 newTile.Height = 3;
4098 newTile.Origin = new Point16(1, 1);
4099 newTile.AnchorWall = true;
4100 newTile.UsesCustomCanPlace = true;
4101 newTile.CoordinateHeights = new int[3] { 16, 16, 16 };
4102 newTile.CoordinateWidth = 16;
4103 newTile.CoordinatePadding = 2;
4104 newTile.LavaDeath = true;
4106 newTile.CopyFrom(Style3x3Wall);
4107 newTile.StyleHorizontal = true;
4108 newTile.StyleWrapLimit = 36;
4109 addTile(240);
4110 newTile.CopyFrom(Style3x3Wall);
4111 newTile.StyleHorizontal = true;
4112 newTile.StyleWrapLimit = 36;
4113 addTile(440);
4114 newTile.CopyFrom(Style3x3Wall);
4115 newTile.Direction = TileObjectDirection.PlaceLeft;
4116 newTile.StyleHorizontal = true;
4117 newTile.LavaDeath = false;
4118 newAlternate.CopyFrom(newTile);
4119 newAlternate.Direction = TileObjectDirection.PlaceRight;
4120 addAlternate(1);
4121 addTile(334);
4122 newTile.CopyFrom(Style3x3Wall);
4123 newTile.Direction = TileObjectDirection.PlaceLeft;
4124 newTile.StyleHorizontal = true;
4125 newTile.LavaDeath = false;
4126 newTile.HookPostPlaceMyPlayer = new PlacementHook(TEWeaponsRack.Hook_AfterPlacement, -1, 0, processedCoordinates: true);
4127 newAlternate.CopyFrom(newTile);
4128 newAlternate.Direction = TileObjectDirection.PlaceRight;
4129 addAlternate(1);
4130 addTile(471);
4131 newTile.CopyFrom(Style3x3Wall);
4132 newTile.Width = 2;
4133 newTile.Height = 3;
4134 newTile.Origin = new Point16(0, 1);
4135 newTile.StyleHorizontal = true;
4136 newSubTile.CopyFrom(newTile);
4137 newSubTile.RandomStyleRange = 4;
4138 addSubTile(15);
4139 addTile(245);
4140 newTile.CopyFrom(Style3x3Wall);
4141 newTile.Width = 3;
4142 newTile.Height = 2;
4143 newTile.Origin = new Point16(1, 0);
4144 newTile.CoordinateHeights = new int[2] { 16, 16 };
4145 addTile(246);
4146 newTile.CopyFrom(Style3x3Wall);
4147 newTile.Width = 4;
4148 newTile.Height = 3;
4149 newTile.Origin = new Point16(1, 1);
4150 newTile.RandomStyleRange = 9;
4151 addTile(241);
4152 newTile.CopyFrom(Style3x3Wall);
4153 newTile.Width = 6;
4154 newTile.Height = 4;
4155 newTile.Origin = new Point16(2, 2);
4156 newTile.CoordinateHeights = new int[4] { 16, 16, 16, 16 };
4157 newTile.StyleWrapLimit = 27;
4158 addTile(242);
4159 newTile.Width = 2;
4160 newTile.Height = 4;
4161 newTile.Origin = new Point16(0, 3);
4162 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
4163 newTile.UsesCustomCanPlace = true;
4164 newTile.CoordinateHeights = new int[4] { 16, 16, 16, 18 };
4165 newTile.CoordinateWidth = 16;
4166 newTile.CoordinatePadding = 2;
4167 newTile.AnchorValidTiles = new int[6] { 2, 477, 109, 60, 492, 633 };
4168 newTile.StyleHorizontal = true;
4169 newTile.RandomStyleRange = 3;
4170 newTile.LavaDeath = true;
4171 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
4172 addTile(27);
4173 newTile.Width = 1;
4174 newTile.Height = 2;
4175 newTile.Origin = new Point16(0, 1);
4176 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
4177 newTile.UsesCustomCanPlace = true;
4178 newTile.CoordinateHeights = new int[2] { 16, 18 };
4179 newTile.CoordinateWidth = 16;
4180 newTile.CoordinatePadding = 2;
4181 newTile.AnchorValidTiles = new int[2] { 2, 477 };
4182 newTile.StyleHorizontal = true;
4183 newTile.DrawFlipHorizontal = true;
4184 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
4185 newTile.LavaDeath = true;
4186 newTile.RandomStyleRange = 3;
4187 newAlternate.CopyFrom(newTile);
4188 newAlternate.AnchorValidTiles = new int[1] { 147 };
4189 addAlternate(3);
4190 newAlternate.CopyFrom(newTile);
4191 newAlternate.AnchorValidTiles = new int[1] { 60 };
4192 addAlternate(6);
4193 newAlternate.CopyFrom(newTile);
4194 newAlternate.AnchorValidTiles = new int[2] { 23, 661 };
4195 addAlternate(9);
4196 newAlternate.CopyFrom(newTile);
4197 newAlternate.AnchorValidTiles = new int[2] { 199, 662 };
4198 addAlternate(12);
4199 newAlternate.CopyFrom(newTile);
4200 newAlternate.AnchorValidTiles = new int[2] { 109, 492 };
4201 addAlternate(15);
4202 newAlternate.CopyFrom(newTile);
4203 newAlternate.AnchorValidTiles = new int[1] { 53 };
4204 addAlternate(18);
4205 newAlternate.CopyFrom(newTile);
4206 newAlternate.AnchorValidTiles = new int[1] { 116 };
4207 addAlternate(21);
4208 newAlternate.CopyFrom(newTile);
4209 newAlternate.AnchorValidTiles = new int[1] { 234 };
4210 addAlternate(24);
4211 newAlternate.CopyFrom(newTile);
4212 newAlternate.AnchorValidTiles = new int[1] { 112 };
4213 addAlternate(27);
4214 newAlternate.CopyFrom(newTile);
4215 newAlternate.AnchorValidTiles = new int[1] { 633 };
4216 addAlternate(30);
4217 addTile(20);
4218 newTile.Width = 1;
4219 newTile.Height = 2;
4220 newTile.Origin = new Point16(0, 1);
4221 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
4222 newTile.UsesCustomCanPlace = true;
4223 newTile.CoordinateHeights = new int[2] { 16, 18 };
4224 newTile.CoordinateWidth = 16;
4225 newTile.CoordinatePadding = 2;
4226 newTile.AnchorValidTiles = new int[15]
4227 {
4228 1, 25, 117, 203, 182, 180, 179, 381, 183, 181,
4229 534, 536, 539, 625, 627
4230 };
4231 newTile.StyleHorizontal = true;
4232 newTile.DrawFlipHorizontal = true;
4233 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
4234 newTile.LavaDeath = false;
4235 newTile.RandomStyleRange = 3;
4236 newTile.StyleMultiplier = 3;
4237 newTile.StyleHorizontal = true;
4238 addTile(590);
4239 newTile.Width = 1;
4240 newTile.Height = 2;
4241 newTile.Origin = new Point16(0, 1);
4242 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
4243 newTile.UsesCustomCanPlace = true;
4244 newTile.CoordinateHeights = new int[2] { 16, 18 };
4245 newTile.CoordinateWidth = 16;
4246 newTile.CoordinatePadding = 2;
4247 newTile.AnchorValidTiles = new int[7] { 2, 477, 492, 60, 109, 199, 23 };
4248 newTile.StyleHorizontal = true;
4249 newTile.DrawFlipHorizontal = true;
4250 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
4251 newTile.LavaDeath = false;
4252 newTile.RandomStyleRange = 3;
4253 newTile.StyleMultiplier = 3;
4254 newTile.StyleHorizontal = true;
4255 addTile(595);
4256 newTile.Width = 1;
4257 newTile.Height = 2;
4258 newTile.Origin = new Point16(0, 1);
4259 newTile.AnchorBottom = new AnchorData(AnchorType.SolidTile, newTile.Width, 0);
4260 newTile.UsesCustomCanPlace = true;
4261 newTile.CoordinateHeights = new int[2] { 16, 18 };
4262 newTile.CoordinateWidth = 16;
4263 newTile.CoordinatePadding = 2;
4264 newTile.AnchorValidTiles = new int[7] { 2, 477, 492, 60, 109, 199, 23 };
4265 newTile.StyleHorizontal = true;
4266 newTile.DrawFlipHorizontal = true;
4267 newTile.WaterPlacement = LiquidPlacement.NotAllowed;
4268 newTile.LavaDeath = false;
4269 newTile.RandomStyleRange = 3;
4270 newTile.StyleMultiplier = 3;
4271 newTile.StyleHorizontal = true;
4272 addTile(615);
4273 readOnlyData = true;
4274 }
4275
4276 public static bool CustomPlace(int type, int style)
4277 {
4278 if (type < 0 || type >= _data.Count || style < 0)
4279 {
4280 return false;
4281 }
4283 if (tileObjectData == null)
4284 {
4285 return false;
4286 }
4288 if (subTiles != null && style < subTiles.Count)
4289 {
4291 if (tileObjectData2 != null)
4292 {
4293 return tileObjectData2._usesCustomCanPlace;
4294 }
4295 }
4296 return tileObjectData._usesCustomCanPlace;
4297 }
4298
4299 public static bool CheckLiquidPlacement(int type, int style, Tile checkTile)
4300 {
4301 return GetTileData(type, style)?.LiquidPlace(checkTile) ?? LiquidPlace(type, checkTile);
4302 }
4303
4304 public static bool LiquidPlace(int type, Tile checkTile)
4305 {
4306 if (checkTile == null)
4307 {
4308 return false;
4309 }
4310 if (checkTile.liquid > 0)
4311 {
4312 switch (checkTile.liquidType())
4313 {
4314 case 1:
4315 if (Main.tileLavaDeath[type])
4316 {
4317 return false;
4318 }
4319 break;
4320 case 0:
4321 case 2:
4322 case 3:
4324 {
4325 return false;
4326 }
4327 break;
4328 }
4329 }
4330 return true;
4331 }
4332
4333 public static bool CheckWaterDeath(int type, int style)
4334 {
4335 return GetTileData(type, style)?.WaterDeath ?? Main.tileWaterDeath[type];
4336 }
4337
4338 public static bool CheckWaterDeath(Tile checkTile)
4339 {
4340 if (!checkTile.active())
4341 {
4342 return false;
4343 }
4344 return GetTileData(checkTile)?.WaterDeath ?? Main.tileWaterDeath[checkTile.type];
4345 }
4346
4347 public static bool CheckLavaDeath(int type, int style)
4348 {
4349 return GetTileData(type, style)?.LavaDeath ?? Main.tileLavaDeath[type];
4350 }
4351
4352 public static bool CheckLavaDeath(Tile checkTile)
4353 {
4354 if (!checkTile.active())
4355 {
4356 return false;
4357 }
4358 return GetTileData(checkTile)?.LavaDeath ?? Main.tileLavaDeath[checkTile.type];
4359 }
4360
4361 public static int PlatformFrameWidth()
4362 {
4363 return _data[19].CoordinateFullWidth;
4364 }
4365
4366 public static TileObjectData GetTileData(int type, int style, int alternate = 0)
4367 {
4368 if (type < 0 || type >= _data.Count)
4369 {
4370 throw new ArgumentOutOfRangeException("Function called with a bad type argument");
4371 }
4372 if (style < 0)
4373 {
4374 throw new ArgumentOutOfRangeException("Function called with a bad style argument");
4375 }
4377 if (tileObjectData == null)
4378 {
4379 return null;
4380 }
4382 if (subTiles != null && style < subTiles.Count)
4383 {
4385 if (tileObjectData2 != null)
4386 {
4388 }
4389 }
4390 alternate--;
4392 if (alternates != null && alternate >= 0 && alternate < alternates.Count)
4393 {
4395 if (tileObjectData3 != null)
4396 {
4398 }
4399 }
4400 return tileObjectData;
4401 }
4402
4404 {
4405 if (getTile == null || !getTile.active())
4406 {
4407 return null;
4408 }
4409 int type = getTile.type;
4410 if (type < 0 || type >= _data.Count)
4411 {
4412 throw new ArgumentOutOfRangeException("Function called with a bad tile type");
4413 }
4415 if (tileObjectData == null)
4416 {
4417 return null;
4418 }
4419 int num = getTile.frameX / tileObjectData.CoordinateFullWidth;
4420 int num2 = getTile.frameY / tileObjectData.CoordinateFullHeight;
4421 int num3 = tileObjectData.StyleWrapLimit;
4422 if (num3 == 0)
4423 {
4424 num3 = 1;
4425 }
4426 int num4 = ((!tileObjectData.StyleHorizontal) ? (num * num3 + num2) : (num2 * num3 + num));
4427 int num5 = num4 / tileObjectData.StyleMultiplier;
4428 int num6 = num4 % tileObjectData.StyleMultiplier;
4429 int styleLineSkip = tileObjectData.StyleLineSkip;
4430 if (styleLineSkip > 1)
4431 {
4432 if (tileObjectData.StyleHorizontal)
4433 {
4434 num5 = num2 / styleLineSkip * num3 + num;
4435 num6 = num2 % styleLineSkip;
4436 }
4437 else
4438 {
4439 num5 = num / styleLineSkip * num3 + num2;
4440 num6 = num % styleLineSkip;
4441 }
4442 }
4443 if (tileObjectData.SubTiles != null && num5 >= 0 && num5 < tileObjectData.SubTiles.Count)
4444 {
4446 if (tileObjectData2 != null)
4447 {
4449 }
4450 }
4451 if (tileObjectData._alternates != null)
4452 {
4453 for (int i = 0; i < tileObjectData.Alternates.Count; i++)
4454 {
4456 if (tileObjectData3 != null && num6 >= tileObjectData3.Style && num6 <= tileObjectData3.Style + tileObjectData3.RandomStyleRange)
4457 {
4458 return tileObjectData3;
4459 }
4460 }
4461 }
4462 return tileObjectData;
4463 }
4464
4465 public static void SyncObjectPlacement(int tileX, int tileY, int type, int style, int dir)
4466 {
4467 NetMessage.SendData(17, -1, -1, null, 1, tileX, tileY, type, style);
4468 GetTileData(type, style);
4469 }
4470
4471 public static bool CallPostPlacementPlayerHook(int tileX, int tileY, int type, int style, int dir, int alternate, TileObject data)
4472 {
4474 if (tileData == null || tileData._placementHooks == null || tileData._placementHooks.postPlaceMyPlayer.hook == null)
4475 {
4476 return false;
4477 }
4478 PlacementHook postPlaceMyPlayer = tileData._placementHooks.postPlaceMyPlayer;
4479 if (postPlaceMyPlayer.processedCoordinates)
4480 {
4481 tileX -= tileData.Origin.X;
4482 tileY -= tileData.Origin.Y;
4483 }
4484 return postPlaceMyPlayer.hook(tileX, tileY, type, style, dir, data.alternate) == postPlaceMyPlayer.badReturn;
4485 }
4486
4487 public static void OriginToTopLeft(int type, int style, ref Point16 baseCoords)
4488 {
4490 if (tileData != null)
4491 {
4492 baseCoords = new Point16(baseCoords.X - tileData.Origin.X, baseCoords.Y - tileData.Origin.Y);
4493 }
4494 }
4495}
static int AfterPlacement_Hook(int x, int y, int type=21, int style=0, int direction=1, int alternate=0)
Definition Chest.cs:607
static int FindEmptyChest(int x, int y, int type=21, int style=0, int direction=1, int alternate=0)
Definition Chest.cs:570
static int Hook_AfterPlacement(int x, int y, int type=470, int style=0, int direction=1, int alternate=0)
static int Hook_AfterPlacement(int x, int y, int type=520, int style=0, int direction=1, int alternate=0)
static int Hook_AfterPlacement(int x, int y, int type=475, int style=0, int direction=1, int alternate=0)
Definition TEHatRack.cs:77
static int Hook_AfterPlacement(int x, int y, int type=395, int style=0, int direction=1, int alternate=0)
static int Hook_AfterPlacement(int x, int y, int type=423, int style=0, int direction=1, int alternate=0)
static int PlacementPreviewHook_CheckIfCanPlace(int x, int y, int type=597, int style=0, int direction=1, int alternate=0)
static int PlacementPreviewHook_AfterPlacement(int x, int y, int type=597, int style=0, int direction=1, int alternate=0)
static int Hook_AfterPlacement(int x, int y, int type=378, int style=0, int direction=1, int alternate=0)
static int Hook_AfterPlacement(int x, int y, int type=471, int style=0, int direction=1, int alternate=0)
static readonly ushort Count
Definition TileID.cs:1698
static bool[] tileWaterDeath
Definition Main.cs:1455
static bool[] tileLavaDeath
Definition Main.cs:1457
static void SendData(int msgType, int remoteClient=-1, int ignoreClient=-1, NetworkText text=null, int number=0, float number2=0f, float number3=0f, float number4=0f, int number5=0, int number6=0, int number7=0)
Definition NetMessage.cs:88
List< TileObjectData > Alternates
TileObjectCoordinatesModule _tileObjectCoords
static bool CheckLiquidPlacement(int type, int style, Tile checkTile)
static TileObjectData StyleOnTable1x1
LiquidPlacementModule _liquidPlacement
static bool CustomPlace(int type, int style)
static TileObjectData _baseObject
static List< TileObjectData > _data
static void SyncObjectPlacement(int tileX, int tileY, int type, int style, int dir)
static bool CheckLavaDeath(Tile checkTile)
static bool CallPostPlacementPlayerHook(int tileX, int tileY, int type, int style, int dir, int alternate, TileObject data)
TileObjectStyleModule _tileObjectStyle
static void addAlternate(int baseStyle)
static bool CheckWaterDeath(int type, int style)
TileObjectData(TileObjectData copyFrom=null)
static bool CheckLavaDeath(int type, int style)
TilePlacementHooksModule _placementHooks
TileObjectBaseModule _tileObjectBase
static TileObjectData StyleSmallCage
void CopyFrom(TileObjectData copy)
TileObjectSubTilesModule _subTiles
int CalculatePlacementStyle(int style, int alternate, int random)
static TileObjectData GetTileData(Tile getTile)
static void addBaseTile(out TileObjectData baseTile)
TileObjectAlternatesModule _alternates
static void addSubTile(params int[] styles)
static bool CheckWaterDeath(Tile checkTile)
static TileObjectData StyleSwitch
static TileObjectData GetTileData(int type, int style, int alternate=0)
static TileObjectData newAlternate
void FullCopyFrom(TileObjectData copy)
static void OriginToTopLeft(int type, int style, ref Point16 baseCoords)
static bool LiquidPlace(int type, Tile checkTile)
TileObjectDrawModule _tileObjectDraw
static void addTile(int tileType)
static TileObjectData Style1x2Top
static int PlaceXmasTree_Direct(int x, int y, int type, int style, int dir, int alternate)
static int CanPlaceProjectilePressurePad(int x, int y, int type=442, int style=0, int direction=0, int alternate=0)
Func< int, int, int, int, int, int, int > hook