Newer
Older
DungeonShooting / DungeonShooting_Godot / src / test / TestLoadTileSetConfig.cs
@小李xl 小李xl on 8 Jan 2024 1 KB 生成Godot.TileSet, 开发中
  1. using Godot;
  2. using System;
  3. using System.Linq;
  4. using System.Text.Json;
  5. using Godot.Collections;
  6.  
  7. public partial class TestLoadTileSetConfig : Node2D
  8. {
  9. private System.Collections.Generic.Dictionary<string, TileSetSplit> _tileSetConfig;
  10. private TileMap _tileMap;
  11. public override void _Ready()
  12. {
  13. InitTileSetConfig();
  14. _tileMap = GetNode<TileMap>("TileMap");
  15.  
  16. var tileSetSplit = _tileSetConfig.First().Value;
  17. var tileSet = tileSetSplit.GetTileSet();
  18. _tileMap.TileSet = tileSet;
  19. _tileMap.SetCell(0, new Vector2I(5, 5), 0, new Vector2I(0, 0));
  20. _tileMap.SetCellsTerrainConnect(0, new Array<Vector2I>()
  21. {
  22. new Vector2I(10, 10),
  23. new Vector2I(10, 11),
  24. new Vector2I(10, 12),
  25. new Vector2I(11, 12),
  26. }, 0, 0, false);
  27. ResourceSaver.Save(tileSet, "res://" + GameConfig.RoomTileSetDir + "test_tile_set.tres");
  28. }
  29. //初始化TileSet配置
  30. private void InitTileSetConfig()
  31. {
  32. //加载房间配置信息
  33. var asText = ResourceManager.LoadText("res://" + GameConfig.RoomTileSetDir + GameConfig.TileSetConfigFile);
  34. _tileSetConfig = JsonSerializer.Deserialize<System.Collections.Generic.Dictionary<string, TileSetSplit>>(asText);
  35. //加载所有数据
  36. foreach (var tileSetSplit in _tileSetConfig)
  37. {
  38. tileSetSplit.Value.ReloadTileSetInfo();
  39. }
  40. }
  41. }