/// <summary> /// Load existing unknown /// </summary> /// <param name="buffer"></param> public void Load(byte[] buffer) { try { using (BinaryReader b = new BinaryReader(new MemoryStream(buffer))) { var nfpCount = b.ReadInt32(); for (int i = 0; i < nfpCount; i++) { var nfp = new RecordNfp(); nfp.Id = b.ReadInt32(); var polygonCount = b.ReadInt32(); for (int p = 0; p < polygonCount; p++) { var polygon = new Polygon3(); var pointNum = b.ReadInt32(); for (int t = 0; t < pointNum; t++) { var point = new K3DPosition(b.ReadSingle(), b.ReadSingle(), b.ReadSingle()); polygon.Points.Add(point); } nfp.Polygons.Add(polygon); } var DescriptionCount = b.ReadInt32(); nfp.Description = Encoding.Default.GetString(b.ReadBytes(DescriptionCount)); Records.Add(nfp); } } XLog.WriteLine(Levels.Good, "Ok"); } catch (Exception exception) { Blank(); XLog.WriteLine(Levels.Error, "Failed"); XLog.WriteLine(Levels.Fatal, "NfpManager::Load<Exception> -> {0}", exception); } }
/// <summary> /// Add new regions /// </summary> /// <param name="location"></param> public void AddNfp(RecordNfp record) { Records.Add(record); Added?.Invoke(this, record); }