Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / room / AutoTileConfig.cs
@小李xl 小李xl on 28 Dec 2023 22 KB 地牢新版地形开发中
  1.  
  2. using System.Collections.Generic;
  3. using Godot;
  4.  
  5. /// <summary>
  6. /// 房间图块配置信息
  7. /// </summary>
  8. public class AutoTileConfig
  9. {
  10. public TileCellData Floor = new TileCellData(0, new Vector2I(0, 4), TerrainPeering.None, GameConfig.FloorMapLayer);
  11. public TileCellData TopMask;
  12. public TileCellData Wall_Bottom;
  13. public TileCellData Wall_Left;
  14. public TileCellData Wall_Right;
  15. public TileCellData Wall_Top;
  16. public TileCellData Wall_Out_LB;
  17. public TileCellData Wall_Out_LT;
  18. public TileCellData Wall_Out_RB;
  19. public TileCellData Wall_Out_RT;
  20. public TileCellData Wall_In_LT;
  21. public TileCellData Wall_In_LB;
  22. public TileCellData Wall_In_RT;
  23. public TileCellData Wall_In_RB;
  24. public TileCellData Wall_Vertical_Left = new TileCellData(0, new Vector2I(1, 4), TerrainPeering.None, GameConfig.MiddleMapLayer);
  25. public TileCellData Wall_Vertical_Center = new TileCellData(0, new Vector2I(2, 4), TerrainPeering.None, GameConfig.MiddleMapLayer);
  26. public TileCellData Wall_Vertical_Right = new TileCellData(0, new Vector2I(3, 4), TerrainPeering.None, GameConfig.MiddleMapLayer);
  27. public TileCellData Wall_Vertical_Single = new TileCellData(0, new Vector2I(4, 4), TerrainPeering.None, GameConfig.MiddleMapLayer);
  28. //----------------------------- 所有自动图块数据 -----------------------------
  29. //----------------------------- 命名规则: Auto_ + LT + T + RT + _ + L + C + R + _ + LB + B + RB
  30. //第一列
  31. public TileCellData Auto_000_010_010;
  32. public TileCellData Auto_010_010_010;
  33. public TileCellData Auto_010_010_000;
  34. public TileCellData Auto_000_010_000;
  35. //第二列
  36. public TileCellData Auto_000_011_010;
  37. public TileCellData Auto_010_011_010;
  38. public TileCellData Auto_010_011_000;
  39. public TileCellData Auto_000_011_000;
  40. //第三列
  41. public TileCellData Auto_000_111_010;
  42. public TileCellData Auto_010_111_010;
  43. public TileCellData Auto_010_111_000;
  44. public TileCellData Auto_000_111_000;
  45. //第四列
  46. public TileCellData Auto_000_110_010;
  47. public TileCellData Auto_010_110_010;
  48. public TileCellData Auto_010_110_000;
  49. public TileCellData Auto_000_110_000;
  50. //第五列
  51. public TileCellData Auto_110_111_010;
  52. public TileCellData Auto_010_011_011;
  53. public TileCellData Auto_011_011_010;
  54. public TileCellData Auto_010_111_110;
  55. //第六列
  56. public TileCellData Auto_000_111_011;
  57. public TileCellData Auto_011_111_111;
  58. public TileCellData Auto_111_111_011;
  59. public TileCellData Auto_011_111_000;
  60. //第七列
  61. public TileCellData Auto_000_111_110;
  62. public TileCellData Auto_110_111_111;
  63. public TileCellData Auto_111_111_110;
  64. public TileCellData Auto_110_111_000;
  65. //第八列
  66. public TileCellData Auto_011_111_010;
  67. public TileCellData Auto_010_110_110;
  68. public TileCellData Auto_110_110_010;
  69. public TileCellData Auto_010_111_011;
  70. //第九列
  71. public TileCellData Auto_000_011_011;
  72. public TileCellData Auto_011_011_011;
  73. public TileCellData Auto_011_111_011;
  74. public TileCellData Auto_011_011_000;
  75. //第十列
  76. public TileCellData Auto_010_111_111;
  77. public TileCellData Auto_110_111_011;
  78. public TileCellData Auto_111_111_111;
  79. public TileCellData Auto_111_111_000;
  80. //第十一列
  81. public TileCellData Auto_000_111_111;
  82. public TileCellData Auto_011_111_110;
  83. public TileCellData Auto_111_111_010;
  84. //第十二列
  85. public TileCellData Auto_000_110_110;
  86. public TileCellData Auto_110_111_110;
  87. public TileCellData Auto_110_110_110;
  88. public TileCellData Auto_110_110_000;
  89. //-------------------------------------------------------------------------
  90.  
  91. private Dictionary<Vector2I, TileCellData> _mapping = new Dictionary<Vector2I, TileCellData>();
  92. public AutoTileConfig(int sourceId, TileSetAtlasSource atlasSource)
  93. {
  94. var tilesCount = atlasSource.GetTilesCount();
  95. for (var i = 0; i < tilesCount; i++)
  96. {
  97. var pos = atlasSource.GetTileId(i);
  98. var tileData = atlasSource.GetTileData(pos, 0);
  99. if (tileData != null && tileData.Terrain != -1 && tileData.TerrainSet != -1) //判断是否使用掩码
  100. {
  101. HandlerTileData(tileData.GetTerrainPeeringValue(), sourceId, pos);
  102. }
  103. }
  104.  
  105. TopMask = Auto_111_111_111;
  106. Wall_Bottom = Auto_000_111_111;
  107. Wall_Left = Auto_110_110_110;
  108. Wall_Right = Auto_011_011_011;
  109. Wall_Top = Auto_111_111_000;
  110.  
  111. Wall_Out_LB = Auto_011_011_000;
  112. Wall_Out_LT = Auto_000_011_011;
  113. Wall_Out_RB = Auto_110_110_000;
  114. Wall_Out_RT = Auto_000_110_110;
  115.  
  116. Wall_In_LT = Auto_111_111_110;
  117. Wall_In_LB = Auto_110_111_111;
  118. Wall_In_RT = Auto_111_111_011;
  119. Wall_In_RB = Auto_011_111_111;
  120.  
  121. HandlerMapping();
  122. HandlerOtherCellMapping();
  123. }
  124.  
  125. public int GetLayer(Vector2I atlasCoords)
  126. {
  127. if (_mapping.TryGetValue(atlasCoords, out var tile))
  128. {
  129. return tile.DefaultLayer;
  130. }
  131.  
  132. return GameConfig.FloorMapLayer;
  133. }
  134.  
  135. private void HandlerTileData(uint peeringValue, int sourceId, Vector2I pos)
  136. {
  137. switch (peeringValue)
  138. {
  139. //第一列
  140. case TerrainPeering.Center | TerrainPeering.Bottom:
  141. Auto_000_010_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  142. break;
  143. case TerrainPeering.Top | TerrainPeering.Center | TerrainPeering.Bottom:
  144. Auto_010_010_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  145. break;
  146. case TerrainPeering.Top | TerrainPeering.Center:
  147. Auto_010_010_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  148. break;
  149. case TerrainPeering.Center:
  150. Auto_000_010_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  151. break;
  152. //第二列
  153. case TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom:
  154. Auto_000_011_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  155. break;
  156. case TerrainPeering.Top | TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom:
  157. Auto_010_011_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  158. break;
  159. case TerrainPeering.Top | TerrainPeering.Center | TerrainPeering.Right:
  160. Auto_010_011_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  161. break;
  162. case TerrainPeering.Center | TerrainPeering.Right:
  163. Auto_000_011_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  164. break;
  165. //第三列
  166. case TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom:
  167. Auto_000_111_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  168. break;
  169. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right |
  170. TerrainPeering.Bottom:
  171. Auto_010_111_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  172. break;
  173. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right:
  174. Auto_010_111_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  175. break;
  176. case TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right:
  177. Auto_000_111_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  178. break;
  179. //第四列
  180. case TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Bottom:
  181. Auto_000_110_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  182. break;
  183. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Bottom:
  184. Auto_010_110_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  185. break;
  186. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center:
  187. Auto_010_110_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  188. break;
  189. case TerrainPeering.Left | TerrainPeering.Center:
  190. Auto_000_110_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  191. break;
  192. //第五列
  193. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center |
  194. TerrainPeering.Right | TerrainPeering.Bottom:
  195. Auto_110_111_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  196. break;
  197. case TerrainPeering.Top | TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom |
  198. TerrainPeering.RightBottom:
  199. Auto_010_011_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  200. break;
  201. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Center | TerrainPeering.Right |
  202. TerrainPeering.Bottom:
  203. Auto_011_011_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  204. break;
  205. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right |
  206. TerrainPeering.LeftBottom | TerrainPeering.Bottom:
  207. Auto_010_111_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  208. break;
  209. //第六列
  210. case TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom |
  211. TerrainPeering.RightBottom:
  212. Auto_000_111_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  213. break;
  214. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left | TerrainPeering.Center |
  215. TerrainPeering.Right | TerrainPeering.LeftBottom | TerrainPeering.Bottom | TerrainPeering.RightBottom:
  216. Auto_011_111_111 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  217. break;
  218. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left |
  219. TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom | TerrainPeering.RightBottom:
  220. Auto_111_111_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  221. break;
  222. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left | TerrainPeering.Center |
  223. TerrainPeering.Right:
  224. Auto_011_111_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  225. break;
  226. //第七列
  227. case TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.LeftBottom |
  228. TerrainPeering.Bottom:
  229. Auto_000_111_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  230. break;
  231. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center |
  232. TerrainPeering.Right | TerrainPeering.LeftBottom | TerrainPeering.Bottom | TerrainPeering.RightBottom:
  233. Auto_110_111_111 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  234. break;
  235. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left |
  236. TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.LeftBottom | TerrainPeering.Bottom:
  237. Auto_111_111_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  238. break;
  239. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center |
  240. TerrainPeering.Right:
  241. Auto_110_111_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  242. break;
  243. //第八列
  244. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left | TerrainPeering.Center |
  245. TerrainPeering.Right | TerrainPeering.Bottom:
  246. Auto_011_111_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  247. break;
  248. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.LeftBottom |
  249. TerrainPeering.Bottom:
  250. Auto_010_110_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  251. break;
  252. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center |
  253. TerrainPeering.Bottom:
  254. Auto_110_110_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  255. break;
  256. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right |
  257. TerrainPeering.Bottom | TerrainPeering.RightBottom:
  258. Auto_010_111_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  259. break;
  260. //第九列
  261. case TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom | TerrainPeering.RightBottom:
  262. Auto_000_011_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  263. break;
  264. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Center | TerrainPeering.Right |
  265. TerrainPeering.Bottom | TerrainPeering.RightBottom:
  266. Auto_011_011_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  267. break;
  268. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left | TerrainPeering.Center |
  269. TerrainPeering.Right | TerrainPeering.Bottom | TerrainPeering.RightBottom:
  270. Auto_011_111_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  271. break;
  272. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Center | TerrainPeering.Right:
  273. Auto_011_011_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  274. break;
  275. //第十列
  276. case TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right |
  277. TerrainPeering.LeftBottom | TerrainPeering.Bottom | TerrainPeering.RightBottom:
  278. Auto_010_111_111 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  279. break;
  280. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center |
  281. TerrainPeering.Right | TerrainPeering.Bottom | TerrainPeering.RightBottom:
  282. Auto_110_111_011 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  283. break;
  284. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left |
  285. TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.LeftBottom | TerrainPeering.Bottom |
  286. TerrainPeering.RightBottom:
  287. Auto_111_111_111 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  288. break;
  289. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left |
  290. TerrainPeering.Center | TerrainPeering.Right:
  291. Auto_111_111_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  292. break;
  293. //第十一列
  294. case TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.LeftBottom |
  295. TerrainPeering.Bottom | TerrainPeering.RightBottom:
  296. Auto_000_111_111 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  297. break;
  298. case TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left | TerrainPeering.Center |
  299. TerrainPeering.Right | TerrainPeering.LeftBottom | TerrainPeering.Bottom:
  300. Auto_011_111_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  301. break;
  302. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.RightTop | TerrainPeering.Left |
  303. TerrainPeering.Center | TerrainPeering.Right | TerrainPeering.Bottom:
  304. Auto_111_111_010 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  305. break;
  306. //第十二列
  307. case TerrainPeering.Left | TerrainPeering.Center | TerrainPeering.LeftBottom | TerrainPeering.Bottom:
  308. Auto_000_110_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  309. break;
  310. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center |
  311. TerrainPeering.Right | TerrainPeering.LeftBottom | TerrainPeering.Bottom:
  312. Auto_110_111_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  313. break;
  314. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center |
  315. TerrainPeering.LeftBottom | TerrainPeering.Bottom:
  316. Auto_110_110_110 = new TileCellData(sourceId, pos, peeringValue, GameConfig.TopMapLayer);
  317. break;
  318. case TerrainPeering.LeftTop | TerrainPeering.Top | TerrainPeering.Left | TerrainPeering.Center:
  319. Auto_110_110_000 = new TileCellData(sourceId, pos, peeringValue, GameConfig.MiddleMapLayer);
  320. break;
  321.  
  322. default:
  323. Debug.LogError("未知PeeringValue: " + peeringValue);
  324. break;
  325. }
  326. }
  327.  
  328.  
  329. private void HandlerMapping()
  330. {
  331. //第一列
  332. _mapping.Add(Auto_000_010_010.AutoTileCoords, Auto_000_010_010);
  333. _mapping.Add(Auto_010_010_010.AutoTileCoords, Auto_010_010_010);
  334. _mapping.Add(Auto_010_010_000.AutoTileCoords, Auto_010_010_000);
  335. _mapping.Add(Auto_000_010_000.AutoTileCoords, Auto_000_010_000);
  336. //第二列
  337. _mapping.Add(Auto_000_011_010.AutoTileCoords, Auto_000_011_010);
  338. _mapping.Add(Auto_010_011_010.AutoTileCoords, Auto_010_011_010);
  339. _mapping.Add(Auto_010_011_000.AutoTileCoords, Auto_010_011_000);
  340. _mapping.Add(Auto_000_011_000.AutoTileCoords, Auto_000_011_000);
  341. //第三列
  342. _mapping.Add(Auto_000_111_010.AutoTileCoords, Auto_000_111_010);
  343. _mapping.Add(Auto_010_111_010.AutoTileCoords, Auto_010_111_010);
  344. _mapping.Add(Auto_010_111_000.AutoTileCoords, Auto_010_111_000);
  345. _mapping.Add(Auto_000_111_000.AutoTileCoords, Auto_000_111_000);
  346. //第四列
  347. _mapping.Add(Auto_000_110_010.AutoTileCoords, Auto_000_110_010);
  348. _mapping.Add(Auto_010_110_010.AutoTileCoords, Auto_010_110_010);
  349. _mapping.Add(Auto_010_110_000.AutoTileCoords, Auto_010_110_000);
  350. _mapping.Add(Auto_000_110_000.AutoTileCoords, Auto_000_110_000);
  351. //第五列
  352. _mapping.Add(Auto_110_111_010.AutoTileCoords, Auto_110_111_010);
  353. _mapping.Add(Auto_010_011_011.AutoTileCoords, Auto_010_011_011);
  354. _mapping.Add(Auto_011_011_010.AutoTileCoords, Auto_011_011_010);
  355. _mapping.Add(Auto_010_111_110.AutoTileCoords, Auto_010_111_110);
  356. //第六列
  357. _mapping.Add(Auto_000_111_011.AutoTileCoords, Auto_000_111_011);
  358. _mapping.Add(Auto_011_111_111.AutoTileCoords, Auto_011_111_111);
  359. _mapping.Add(Auto_111_111_011.AutoTileCoords, Auto_111_111_011);
  360. _mapping.Add(Auto_011_111_000.AutoTileCoords, Auto_011_111_000);
  361. //第七列
  362. _mapping.Add(Auto_000_111_110.AutoTileCoords, Auto_000_111_110);
  363. _mapping.Add(Auto_110_111_111.AutoTileCoords, Auto_110_111_111);
  364. _mapping.Add(Auto_111_111_110.AutoTileCoords, Auto_111_111_110);
  365. _mapping.Add(Auto_110_111_000.AutoTileCoords, Auto_110_111_000);
  366. //第八列
  367. _mapping.Add(Auto_011_111_010.AutoTileCoords, Auto_011_111_010);
  368. _mapping.Add(Auto_010_110_110.AutoTileCoords, Auto_010_110_110);
  369. _mapping.Add(Auto_110_110_010.AutoTileCoords, Auto_110_110_010);
  370. _mapping.Add(Auto_010_111_011.AutoTileCoords, Auto_010_111_011);
  371. //第九列
  372. _mapping.Add(Auto_000_011_011.AutoTileCoords, Auto_000_011_011);
  373. _mapping.Add(Auto_011_011_011.AutoTileCoords, Auto_011_011_011);
  374. _mapping.Add(Auto_011_111_011.AutoTileCoords, Auto_011_111_011);
  375. _mapping.Add(Auto_011_011_000.AutoTileCoords, Auto_011_011_000);
  376. //第十列
  377. _mapping.Add(Auto_010_111_111.AutoTileCoords, Auto_010_111_111);
  378. _mapping.Add(Auto_110_111_011.AutoTileCoords, Auto_110_111_011);
  379. _mapping.Add(Auto_111_111_111.AutoTileCoords, Auto_111_111_111);
  380. _mapping.Add(Auto_111_111_000.AutoTileCoords, Auto_111_111_000);
  381. //第十一列
  382. _mapping.Add(Auto_000_111_111.AutoTileCoords, Auto_000_111_111);
  383. _mapping.Add(Auto_011_111_110.AutoTileCoords, Auto_011_111_110);
  384. _mapping.Add(Auto_111_111_010.AutoTileCoords, Auto_111_111_010);
  385. //第十二列
  386. _mapping.Add(Auto_000_110_110.AutoTileCoords, Auto_000_110_110);
  387. _mapping.Add(Auto_110_111_110.AutoTileCoords, Auto_110_111_110);
  388. _mapping.Add(Auto_110_110_110.AutoTileCoords, Auto_110_110_110);
  389. _mapping.Add(Auto_110_110_000.AutoTileCoords, Auto_110_110_000);
  390. }
  391.  
  392. private void HandlerOtherCellMapping()
  393. {
  394. _mapping.Add(Floor.AutoTileCoords, Floor);
  395. _mapping.Add(Wall_Vertical_Left.AutoTileCoords, Wall_Vertical_Left);
  396. _mapping.Add(Wall_Vertical_Right.AutoTileCoords, Wall_Vertical_Right);
  397. _mapping.Add(Wall_Vertical_Center.AutoTileCoords, Wall_Vertical_Center);
  398. _mapping.Add(Wall_Vertical_Single.AutoTileCoords, Wall_Vertical_Single);
  399. }
  400. }