Exemple #1
0
        public static void save()
        {
            if (Level.info.configData.Use_Legacy_Objects)
            {
                River river = new River(Level.info.path + "/Level/Objects.dat", false);
                river.writeByte(LevelObjects.SAVEDATA_VERSION);
                river.writeUInt32(LevelObjects.availableInstanceID);
                for (byte b = 0; b < Regions.WORLD_SIZE; b += 1)
                {
                    for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1)
                    {
                        List <LevelObject> list = LevelObjects.objects[(int)b, (int)b2];
                        river.writeUInt16((ushort)list.Count);
                        ushort num = 0;
                        while ((int)num < list.Count)
                        {
                            LevelObject levelObject = list[(int)num];
                            if (levelObject != null && levelObject.transform != null && levelObject.id != 0)
                            {
                                river.writeSingleVector3(levelObject.transform.position);
                                river.writeSingleQuaternion(levelObject.transform.rotation);
                                river.writeSingleVector3(levelObject.transform.localScale);
                                river.writeUInt16(levelObject.id);
                                river.writeString(levelObject.name);
                                river.writeGUID(levelObject.GUID);
                                river.writeByte((byte)levelObject.placementOrigin);
                                river.writeUInt32(levelObject.instanceID);
                            }
                            else
                            {
                                river.writeSingleVector3(Vector3.zero);
                                river.writeSingleQuaternion(Quaternion.identity);
                                river.writeSingleVector3(Vector3.one);
                                river.writeUInt16(0);
                                river.writeString(string.Empty);
                                river.writeGUID(Guid.Empty);
                                river.writeByte(0);
                                river.writeUInt32(0u);
                                Debug.LogError(string.Concat(new object[]
                                {
                                    "Found invalid object at ",
                                    b,
                                    ", ",
                                    b2,
                                    " with model: ",
                                    levelObject.transform,
                                    " and ID: ",
                                    levelObject.id
                                }));
                            }
                            num += 1;
                        }
                    }
                }
                river.closeRiver();
            }
            River river2 = new River(Level.info.path + "/Level/Buildables.dat", false);

            river2.writeByte(LevelObjects.SAVEDATA_VERSION);
            for (byte b3 = 0; b3 < Regions.WORLD_SIZE; b3 += 1)
            {
                for (byte b4 = 0; b4 < Regions.WORLD_SIZE; b4 += 1)
                {
                    List <LevelBuildableObject> list2 = LevelObjects.buildables[(int)b3, (int)b4];
                    river2.writeUInt16((ushort)list2.Count);
                    ushort num2 = 0;
                    while ((int)num2 < list2.Count)
                    {
                        LevelBuildableObject levelBuildableObject = list2[(int)num2];
                        if (levelBuildableObject != null && levelBuildableObject.transform != null && levelBuildableObject.id != 0)
                        {
                            river2.writeSingleVector3(levelBuildableObject.transform.position);
                            river2.writeSingleQuaternion(levelBuildableObject.transform.rotation);
                            river2.writeUInt16(levelBuildableObject.id);
                        }
                        else
                        {
                            river2.writeSingleVector3(Vector3.zero);
                            river2.writeSingleQuaternion(Quaternion.identity);
                            river2.writeUInt16(0);
                            Debug.LogError(string.Concat(new object[]
                            {
                                "Found invalid object at ",
                                b3,
                                ", ",
                                b4,
                                " with model: ",
                                levelBuildableObject.transform,
                                " and ID: ",
                                levelBuildableObject.id
                            }));
                        }
                        num2 += 1;
                    }
                }
            }
            river2.closeRiver();
        }