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(); } } } }
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); } } }
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); } }
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); } }