Esempio n. 1
0
        private void LoadNeighborMaxGameObjId(OCDataReader ocReader)
        {
            var tileDimension = ocReader.ReadInt();

            if (tileDimension > 0)
            {
                _neighborMaxObjIdTable = new int[tileDimension, tileDimension];
                for (int x = 0; x < tileDimension; ++x)
                {
                    for (int y = 0; y < tileDimension; ++y)
                    {
                        _neighborMaxObjIdTable[x, y] = ocReader.ReadInt();
                    }
                }
            }
        }
Esempio n. 2
0
        private void LoadBlock(OCDataReader ocReader, int blockIndex)
        {
            if (ocReader.TrySetBlock(blockIndex))
            {
                LoadNeighborMaxGameObjId(ocReader);
                _maxGameObjectIDCount = ocReader.ReadInt();

                int len = ocReader.ReadInt();

                for (int i = 0; i < len; i++)
                {
                    VisVolume volume = new VisVolume(this);
                    volume.Load(ocReader);
                    volumelList.Add(volume);
                }
            }
        }
Esempio n. 3
0
        public void Load(OCDataReader reader)
        {
            _aabb.center = reader.ReadVector3();

            _aabb.size = new Vector3(owner.CellSize, owner.CellSize, owner.CellSize);

            if (owner.owner.Owner == null)
            {
                Byte[]   datas = reader.ReadBytes(owner.owner.MaxGameObjectIDCount / 8);
                BitArray flag  = new BitArray(datas);
                visFlagDic.Add(new Index(0, 0), flag);
            }
            else
            {
                //Byte[] mainDatas = reader.ReadBytes(0);
                //BitArray mainFlag = new BitArray(mainDatas);
                //visFlagDic.Add(Index.InValidIndex, mainFlag);

                Index currentIndex = owner.owner.TileIndex;
                for (int i = -1; i < 2; i++)
                {
                    for (int j = -1; j < 2; j++)
                    {
                        Index newIndex = currentIndex + new Index(i, j);
                        if (owner.owner.Owner.IsValidIndex(newIndex))
                        {
                            //var multiScene = owner.owner.Owner as MultiScene;
                            //var scene = multiScene.GetTile(newIndex) as SingleScene;

                            //if (scene != null)
                            {
                                var maxGameObjectIdCount = owner.owner.GetNeighborSceneMaxObjectId(newIndex);
                                if (maxGameObjectIdCount > 0)
                                {
                                    Byte[]   datas = reader.ReadBytes(maxGameObjectIdCount / 8);
                                    BitArray flag  = new BitArray(datas);
                                    visFlagDic.Add(new Index(i, j), flag);
                                }
                            }
                        }
                    }
                }
            }

            int childCount = reader.ReadInt();

            for (int i = 0; i < childCount; i++)
            {
                Cell cell = new Cell(owner);
                cell._aabb.center = reader.ReadVector3();
                cell._aabb.size   = Vector3.one;
                AddChild(cell);
            }
        }
Esempio n. 4
0
        public void Load(OCDataReader reader)
        {
            cellSize = reader.ReadFloat();

            aabb = reader.ReadBounds();

            int len = reader.ReadInt();

            for (int i = 0; i < len; i++)
            {
                Cell cell = new Cell(this);
                cell.Load(reader);
                AddCell(cell);
            }
        }