Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <summary>
        /// Add new regions
        /// </summary>
        /// <param name="location"></param>
        public void AddNfp(RecordNfp record)
        {
            Records.Add(record);

            Added?.Invoke(this, record);
        }