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