public static Matrix GenerateMap(DeviceGroup[] deviceGroups, Device[] devices) { Node rootNode = new Node("Default", "", "Red"); DeviceGroup[] orderedDeviceGroups = deviceGroups.OrderBy(g => g.Level).ToArray(); List<Node> nodes = new List<Node>(); nodes.Add(rootNode); foreach (DeviceGroup deviceGroup in orderedDeviceGroups) { AddGroup(rootNode, deviceGroup, nodes, devices); } Matrix matrix = RoomGenerator.Generate(rootNode); matrix.Tiles[matrix.Tiles.Count/2][3].Add(new Tile(TileType.Player)); //Closing the front door foreach (var tiles in matrix.Tiles) { if (tiles[0].Any(t => t.TileType == TileType.Door)) { tiles[0].RemoveAll(t => t.TileType == TileType.Door); tiles[0].Add(new Tile(TileType.Wall)); } } return matrix; }
public Device[] GetDevices() { List<Device> devices = new List<Device>(); TextAsset devicesResponse = Resources.Load("GetDevicesResponse") as TextAsset; var root = JSON.Parse(devicesResponse.text); foreach (var deviceNode in root.Childs) { Device device = new Device { Name = deviceNode["DeviceName"].Value, Path = deviceNode["Path"].Value, DeviceId = deviceNode["DeviceId"].Value, MacAddress = deviceNode["MACAddress"].Value, Manufacturer = deviceNode["Manufacturer"].Value, Model = deviceNode["Model"].Value, BatteryStatus = deviceNode["BatteryStatus"].Value, AgentVersion = deviceNode["AgentVersion"].Value }; devices.Add(device); } return devices.ToArray(); }
private static void AddGroup(Node topNode, DeviceGroup deviceGroup, List<Node> processedNodes, Device[] devices) { string[] paths = deviceGroup.Path.Split(new[] {@"\", @"\\"}, StringSplitOptions.RemoveEmptyEntries); Node groupNode = null; if (paths.Length == 1) { groupNode = new Node(topNode, deviceGroup.Path, deviceGroup.Name, deviceGroup.Icon); groupNode.SetDevices(devices.Where(d => d.Path == deviceGroup.Path).Select(d => new DeviceInfo { DeviceId = d.DeviceId })); topNode.Nodes.Add(groupNode); processedNodes.Add(groupNode); return; } int indexOfName = deviceGroup.Path.LastIndexOf(@"\", StringComparison.Ordinal); string parentPath = deviceGroup.Path.Remove(indexOfName); Node parentNode = processedNodes.Single(n => n.Path == parentPath); groupNode = new Node(parentNode, deviceGroup.Path, deviceGroup.Name, deviceGroup.Icon); groupNode.SetDevices(devices.Where(d => d.Path == deviceGroup.Path).Select(d => new DeviceInfo { DeviceId = d.DeviceId })); parentNode.Nodes.Add(groupNode); processedNodes.Add(groupNode); }
public Device[] GetDevices() { string accessToken = Login(); List<Device> devices = new List<Device>(); Dictionary<string, string> headers = new Dictionary<string, string>(); headers.Add("Authorization", "Bearer " + accessToken); headers.Add("Accept", "application/json"); WWW www = new WWW(_url + Devices, null, headers); while (!www.isDone) { } if (!string.IsNullOrEmpty(www.error)) { Debug.Log("Error during retrieving devices. " + www.error); } var root = JSON.Parse(www.text); foreach (var deviceNode in root.Childs) { Device deviceGroup = new Device { Name = deviceNode["DeviceName"].Value, Path = deviceNode["Path"].Value, DeviceId = deviceNode["DeviceId"].Value, MacAddress = deviceNode["MACAddress"].Value, Manufacturer = deviceNode["Manufacturer"].Value, Model = deviceNode["Model"].Value, BatteryStatus = deviceNode["BatteryStatus"].Value, AgentVersion = deviceNode["AgentVersion"].Value }; devices.Add(deviceGroup); } return devices.ToArray(); }