コード例 #1
0
 public void CreatePool(
     GameObject PoolObj,
     Transform createPlace,
     int PreMaxNum,
     int formkind,
     int itemkind,
     int id,
     int catkind,
     int height)
 {
     this.nPartsFormKind = formkind;
     this.nItemKind      = itemkind;
     this.nCatKind       = catkind;
     this.nID            = id;
     this.nHeight        = height;
     this.CreatePool(PoolObj, createPlace, PreMaxNum);
     for (int id1 = 0; id1 < this.pool.Count; ++id1)
     {
         if (Object.op_Equality((Object)this.pool[id1].GetComponent <BuildPartsInfo>(), (Object)null))
         {
             this.pool[id1].AddComponent <BuildPartsInfo>();
         }
         BuildPartsInfo component = (BuildPartsInfo)this.pool[id1].GetComponent <BuildPartsInfo>();
         component.Init(id1, this.nPartsFormKind, this.nItemKind, this.nCatKind, 0, this.nID, this.nHeight);
         component.nPutFloor = -1;
     }
 }
コード例 #2
0
    public GameObject Get(ref int ID)
    {
        for (int ID1 = 0; ID1 < this.pool.Count; ++ID1)
        {
            if (!this.pool[ID1].get_activeSelf() && !this.ReserveListCheck(ID1))
            {
                this.pool[ID1].SetActive(false);
                if (this.ReserveList.Count > ID1)
                {
                    this.ReserveList[ID1] = ID1;
                }
                else
                {
                    this.ReserveList.Add(ID1);
                }
                ID = ID1;
                return(this.pool[ID1]);
            }
        }
        GameObject poolObject = this.CreatePoolObject();

        poolObject.SetActive(false);
        this.pool.Add(poolObject);
        this.ReserveList.Add(this.ReserveList.Count);
        if (Object.op_Equality((Object)poolObject.GetComponent <BuildPartsInfo>(), (Object)null))
        {
            poolObject.AddComponent <BuildPartsInfo>();
        }
        BuildPartsInfo component = (BuildPartsInfo)poolObject.GetComponent <BuildPartsInfo>();

        component.Init(this.ReserveList.Count - 1, this.nPartsFormKind, this.nItemKind, this.nCatKind, 0, this.nID, this.nHeight);
        component.nPutFloor = -1;
        ID = this.ReserveList.Count - 1;
        return(poolObject);
    }
コード例 #3
0
    public void PartsChange(
        List <BuildPartsPool>[] source,
        CraftCommandList.ChangeValParts val,
        int mode,
        bool Auto)
    {
        GameObject gameObject = source[val.nFormKind][val.nPoolID].GetList()[val.nItemID];

        if (!Auto)
        {
            if (val.active[mode])
            {
                source[val.nFormKind][val.nPoolID].ReserveListChange(val.nItemID, 0);
            }
            else
            {
                source[val.nFormKind][val.nPoolID].ReserveListChange(val.nItemID, -1);
            }
            gameObject.SetActive(val.active[mode]);
        }
        else
        {
            if (val.ReserveList[mode] >= 0)
            {
                source[val.nFormKind][val.nPoolID].ReserveListChange(val.nItemID, 0);
            }
            else
            {
                source[val.nFormKind][val.nPoolID].ReserveListChange(val.nItemID, -1);
            }
            if (val.nPutFloor[mode] == 0)
            {
                gameObject.SetActive(val.active[mode]);
            }
            else if (val.nPutFloor[mode] > 0 && val.nPutFloor[mode] <= Singleton <CraftCommandListBaseObject> .Instance.nTargetFloorCnt)
            {
                gameObject.SetActive(source[val.nFormKind][val.nPoolID].ReserveListCheck(val.nItemID));
            }
            else
            {
                if (val.nPutFloor[mode] >= 0)
                {
                    source[val.nFormKind][val.nPoolID].ReserveListChange(val.nItemID, 0);
                }
                else
                {
                    source[val.nFormKind][val.nPoolID].ReserveListChange(val.nItemID, -1);
                }
                gameObject.SetActive(false);
            }
        }
        gameObject.get_transform().set_position(val.Pos[mode]);
        gameObject.get_transform().set_rotation(val.Rot[mode]);
        BuildPartsInfo component = (BuildPartsInfo)gameObject.GetComponent <BuildPartsInfo>();

        component.nPutFloor = val.nPutFloor[mode];
        component.SetDirection(val.nDirection[mode]);
    }
コード例 #4
0
    public void Save(ObjPool Grid)
    {
        List <BuildPartsPool>[] baseParts = Singleton <CraftCommandListBaseObject> .Instance.BaseParts;
        int nMaxFloorCnt = Singleton <CraftCommandListBaseObject> .Instance.nMaxFloorCnt;

        this.data.MaxFloorNum  = nMaxFloorCnt;
        this.data.nPutPartsNum = Singleton <CraftCommandListBaseObject> .Instance.nPutPartsNum;
        List <GameObject> list1 = Grid.GetList();

        for (int index = 0; index < list1.Count; ++index)
        {
            this.data.SmallGridState.Add(new List <List <int> >());
            this.data.SmallGridOnParts.Add(new List <List <int[]> >());
            this.data.SmallGridOnStackWall.Add(new List <List <int[]> >());
            this.data.SmallGridCanRoofState.Add(new List <List <int> >());
            this.data.SmallGridInRoomState.Add(new List <List <bool> >());
            GridInfo component = (GridInfo)list1[index].GetComponent <GridInfo>();
            this.data.GridPos.Add(component.InitPos);
            for (int floorcnt = 0; floorcnt < nMaxFloorCnt; ++floorcnt)
            {
                this.data.SmallGridState[index].Add(new List <int>());
                this.data.SmallGridOnParts[index].Add(new List <int[]>());
                this.data.SmallGridOnStackWall[index].Add(new List <int[]>());
                this.data.SmallGridCanRoofState[index].Add(new List <int>());
                this.data.SmallGridInRoomState[index].Add(new List <bool>());
                this.data.GridUseState.Add(component.GetUseState(floorcnt));
                this.data.nFloorPartsHeight.Add(component.nFloorPartsHeight[floorcnt]);
                for (int id = 0; id < 4; ++id)
                {
                    this.data.SmallGridState[index][floorcnt].Add(component.GetStateSmallGrid(id, floorcnt));
                    int[] partOnSmallGrid = component.GetPartOnSmallGrid(id, floorcnt);
                    this.data.SmallGridOnParts[index][floorcnt].Add(partOnSmallGrid);
                    this.data.SmallGridOnStackWall[index][floorcnt].Add(component.GetStackWallOnSmallGrid(id, floorcnt));
                    this.data.SmallGridCanRoofState[index][floorcnt].Add(component.GetSmallGridCanRoof(id, floorcnt));
                    this.data.SmallGridInRoomState[index][floorcnt].Add(component.GetSmallGridInRoom(id, floorcnt));
                }
            }
        }
        for (int index1 = 0; index1 < baseParts.Length; ++index1)
        {
            for (int index2 = 0; index2 < baseParts[index1].Count; ++index2)
            {
                List <GameObject> list2 = baseParts[index1][index2].GetList();
                for (int ID = 0; ID < list2.Count; ++ID)
                {
                    if (baseParts[index1][index2].ReserveListCheck(ID))
                    {
                        BuildPartsInfo component = (BuildPartsInfo)list2[ID].GetComponent <BuildPartsInfo>();
                        this.data.BuildPartsGridKind.Add(index1);
                        this.data.BuildPartsKind.Add(index2);
                        this.data.BuildPartsFloor.Add(component.nPutFloor);
                        this.data.BuildPartsPos.Add(list2[ID].get_transform().get_localPosition());
                        this.data.BuildPartsRot.Add(list2[ID].get_transform().get_localRotation());
                        this.data.BuildPartsPutGridInfos.Add(component.putGridInfos.Select <GridInfo, int>((Func <GridInfo, int>)(v => v.nID)).ToList <int>());
                        this.data.BuildPartsPutSmallGridInfos.Add(component.putSmallGridInfos);
                        this.data.BuildPartsPutGridInfosNum.Add(component.putGridInfos.Count);
                    }
                }
            }
        }
        this.data.tmpGridActiveList       = Singleton <CraftCommandListBaseObject> .Instance.tmpGridActiveList;
        this.data.tmpGridActiveListUpdate = Singleton <CraftCommandListBaseObject> .Instance.tmpGridActiveListUpdate;
        this.data.MaxPutHeight            = Singleton <CraftCommandListBaseObject> .Instance.MaxPutHeight;
        BinaryWriter binaryWriter = new BinaryWriter((Stream) new FileStream(Application.get_dataPath() + "/in-house/Scripts/Game/Scene/Map/Craft/SaveData" + string.Format("/CraftSave{0}_{1:MM}{2}_{3:HH}{4:mm}_{5:ss}{6:ff}.png", (object)DateTime.Now.Year, (object)DateTime.Now, (object)DateTime.Now.Day, (object)DateTime.Now, (object)DateTime.Now, (object)DateTime.Now, (object)DateTime.Now), FileMode.Create, FileAccess.Write), Encoding.UTF8);

        this.pngData = this.CreatePngScreen(320, 180);
        binaryWriter.Write(this.pngData);
        binaryWriter.Write(this.data.MaxFloorNum);
        binaryWriter.Write(this.data.nPutPartsNum);
        for (int index = 0; index < this.data.GridPos.Count; ++index)
        {
            binaryWriter.Write((double)this.data.GridPos[index].x);
            binaryWriter.Write((double)this.data.GridPos[index].y);
            binaryWriter.Write((double)this.data.GridPos[index].z);
        }
        binaryWriter.Write("P");
        for (int index = 0; index < this.data.GridUseState.Count; ++index)
        {
            binaryWriter.Write(this.data.GridUseState[index]);
        }
        binaryWriter.Write("U");
        for (int index = 0; index < this.data.nFloorPartsHeight.Count; ++index)
        {
            binaryWriter.Write(this.data.nFloorPartsHeight[index]);
        }
        binaryWriter.Write("F");
        for (int index1 = 0; index1 < list1.Count; ++index1)
        {
            for (int index2 = 0; index2 < nMaxFloorCnt; ++index2)
            {
                for (int index3 = 0; index3 < this.data.SmallGridState[index1][index2].Count; ++index3)
                {
                    binaryWriter.Write(this.data.SmallGridState[index1][index2][index3]);
                    for (int index4 = 0; index4 < this.data.SmallGridOnParts[index1][index2][index3].Length; ++index4)
                    {
                        binaryWriter.Write(this.data.SmallGridOnParts[index1][index2][index3][index4]);
                    }
                    for (int index4 = 0; index4 < this.data.SmallGridOnStackWall[index1][index2][index3].Length; ++index4)
                    {
                        binaryWriter.Write(this.data.SmallGridOnStackWall[index1][index2][index3][index4]);
                    }
                    binaryWriter.Write(this.data.SmallGridCanRoofState[index1][index2][index3]);
                    binaryWriter.Write(this.data.SmallGridInRoomState[index1][index2][index3]);
                }
            }
        }
        binaryWriter.Write("S");
        for (int index1 = 0; index1 < this.data.BuildPartsPos.Count; ++index1)
        {
            binaryWriter.Write(this.data.BuildPartsGridKind[index1]);
            binaryWriter.Write(this.data.BuildPartsKind[index1]);
            binaryWriter.Write(this.data.BuildPartsFloor[index1]);
            binaryWriter.Write((double)this.data.BuildPartsPos[index1].x);
            binaryWriter.Write((double)this.data.BuildPartsPos[index1].y);
            binaryWriter.Write((double)this.data.BuildPartsPos[index1].z);
            binaryWriter.Write((double)this.data.BuildPartsRot[index1].x);
            binaryWriter.Write((double)this.data.BuildPartsRot[index1].y);
            binaryWriter.Write((double)this.data.BuildPartsRot[index1].z);
            binaryWriter.Write((double)this.data.BuildPartsRot[index1].w);
            binaryWriter.Write(this.data.BuildPartsPutGridInfosNum[index1]);
            for (int index2 = 0; index2 < this.data.BuildPartsPutGridInfos[index1].Count; ++index2)
            {
                binaryWriter.Write(this.data.BuildPartsPutGridInfos[index1][index2]);
                binaryWriter.Write(this.data.BuildPartsPutSmallGridInfos[index1][index2]);
            }
        }
        binaryWriter.Write("B");
        for (int index1 = 0; index1 < this.data.MaxFloorNum; ++index1)
        {
            for (int index2 = 0; index2 < this.data.GridPos.Count; ++index2)
            {
                binaryWriter.Write(this.data.tmpGridActiveList[index1][index2]);
            }
            binaryWriter.Write(this.data.tmpGridActiveListUpdate[index1]);
            binaryWriter.Write(this.data.MaxPutHeight[index1]);
        }
        binaryWriter.Write("A");
        binaryWriter.Close();
        this.data.MaxFloorNum  = 0;
        this.data.nPutPartsNum = 0;
        this.data.GridPos.Clear();
        this.data.GridUseState.Clear();
        this.data.nFloorPartsHeight.Clear();
        this.data.SmallGridState.Clear();
        this.data.SmallGridOnParts.Clear();
        this.data.SmallGridOnStackWall.Clear();
        this.data.SmallGridCanRoofState.Clear();
        this.data.SmallGridInRoomState.Clear();
        this.data.BuildPartsGridKind.Clear();
        this.data.BuildPartsKind.Clear();
        this.data.BuildPartsFloor.Clear();
        this.data.BuildPartsPos.Clear();
        this.data.BuildPartsRot.Clear();
        this.data.BuildPartsPutGridInfos.Clear();
        this.data.BuildPartsPutSmallGridInfos.Clear();
        this.data.BuildPartsPutGridInfosNum.Clear();
        this.data.tmpGridActiveList.Clear();
        this.data.tmpGridActiveListUpdate.Clear();
        this.data.MaxPutHeight.Clear();
    }
コード例 #5
0
    public void Load(GridPool Grid, string loadpath)
    {
        List <BuildPartsPool>[] baseParts = Singleton <CraftCommandListBaseObject> .Instance.BaseParts;
        FileStream   fileStream           = new FileStream(loadpath, FileMode.Open, FileAccess.Read);
        Encoding     utF8 = Encoding.UTF8;
        BinaryReader br   = new BinaryReader((Stream)fileStream, utF8);

        if (br != null)
        {
            PngFile.SkipPng(br);
            int  num1 = (int)br.ReadChar();
            char ch   = br.ReadChar();
            if (!ch.Equals('P'))
            {
                fileStream.Seek(-2L, SeekOrigin.Current);
            }
            this.data.MaxFloorNum  = br.ReadInt32();
            this.data.nPutPartsNum = br.ReadInt32();
            Vector3 vector3;
            while (!ch.Equals('P'))
            {
                vector3.x = (__Null)br.ReadDouble();
                vector3.y = (__Null)br.ReadDouble();
                vector3.z = (__Null)br.ReadDouble();
                this.data.GridPos.Add(vector3);
                int num2 = (int)br.ReadChar();
                ch = br.ReadChar();
                if (!ch.Equals('P'))
                {
                    fileStream.Seek(-2L, SeekOrigin.Current);
                }
            }
            int num3 = (int)br.ReadChar();
            ch = br.ReadChar();
            if (!ch.Equals('U'))
            {
                fileStream.Seek(-2L, SeekOrigin.Current);
            }
            while (!ch.Equals('U'))
            {
                this.data.GridUseState.Add(br.ReadBoolean());
                int num2 = (int)br.ReadChar();
                ch = br.ReadChar();
                if (!ch.Equals('U'))
                {
                    fileStream.Seek(-2L, SeekOrigin.Current);
                }
            }
            int num4 = (int)br.ReadChar();
            ch = br.ReadChar();
            if (!ch.Equals('F'))
            {
                fileStream.Seek(-2L, SeekOrigin.Current);
            }
            while (!ch.Equals('F'))
            {
                this.data.nFloorPartsHeight.Add(br.ReadInt32());
                int num2 = (int)br.ReadChar();
                ch = br.ReadChar();
                if (!ch.Equals('F'))
                {
                    fileStream.Seek(-2L, SeekOrigin.Current);
                }
            }
            int num5 = (int)br.ReadChar();
            ch = br.ReadChar();
            if (!ch.Equals('S'))
            {
                fileStream.Seek(-2L, SeekOrigin.Current);
            }
            int index1 = 0;
            int index2 = 0;
            int num6   = 0;
            this.data.SmallGridState.Add(new List <List <int> >());
            this.data.SmallGridOnParts.Add(new List <List <int[]> >());
            this.data.SmallGridOnStackWall.Add(new List <List <int[]> >());
            this.data.SmallGridCanRoofState.Add(new List <List <int> >());
            this.data.SmallGridInRoomState.Add(new List <List <bool> >());
            this.data.SmallGridState[index1].Add(new List <int>());
            this.data.SmallGridOnParts[index1].Add(new List <int[]>());
            this.data.SmallGridOnStackWall[index1].Add(new List <int[]>());
            this.data.SmallGridCanRoofState[index1].Add(new List <int>());
            this.data.SmallGridInRoomState[index1].Add(new List <bool>());
            while (!ch.Equals('S'))
            {
                this.data.SmallGridState[index1][index2].Add(br.ReadInt32());
                int[] numArray1 = new int[7];
                for (int index3 = 0; index3 < numArray1.Length; ++index3)
                {
                    numArray1[index3] = br.ReadInt32();
                }
                this.data.SmallGridOnParts[index1][index2].Add(numArray1);
                int[] numArray2 = new int[9];
                for (int index3 = 0; index3 < numArray2.Length; ++index3)
                {
                    numArray2[index3] = br.ReadInt32();
                }
                this.data.SmallGridOnStackWall[index1][index2].Add(numArray2);
                this.data.SmallGridCanRoofState[index1][index2].Add(br.ReadInt32());
                this.data.SmallGridInRoomState[index1][index2].Add(br.ReadBoolean());
                int num2 = (int)br.ReadChar();
                ch = br.ReadChar();
                if (!ch.Equals('S'))
                {
                    fileStream.Seek(-2L, SeekOrigin.Current);
                }
                ++num6;
                if (num6 == 4)
                {
                    num6 = 0;
                    ++index2;
                    if (index2 != this.data.MaxFloorNum)
                    {
                        this.data.SmallGridState[index1].Add(new List <int>());
                        this.data.SmallGridOnParts[index1].Add(new List <int[]>());
                        this.data.SmallGridOnStackWall[index1].Add(new List <int[]>());
                        this.data.SmallGridCanRoofState[index1].Add(new List <int>());
                        this.data.SmallGridInRoomState[index1].Add(new List <bool>());
                    }
                    if (index2 == this.data.MaxFloorNum)
                    {
                        index2 = 0;
                        ++index1;
                        this.data.SmallGridState.Add(new List <List <int> >());
                        this.data.SmallGridOnParts.Add(new List <List <int[]> >());
                        this.data.SmallGridOnStackWall.Add(new List <List <int[]> >());
                        this.data.SmallGridCanRoofState.Add(new List <List <int> >());
                        this.data.SmallGridInRoomState.Add(new List <List <bool> >());
                        this.data.SmallGridState[index1].Add(new List <int>());
                        this.data.SmallGridOnParts[index1].Add(new List <int[]>());
                        this.data.SmallGridOnStackWall[index1].Add(new List <int[]>());
                        this.data.SmallGridCanRoofState[index1].Add(new List <int>());
                        this.data.SmallGridInRoomState[index1].Add(new List <bool>());
                    }
                }
            }
            int num7 = (int)br.ReadChar();
            ch = br.ReadChar();
            if (!ch.Equals('B'))
            {
                fileStream.Seek(-2L, SeekOrigin.Current);
            }
            List <int> intList1 = new List <int>();
            List <int> intList2 = new List <int>();
            while (!ch.Equals('B'))
            {
                this.data.BuildPartsGridKind.Add(br.ReadInt32());
                this.data.BuildPartsKind.Add(br.ReadInt32());
                this.data.BuildPartsFloor.Add(br.ReadInt32());
                vector3.x = (__Null)br.ReadDouble();
                vector3.y = (__Null)br.ReadDouble();
                vector3.z = (__Null)br.ReadDouble();
                this.data.BuildPartsPos.Add(vector3);
                Quaternion quaternion;
                quaternion.x = (__Null)br.ReadDouble();
                quaternion.y = (__Null)br.ReadDouble();
                quaternion.z = (__Null)br.ReadDouble();
                quaternion.w = (__Null)br.ReadDouble();
                this.data.BuildPartsRot.Add(quaternion);
                this.data.BuildPartsPutGridInfosNum.Add(br.ReadInt32());
                intList1.Clear();
                intList2.Clear();
                for (int index3 = 0; index3 < this.data.BuildPartsPutGridInfosNum[this.data.BuildPartsPutGridInfosNum.Count - 1]; ++index3)
                {
                    intList1.Add(br.ReadInt32());
                    intList2.Add(br.ReadInt32());
                }
                this.data.BuildPartsPutGridInfos.Add(intList1);
                this.data.BuildPartsPutSmallGridInfos.Add(intList2);
                int num2 = (int)br.ReadChar();
                ch = br.ReadChar();
                if (!ch.Equals('B'))
                {
                    fileStream.Seek(-2L, SeekOrigin.Current);
                }
            }
            int num8 = (int)br.ReadChar();
            ch = br.ReadChar();
            if (!ch.Equals('A'))
            {
                fileStream.Seek(-2L, SeekOrigin.Current);
            }
            bool[] flagArray = new bool[this.data.GridPos.Count];
            while (!ch.Equals('A'))
            {
                for (int index3 = 0; index3 < flagArray.Length; ++index3)
                {
                    flagArray[index3] = br.ReadBoolean();
                }
                this.data.tmpGridActiveList.Add(flagArray);
                this.data.tmpGridActiveListUpdate.Add(br.ReadBoolean());
                this.data.MaxPutHeight.Add(br.ReadInt32());
                int num2 = (int)br.ReadChar();
                ch = br.ReadChar();
                if (!ch.Equals('A'))
                {
                    fileStream.Seek(-2L, SeekOrigin.Current);
                }
            }
            br.Close();
        }
        if (this.data.SmallGridState[this.data.SmallGridState.Count - 1][this.data.SmallGridState[this.data.SmallGridState.Count - 1].Count - 1].Count == 0)
        {
            this.data.SmallGridState.RemoveAt(this.data.SmallGridState.Count - 1);
            this.data.SmallGridOnParts.RemoveAt(this.data.SmallGridOnParts.Count - 1);
            this.data.SmallGridOnStackWall.RemoveAt(this.data.SmallGridOnStackWall.Count - 1);
            this.data.SmallGridCanRoofState.RemoveAt(this.data.SmallGridCanRoofState.Count - 1);
            this.data.SmallGridInRoomState.RemoveAt(this.data.SmallGridInRoomState.Count - 1);
        }
        Singleton <CraftCommandListBaseObject> .Instance.nMaxFloorCnt = this.data.MaxFloorNum;
        Singleton <CraftCommandListBaseObject> .Instance.nPutPartsNum = this.data.nPutPartsNum;
        List <GameObject> list1 = Grid.GetList();
        List <GridInfo>   Grid1 = new List <GridInfo>();

        using (List <GameObject> .Enumerator enumerator = list1.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                GameObject current = enumerator.Current;
                Grid1.Add((GridInfo)current.GetComponent <GridInfo>());
            }
        }
        int num = this.data.GridPos.Count - list1.Count;

        if (num > 0)
        {
            for (int index = 0; index < num; ++index)
            {
                Grid.Get();
            }
        }
        for (int index1 = 0; index1 < list1.Count; ++index1)
        {
            list1[index1].SetActive(true);
            list1[index1].get_transform().set_localPosition(this.data.GridPos[index1]);
            Grid1[index1].DelFloor(0);
            for (int floorNum = Grid1[index1].GetFloorNum(); floorNum < this.data.MaxFloorNum; ++floorNum)
            {
                Grid1[index1].AddFloor();
            }
            for (int index2 = 0; index2 < this.data.MaxFloorNum; ++index2)
            {
                Grid1[index1].SetUseState(index2, this.data.GridUseState[index2 + Grid1[index1].GetFloorNum() * index1]);
                Grid1[index1].nFloorPartsHeight[index2] = this.data.nFloorPartsHeight[index2];
                for (int index3 = 0; index3 < 4; ++index3)
                {
                    for (int index4 = 0; index4 < 7; ++index4)
                    {
                        Grid1[index1].ChangeSmallGrid(index3, this.data.SmallGridState[index1][index2][index3], this.data.SmallGridOnParts[index1][index2][index3][index4], index2, false);
                    }
                    for (int index4 = 0; index4 < 5; ++index4)
                    {
                        Grid1[index1].ChangeSmallGrid(index3, this.data.SmallGridState[index1][index2][index3], this.data.SmallGridOnStackWall[index1][index2][index3][index4], index2, false);
                    }
                    if (index2 == 0)
                    {
                        Grid1[index1].ChangeSmallGridColor(index2, index3);
                    }
                    Grid1[index1].SetCanRoofSmallGrid(index3, index2, this.data.SmallGridCanRoofState[index1][index2][index3]);
                    Grid1[index1].SetInRoomSmallGrid(index3, this.data.SmallGridInRoomState[index1][index2][index3], index2);
                }
            }
        }
        for (int floorcnt = 0; floorcnt < this.data.MaxFloorNum; ++floorcnt)
        {
            GridInfo.ChangeGridInfo(Grid1, floorcnt);
        }
        List <GameObject> gameObjectList = new List <GameObject>();

        for (int index1 = 0; index1 < baseParts.Length; ++index1)
        {
            for (int index2 = 0; index2 < baseParts[index1].Count; ++index2)
            {
                List <GameObject> list2 = baseParts[index1][index2].GetList();
                for (int index3 = 0; index3 < list2.Count; ++index3)
                {
                    if (list2[index3].get_activeSelf())
                    {
                        list2[index3].SetActive(false);
                    }
                    if (((BuildPartsInfo)list2[index3].GetComponent <BuildPartsInfo>()).nPutFloor != -1)
                    {
                        ((BuildPartsInfo)list2[index3].GetComponent <BuildPartsInfo>()).nPutFloor = -1;
                    }
                }
                baseParts[index1][index2].ReserveListDel(0, 1);
            }
        }
        for (int index1 = 0; index1 < this.data.BuildPartsPos.Count; ++index1)
        {
            if (gameObjectList != baseParts[this.data.BuildPartsGridKind[index1]][this.data.BuildPartsKind[index1]].GetList())
            {
                gameObjectList = baseParts[this.data.BuildPartsGridKind[index1]][this.data.BuildPartsKind[index1]].GetList();
            }
            int ID = -1;
            baseParts[this.data.BuildPartsGridKind[index1]][this.data.BuildPartsKind[index1]].Get(ref ID);
            BuildPartsInfo component = (BuildPartsInfo)gameObjectList[ID].GetComponent <BuildPartsInfo>();
            gameObjectList[ID].SetActive(true);
            gameObjectList[ID].get_transform().set_localPosition(this.data.BuildPartsPos[index1]);
            gameObjectList[ID].get_transform().set_localRotation(this.data.BuildPartsRot[index1]);
            component.nPutFloor = this.data.BuildPartsFloor[index1];
            component.putGridInfos.Clear();
            component.putSmallGridInfos.Clear();
            for (int index2 = 0; index2 < this.data.BuildPartsPutGridInfos.Count; ++index2)
            {
                component.putGridInfos.Add(Singleton <CraftCommandListBaseObject> .Instance.BaseGridInfo[this.data.BuildPartsPutGridInfos[index1][index2]]);
                component.putSmallGridInfos.Add(this.data.BuildPartsPutSmallGridInfos[index1][index2]);
            }
        }
        Singleton <CraftCommandListBaseObject> .Instance.tmpGridActiveList       = this.data.tmpGridActiveList;
        Singleton <CraftCommandListBaseObject> .Instance.tmpGridActiveListUpdate = this.data.tmpGridActiveListUpdate;
        Singleton <CraftCommandListBaseObject> .Instance.MaxPutHeight            = this.data.MaxPutHeight;
        this.data.MaxFloorNum  = 0;
        this.data.nPutPartsNum = 0;
        this.data.GridPos.Clear();
        this.data.GridUseState.Clear();
        this.data.nFloorPartsHeight.Clear();
        this.data.SmallGridState.Clear();
        this.data.SmallGridOnParts.Clear();
        this.data.SmallGridOnStackWall.Clear();
        this.data.SmallGridCanRoofState.Clear();
        this.data.SmallGridInRoomState.Clear();
        this.data.BuildPartsGridKind.Clear();
        this.data.BuildPartsKind.Clear();
        this.data.BuildPartsFloor.Clear();
        this.data.BuildPartsPos.Clear();
        this.data.BuildPartsRot.Clear();
        this.data.BuildPartsPutGridInfos.Clear();
        this.data.BuildPartsPutSmallGridInfos.Clear();
        this.data.BuildPartsPutGridInfosNum.Clear();
        this.data.tmpGridActiveList.Clear();
        this.data.tmpGridActiveListUpdate.Clear();
        this.data.MaxPutHeight.Clear();
    }