コード例 #1
0
ファイル: CollisionManager.cs プロジェクト: Gangor/MapCore
        /// <summary>
        /// get buffer final file
        /// </summary>
        /// <returns></returns>
        public byte[] GetBuffer()
        {
            var mem = new MemoryWriter();

            try
            {
                mem.Write(Polygons.Count);

                for (int i = 0; i < Polygons.Count; i++)
                {
                    mem.Write(Polygons[i].Count);

                    for (int p = 0; p < Polygons[i].Count; p++)
                    {
                        var vector = Polygons[i][p].Clone();

                        vector.X = vector.X / Global.AttrLenght;
                        vector.Y = vector.Y / Global.AttrLenght;
                        vector   = vector.Rotate180FlipY();

                        mem.Write((int)vector.X);
                        mem.Write((int)vector.Y);
                    }
                }

                Parent.Log(Levels.Success, "Ok\n");
            }
            catch (Exception exception)
            {
                mem.Clear();
                Parent.Log(Levels.Error, "Failed\n");
                Parent.Log(Levels.Fatal, $"Nfa::GetBuffer<Exception> -> {exception}\n");
            }

            return(mem.GetBuffer());
        }