private Node2D GenerateScene(OgmoProject project, OgmoLevel level, out Node2D player) { nodes = new List <Node2D>(); player = null; var tileMap = (TileMap)((PackedScene)ResourceLoader.Load("res://prefab/TileMap.tscn")).Instance(); tileMap.Name = "TileMap"; Node2D ultimateParent = new Node2D(); ultimateParent.Name = "Level"; ultimateParent.AddChild(tileMap); //Load set tiles in var tileData = level.layers.First(x => x.name == "Tiles").data2D; for (int y = 0; y < tileData.Count; y++) { for (int x = 0; x < tileData[y].Count; x++) { tileMap.SetCell(x, y, tileData[y][x]); if (y == 0) { tileMap.SetCell(x, -1, 0); } if (x == 0) { tileMap.SetCell(-1, y, 0); } if (x == tileData.Count - 1) { tileMap.SetCell(tileData.Count, y, 0); } if (y == tileData[y].Count - 1) { tileMap.SetCell(x, tileData[y].Count, 0); } } } var playerScene = (PackedScene)ResourceLoader.Load("res://prefab/PlayerOwl.tscn"); var bugScene = ((PackedScene)ResourceLoader.Load("res://prefab/Enemies/Bug.tscn")); var beeScene = ((PackedScene)ResourceLoader.Load("res://prefab/Enemies/Beee.tscn")); var carnosaurScene = ((PackedScene)ResourceLoader.Load("res://prefab/Enemies/Carnosaur.tscn")); var carnosaurusRexScene = ((PackedScene)ResourceLoader.Load("res://prefab/Enemies/CarnosaurusRex.tscn")); var playerEntity = level.layers.First(x => x.name == "Entity").entities.First(x => x.name == "LevelSpawn"); player = (Node2D)playerScene.Instance(); player.Name = "Player_" + playerEntity._eid; player.Position = new Vector2(playerEntity.x, playerEntity.y); foreach (var entity in level.layers.First(x => x.name == "Entity").entities) { Node2D childInstance = null; switch (entity.name) { case "Walker": childInstance = (Node2D)bugScene.Instance(); childInstance.Name = "Walker_" + entity._eid; break; case "TargetFlyer": childInstance = (Node2D)carnosaurScene.Instance(); childInstance.Name = "Flyer_" + entity._eid; break; case "Bee": childInstance = (Node2D)beeScene.Instance(); childInstance.Name = "Bee_" + entity._eid; break; case "Boss": childInstance = (Node2D)carnosaurusRexScene.Instance(); childInstance.Name = "Boss_" + entity._eid; break; } if (childInstance != null) { childInstance.AddToGroup("enemy", true); nodes.Add(childInstance); ultimateParent.AddChild(childInstance); childInstance.Position = new Vector2(entity.x, entity.y); } } return(ultimateParent); }
void addItemToGroup(string groupId) { currentlyAdded.AddToGroup(groupId); }