Пример #1
0
 // Token: 0x06002824 RID: 10276 RVA: 0x000F3350 File Offset: 0x000F1750
 public static void load()
 {
     if (LevelSavedata.fileExists("/Groups.dat"))
     {
         River river = LevelSavedata.openRiver("/Groups.dat", true);
         byte  b     = river.readByte();
         if (b > 0)
         {
             GroupManager.availableGroupID = river.readSteamID();
             if (b > 1)
             {
                 int num = river.readInt32();
                 for (int i = 0; i < num; i++)
                 {
                     CSteamID csteamID = river.readSteamID();
                     string   text     = river.readString();
                     uint     num2     = river.readUInt32();
                     if (num2 >= 1u && !string.IsNullOrEmpty(text))
                     {
                         if (!GroupManager.knownGroups.ContainsKey(csteamID))
                         {
                             GroupManager.knownGroups.Add(csteamID, new GroupInfo(csteamID, text, num2));
                         }
                     }
                 }
             }
         }
     }
 }
Пример #2
0
 // Token: 0x06002FAF RID: 12207 RVA: 0x0013B9AC File Offset: 0x00139DAC
 public static void load()
 {
     SteamBlacklist._list = new List <SteamBlacklistID>();
     if (ServerSavedata.fileExists("/Server/Blacklist.dat"))
     {
         River river = ServerSavedata.openRiver("/Server/Blacklist.dat", true);
         byte  b     = river.readByte();
         if (b > 1)
         {
             ushort num = river.readUInt16();
             for (ushort num2 = 0; num2 < num; num2 += 1)
             {
                 CSteamID newPlayerID = river.readSteamID();
                 uint     newIP;
                 if (b > 2)
                 {
                     newIP = river.readUInt32();
                 }
                 else
                 {
                     newIP = 0u;
                 }
                 CSteamID         newJudgeID       = river.readSteamID();
                 string           newReason        = river.readString();
                 uint             newDuration      = river.readUInt32();
                 uint             newBanned        = river.readUInt32();
                 SteamBlacklistID steamBlacklistID = new SteamBlacklistID(newPlayerID, newIP, newJudgeID, newReason, newDuration, newBanned);
                 if (!steamBlacklistID.isExpired)
                 {
                     SteamBlacklist.list.Add(steamBlacklistID);
                 }
             }
         }
     }
 }
Пример #3
0
 public static void load()
 {
     if (LevelSavedata.fileExists("/Groups.dat"))
     {
         River river = LevelSavedata.openRiver("/Groups.dat", true);
         byte  b     = river.readByte();
         if (b > 0)
         {
             GroupManager.availableGroupID = river.readSteamID();
             if (b > 1)
             {
                 int num = river.readInt32();
                 for (int i = 0; i < num; i++)
                 {
                     CSteamID csteamID = river.readSteamID();
                     string   newName  = river.readString();
                     uint     num2     = river.readUInt32();
                     if (num2 > 0u)
                     {
                         GroupManager.knownGroups.Add(csteamID, new GroupInfo(csteamID, newName, num2));
                     }
                 }
             }
         }
     }
 }
Пример #4
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Environment/Roads.dat", false);

            river.writeByte(LevelRoads.SAVEDATA_ROADS_VERSION);
            river.writeByte((byte)LevelRoads.materials.Length);
            byte b = 0;

            while ((int)b < LevelRoads.materials.Length)
            {
                river.writeSingle(LevelRoads.materials[(int)b].width);
                river.writeSingle(LevelRoads.materials[(int)b].height);
                river.writeSingle(LevelRoads.materials[(int)b].depth);
                river.writeSingle(LevelRoads.materials[(int)b].offset);
                river.writeBoolean(LevelRoads.materials[(int)b].isConcrete);
                b += 1;
            }
            river.closeRiver();
            river = new River(Level.info.path + "/Environment/Paths.dat", false);
            river.writeByte(LevelRoads.SAVEDATA_PATHS_VERSION);
            ushort num  = 0;
            ushort num2 = 0;

            while ((int)num2 < LevelRoads.roads.Count)
            {
                if (LevelRoads.roads[(int)num2].joints.Count > 1)
                {
                    num += 1;
                }
                num2 += 1;
            }
            river.writeUInt16(num);
            byte b2 = 0;

            while ((int)b2 < LevelRoads.roads.Count)
            {
                List <RoadJoint> joints = LevelRoads.roads[(int)b2].joints;
                if (joints.Count > 1)
                {
                    river.writeUInt16((ushort)joints.Count);
                    river.writeByte(LevelRoads.roads[(int)b2].material);
                    river.writeBoolean(LevelRoads.roads[(int)b2].isLoop);
                    ushort num3 = 0;
                    while ((int)num3 < joints.Count)
                    {
                        RoadJoint roadJoint = joints[(int)num3];
                        river.writeSingleVector3(roadJoint.vertex);
                        river.writeSingleVector3(roadJoint.getTangent(0));
                        river.writeSingleVector3(roadJoint.getTangent(1));
                        river.writeByte((byte)roadJoint.mode);
                        river.writeSingle(roadJoint.offset);
                        river.writeBoolean(roadJoint.ignoreTerrain);
                        num3 += 1;
                    }
                }
                b2 += 1;
            }
            river.closeRiver();
        }
Пример #5
0
        // Token: 0x06002894 RID: 10388 RVA: 0x000F6F1C File Offset: 0x000F531C
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Events.dat", false);

            river.writeByte(LevelManager.SAVEDATA_VERSION);
            river.writeUInt32(LevelManager.airdropFrequency);
            river.writeBoolean(LevelManager.hasAirdrop);
        }
Пример #6
0
 // Token: 0x060028EC RID: 10476 RVA: 0x000F99C8 File Offset: 0x000F7DC8
 private static void loadRegion(River river, List <LevelObject> objects)
 {
     for (;;)
     {
         ushort num = river.readUInt16();
         if (num == 65535)
         {
             break;
         }
         ushort num2  = river.readUInt16();
         byte[] array = river.readBytes();
         if ((int)num >= objects.Count)
         {
             return;
         }
         LevelObject levelObject = objects[(int)num];
         if (num2 == levelObject.id)
         {
             levelObject.state = array;
             if (!(levelObject.transform == null) && levelObject.asset != null)
             {
                 if (levelObject.interactable != null)
                 {
                     if (levelObject.interactable is InteractableObjectBinaryState)
                     {
                         if (levelObject.asset.interactabilityReset >= 1f)
                         {
                             array[0] = 0;
                         }
                     }
                     else if (levelObject.interactable is InteractableObjectResource)
                     {
                         if (levelObject.asset.rubble == EObjectRubble.DESTROY)
                         {
                             if (array.Length < 3)
                             {
                                 array             = levelObject.asset.getState();
                                 levelObject.state = array;
                             }
                         }
                         else if (array.Length < 2)
                         {
                             array             = levelObject.asset.getState();
                             levelObject.state = array;
                         }
                     }
                     levelObject.interactable.updateState(levelObject.asset, array);
                 }
                 if (levelObject.rubble != null)
                 {
                     array[array.Length - 1] = byte.MaxValue;
                     levelObject.rubble.updateState(levelObject.asset, array);
                 }
             }
         }
     }
 }
Пример #7
0
 public static void load()
 {
     if (Level.isVR)
     {
         LevelVisibility.roadsVisible       = false;
         LevelVisibility._navigationVisible = false;
         LevelVisibility._nodesVisible      = false;
         LevelVisibility._itemsVisible      = false;
         LevelVisibility.playersVisible     = false;
         LevelVisibility._zombiesVisible    = false;
         LevelVisibility._vehiclesVisible   = false;
         LevelVisibility.borderVisible      = false;
         LevelVisibility._animalsVisible    = false;
         return;
     }
     if (Level.isEditor)
     {
         if (ReadWrite.fileExists(Level.info.path + "/Level/Visibility.dat", false, false))
         {
             River river = new River(Level.info.path + "/Level/Visibility.dat", false);
             byte  b     = river.readByte();
             if (b > 0)
             {
                 LevelVisibility.roadsVisible      = river.readBoolean();
                 LevelVisibility.navigationVisible = river.readBoolean();
                 LevelVisibility.nodesVisible      = river.readBoolean();
                 LevelVisibility.itemsVisible      = river.readBoolean();
                 LevelVisibility.playersVisible    = river.readBoolean();
                 LevelVisibility.zombiesVisible    = river.readBoolean();
                 LevelVisibility.vehiclesVisible   = river.readBoolean();
                 LevelVisibility.borderVisible     = river.readBoolean();
                 if (b > 1)
                 {
                     LevelVisibility.animalsVisible = river.readBoolean();
                 }
                 else
                 {
                     LevelVisibility._animalsVisible = true;
                 }
                 river.closeRiver();
             }
         }
         else
         {
             LevelVisibility._roadsVisible      = true;
             LevelVisibility._navigationVisible = true;
             LevelVisibility._nodesVisible      = true;
             LevelVisibility._itemsVisible      = true;
             LevelVisibility._playersVisible    = true;
             LevelVisibility._zombiesVisible    = true;
             LevelVisibility._vehiclesVisible   = true;
             LevelVisibility._borderVisible     = true;
             LevelVisibility._animalsVisible    = true;
         }
     }
 }
Пример #8
0
        // Token: 0x060024E7 RID: 9447 RVA: 0x000D38C0 File Offset: 0x000D1CC0
        public static void save()
        {
            Block block = new Block();

            block.writeByte(LevelItems.SAVEDATA_VERSION);
            block.writeByte((byte)LevelItems.tables.Count);
            byte b = 0;

            while ((int)b < LevelItems.tables.Count)
            {
                ItemTable itemTable = LevelItems.tables[(int)b];
                block.writeColor(itemTable.color);
                block.writeString(itemTable.name);
                block.writeUInt16(itemTable.tableID);
                block.write((byte)itemTable.tiers.Count);
                byte b2 = 0;
                while ((int)b2 < itemTable.tiers.Count)
                {
                    ItemTier itemTier = itemTable.tiers[(int)b2];
                    block.writeString(itemTier.name);
                    block.writeSingle(itemTier.chance);
                    block.writeByte((byte)itemTier.table.Count);
                    byte b3 = 0;
                    while ((int)b3 < itemTier.table.Count)
                    {
                        ItemSpawn itemSpawn = itemTier.table[(int)b3];
                        block.writeUInt16(itemSpawn.item);
                        b3 += 1;
                    }
                    b2 += 1;
                }
                b += 1;
            }
            ReadWrite.writeBlock(Level.info.path + "/Spawns/Items.dat", false, false, block);
            River river = new River(Level.info.path + "/Spawns/Jars.dat", false);

            river.writeByte(LevelItems.SAVEDATA_VERSION);
            for (byte b4 = 0; b4 < Regions.WORLD_SIZE; b4 += 1)
            {
                for (byte b5 = 0; b5 < Regions.WORLD_SIZE; b5 += 1)
                {
                    List <ItemSpawnpoint> list = LevelItems.spawns[(int)b4, (int)b5];
                    river.writeUInt16((ushort)list.Count);
                    ushort num = 0;
                    while ((int)num < list.Count)
                    {
                        ItemSpawnpoint itemSpawnpoint = list[(int)num];
                        river.writeByte(itemSpawnpoint.type);
                        river.writeSingleVector3(itemSpawnpoint.point);
                        num += 1;
                    }
                }
            }
            river.closeRiver();
        }
Пример #9
0
        // Token: 0x060028EB RID: 10475 RVA: 0x000F995C File Offset: 0x000F7D5C
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Objects.dat", false);

            river.writeByte(ObjectManager.SAVEDATA_VERSION);
            for (byte b = 0; b < Regions.WORLD_SIZE; b += 1)
            {
                for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1)
                {
                    ObjectManager.saveRegion(river, LevelObjects.objects[(int)b, (int)b2]);
                }
            }
            river.closeRiver();
        }
Пример #10
0
 // Token: 0x06002893 RID: 10387 RVA: 0x000F6EC8 File Offset: 0x000F52C8
 public static void load()
 {
     if (LevelSavedata.fileExists("/Events.dat"))
     {
         River river = LevelSavedata.openRiver("/Events.dat", true);
         byte  b     = river.readByte();
         if (b > 0)
         {
             LevelManager.airdropFrequency = river.readUInt32();
             LevelManager._hasAirdrop      = river.readBoolean();
             return;
         }
     }
     LevelManager._hasAirdrop = false;
 }
Пример #11
0
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Groups.dat", false);

            river.writeByte(GroupManager.SAVEDATA_VERSION);
            river.writeSteamID(GroupManager.availableGroupID);
            Dictionary <CSteamID, GroupInfo> .ValueCollection values = GroupManager.knownGroups.Values;
            river.writeInt32(values.Count);
            foreach (GroupInfo groupInfo in values)
            {
                river.writeSteamID(groupInfo.groupID);
                river.writeString(groupInfo.name);
                river.writeUInt32(groupInfo.members);
            }
        }
Пример #12
0
 // Token: 0x060028EA RID: 10474 RVA: 0x000F98DC File Offset: 0x000F7CDC
 public static void load()
 {
     if (LevelSavedata.fileExists("/Objects.dat") && Level.info.type == ELevelType.SURVIVAL)
     {
         River river = LevelSavedata.openRiver("/Objects.dat", true);
         river.readByte();
         for (byte b = 0; b < Regions.WORLD_SIZE; b += 1)
         {
             for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1)
             {
                 ObjectManager.loadRegion(river, LevelObjects.objects[(int)b, (int)b2]);
             }
         }
     }
 }
Пример #13
0
        // Token: 0x060025BA RID: 9658 RVA: 0x000DCD44 File Offset: 0x000DB144
        public static void save()
        {
            River river = new River(Level.info.path + "/Spawns/Players.dat", false);

            river.writeByte(LevelPlayers.SAVEDATA_VERSION);
            river.writeByte((byte)LevelPlayers.spawns.Count);
            for (int i = 0; i < LevelPlayers.spawns.Count; i++)
            {
                PlayerSpawnpoint playerSpawnpoint = LevelPlayers.spawns[i];
                river.writeSingleVector3(playerSpawnpoint.point);
                river.writeByte(MeasurementTool.angleToByte(playerSpawnpoint.angle));
                river.writeBoolean(playerSpawnpoint.isAlt);
            }
            river.closeRiver();
        }
Пример #14
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Level/Visibility.dat", false);

            river.writeByte(LevelVisibility.SAVEDATA_VERSION);
            river.writeBoolean(LevelVisibility.roadsVisible);
            river.writeBoolean(LevelVisibility.navigationVisible);
            river.writeBoolean(LevelVisibility.nodesVisible);
            river.writeBoolean(LevelVisibility.itemsVisible);
            river.writeBoolean(LevelVisibility.playersVisible);
            river.writeBoolean(LevelVisibility.zombiesVisible);
            river.writeBoolean(LevelVisibility.vehiclesVisible);
            river.writeBoolean(LevelVisibility.borderVisible);
            river.writeBoolean(LevelVisibility.animalsVisible);
            river.closeRiver();
        }
Пример #15
0
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Structures.dat", false);

            river.writeByte(StructureManager.SAVEDATA_VERSION);
            river.writeUInt32(Provider.time);
            for (byte b = 0; b < Regions.WORLD_SIZE; b += 1)
            {
                for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1)
                {
                    StructureRegion region = StructureManager.regions[(int)b, (int)b2];
                    StructureManager.saveRegion(river, region);
                }
            }
            river.closeRiver();
        }
        // Token: 0x060028C1 RID: 10433 RVA: 0x000F7C24 File Offset: 0x000F6024
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Lighting.dat", false);

            river.writeByte(LightingManager.SAVEDATA_VERSION);
            river.writeUInt32(LightingManager.cycle);
            river.writeUInt32(LightingManager.time);
            river.writeUInt32(LightingManager.rainFrequency);
            river.writeUInt32(LightingManager.rainDuration);
            river.writeBoolean(LightingManager.hasRain);
            river.writeByte((byte)LevelLighting.rainyness);
            river.writeUInt32(LightingManager.snowFrequency);
            river.writeUInt32(LightingManager.snowDuration);
            river.writeBoolean(LightingManager.hasSnow);
            river.writeByte((byte)LevelLighting.snowyness);
        }
Пример #17
0
        // Token: 0x06002FA6 RID: 12198 RVA: 0x0013B76C File Offset: 0x00139B6C
        public static void save()
        {
            River river = ServerSavedata.openRiver("/Server/Adminlist.dat", false);

            river.writeByte(SteamAdminlist.SAVEDATA_VERSION);
            river.writeUInt16((ushort)SteamAdminlist.list.Count);
            ushort num = 0;

            while ((int)num < SteamAdminlist.list.Count)
            {
                SteamAdminID steamAdminID = SteamAdminlist.list[(int)num];
                river.writeSteamID(steamAdminID.playerID);
                river.writeSteamID(steamAdminID.judgeID);
                num += 1;
            }
            river.closeRiver();
        }
Пример #18
0
        // Token: 0x060028ED RID: 10477 RVA: 0x000F9B2C File Offset: 0x000F7F2C
        private static void saveRegion(River river, List <LevelObject> objects)
        {
            ushort num = 0;

            while ((int)num < objects.Count)
            {
                LevelObject levelObject = objects[(int)num];
                if (levelObject.state != null && levelObject.state.Length > 0)
                {
                    river.writeUInt16(num);
                    river.writeUInt16(levelObject.id);
                    river.writeBytes(levelObject.state);
                }
                num += 1;
            }
            river.writeUInt16(ushort.MaxValue);
        }
 // Token: 0x060028C0 RID: 10432 RVA: 0x000F7B04 File Offset: 0x000F5F04
 public static void load()
 {
     if (LevelSavedata.fileExists("/Lighting.dat"))
     {
         River river = LevelSavedata.openRiver("/Lighting.dat", true);
         byte  b     = river.readByte();
         if (b > 0)
         {
             LightingManager._cycle = river.readUInt32();
             LightingManager._time  = river.readUInt32();
             if (b > 1)
             {
                 LightingManager.rainFrequency = river.readUInt32();
                 LightingManager.rainDuration  = river.readUInt32();
                 LightingManager._hasRain      = river.readBoolean();
                 LevelLighting.rainyness       = (ELightingRain)river.readByte();
             }
             else
             {
                 LightingManager._hasRain = false;
                 LevelLighting.rainyness  = ELightingRain.NONE;
             }
             if (b > 2)
             {
                 LightingManager.snowFrequency = river.readUInt32();
                 LightingManager.snowDuration  = river.readUInt32();
                 LightingManager._hasSnow      = river.readBoolean();
                 LevelLighting.snowyness       = (ELightingSnow)river.readByte();
             }
             else
             {
                 LightingManager._hasSnow = false;
                 LevelLighting.snowyness  = ELightingSnow.NONE;
             }
             LightingManager._offset = Provider.time - LightingManager.time;
             return;
         }
     }
     LightingManager._time    = (uint)(LightingManager.cycle * LevelLighting.transition);
     LightingManager._offset  = Provider.time - LightingManager.time;
     LightingManager._hasRain = false;
     LevelLighting.rainyness  = ELightingRain.NONE;
     LightingManager._hasSnow = false;
     LevelLighting.snowyness  = ELightingSnow.NONE;
 }
Пример #20
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Spawns/Vehicles.dat", false);

            river.writeByte(LevelVehicles.SAVEDATA_VERSION);
            river.writeByte((byte)LevelVehicles.tables.Count);
            byte b = 0;

            while ((int)b < LevelVehicles.tables.Count)
            {
                VehicleTable vehicleTable = LevelVehicles.tables[(int)b];
                river.writeColor(vehicleTable.color);
                river.writeString(vehicleTable.name);
                river.writeUInt16(vehicleTable.tableID);
                river.writeByte((byte)vehicleTable.tiers.Count);
                byte b2 = 0;
                while ((int)b2 < vehicleTable.tiers.Count)
                {
                    VehicleTier vehicleTier = vehicleTable.tiers[(int)b2];
                    river.writeString(vehicleTier.name);
                    river.writeSingle(vehicleTier.chance);
                    river.writeByte((byte)vehicleTier.table.Count);
                    byte b3 = 0;
                    while ((int)b3 < vehicleTier.table.Count)
                    {
                        VehicleSpawn vehicleSpawn = vehicleTier.table[(int)b3];
                        river.writeUInt16(vehicleSpawn.vehicle);
                        b3 += 1;
                    }
                    b2 += 1;
                }
                b += 1;
            }
            river.writeUInt16((ushort)LevelVehicles.spawns.Count);
            for (int i = 0; i < LevelVehicles.spawns.Count; i++)
            {
                VehicleSpawnpoint vehicleSpawnpoint = LevelVehicles.spawns[i];
                river.writeByte(vehicleSpawnpoint.type);
                river.writeSingleVector3(vehicleSpawnpoint.point);
                river.writeByte(MeasurementTool.angleToByte(vehicleSpawnpoint.angle));
            }
            river.closeRiver();
        }
Пример #21
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Spawns/Fauna.dat", false);

            river.writeByte(LevelAnimals.SAVEDATA_VERSION);
            river.writeByte((byte)LevelAnimals.tables.Count);
            byte b = 0;

            while ((int)b < LevelAnimals.tables.Count)
            {
                AnimalTable animalTable = LevelAnimals.tables[(int)b];
                river.writeColor(animalTable.color);
                river.writeString(animalTable.name);
                river.writeUInt16(animalTable.tableID);
                river.writeByte((byte)animalTable.tiers.Count);
                byte b2 = 0;
                while ((int)b2 < animalTable.tiers.Count)
                {
                    AnimalTier animalTier = animalTable.tiers[(int)b2];
                    river.writeString(animalTier.name);
                    river.writeSingle(animalTier.chance);
                    river.writeByte((byte)animalTier.table.Count);
                    byte b3 = 0;
                    while ((int)b3 < animalTier.table.Count)
                    {
                        AnimalSpawn animalSpawn = animalTier.table[(int)b3];
                        river.writeUInt16(animalSpawn.animal);
                        b3 += 1;
                    }
                    b2 += 1;
                }
                b += 1;
            }
            river.writeUInt16((ushort)LevelAnimals.spawns.Count);
            for (int i = 0; i < LevelAnimals.spawns.Count; i++)
            {
                AnimalSpawnpoint animalSpawnpoint = LevelAnimals.spawns[i];
                river.writeByte(animalSpawnpoint.type);
                river.writeSingleVector3(animalSpawnpoint.point);
            }
            river.closeRiver();
        }
Пример #22
0
 // Token: 0x060025B9 RID: 9657 RVA: 0x000DCC18 File Offset: 0x000DB018
 public static void load()
 {
     LevelPlayers._models                 = new GameObject().transform;
     LevelPlayers.models.name             = "Players";
     LevelPlayers.models.parent           = Level.spawns;
     LevelPlayers.models.tag              = "Logic";
     LevelPlayers.models.gameObject.layer = LayerMasks.LOGIC;
     LevelPlayers._spawns                 = new List <PlayerSpawnpoint>();
     if (ReadWrite.fileExists(Level.info.path + "/Spawns/Players.dat", false, false))
     {
         River river = new River(Level.info.path + "/Spawns/Players.dat", false);
         byte  b     = river.readByte();
         if (b > 1 && b < 3)
         {
             river.readSteamID();
         }
         int  num  = 0;
         int  num2 = 0;
         byte b2   = river.readByte();
         for (int i = 0; i < (int)b2; i++)
         {
             Vector3 point = river.readSingleVector3();
             float   angle = (float)(river.readByte() * 2);
             bool    flag  = false;
             if (b > 3)
             {
                 flag = river.readBoolean();
             }
             if (flag)
             {
                 num2++;
             }
             else
             {
                 num++;
             }
             LevelPlayers.addSpawn(point, angle, flag);
         }
         river.closeRiver();
     }
 }
Пример #23
0
 // Token: 0x060030A6 RID: 12454 RVA: 0x0013F1D4 File Offset: 0x0013D5D4
 public static void load()
 {
     SteamWhitelist._list = new List <SteamWhitelistID>();
     if (ServerSavedata.fileExists("/Server/Whitelist.dat"))
     {
         River river = ServerSavedata.openRiver("/Server/Whitelist.dat", true);
         byte  b     = river.readByte();
         if (b > 1)
         {
             ushort num = river.readUInt16();
             for (ushort num2 = 0; num2 < num; num2 += 1)
             {
                 CSteamID         newSteamID = river.readSteamID();
                 string           newTag     = river.readString();
                 CSteamID         newJudgeID = river.readSteamID();
                 SteamWhitelistID item       = new SteamWhitelistID(newSteamID, newTag, newJudgeID);
                 SteamWhitelist.list.Add(item);
             }
         }
     }
 }
Пример #24
0
        // Token: 0x06002FB0 RID: 12208 RVA: 0x0013BA70 File Offset: 0x00139E70
        public static void save()
        {
            River river = ServerSavedata.openRiver("/Server/Blacklist.dat", false);

            river.writeByte(SteamBlacklist.SAVEDATA_VERSION);
            river.writeUInt16((ushort)SteamBlacklist.list.Count);
            ushort num = 0;

            while ((int)num < SteamBlacklist.list.Count)
            {
                SteamBlacklistID steamBlacklistID = SteamBlacklist.list[(int)num];
                river.writeSteamID(steamBlacklistID.playerID);
                river.writeUInt32(steamBlacklistID.ip);
                river.writeSteamID(steamBlacklistID.judgeID);
                river.writeString(steamBlacklistID.reason);
                river.writeUInt32(steamBlacklistID.duration);
                river.writeUInt32(steamBlacklistID.banned);
                num += 1;
            }
            river.closeRiver();
        }
Пример #25
0
 // Token: 0x06002FA5 RID: 12197 RVA: 0x0013B6E0 File Offset: 0x00139AE0
 public static void load()
 {
     SteamAdminlist._list   = new List <SteamAdminID>();
     SteamAdminlist.ownerID = CSteamID.Nil;
     if (ServerSavedata.fileExists("/Server/Adminlist.dat"))
     {
         River river = ServerSavedata.openRiver("/Server/Adminlist.dat", true);
         byte  b     = river.readByte();
         if (b > 1)
         {
             ushort num = river.readUInt16();
             for (ushort num2 = 0; num2 < num; num2 += 1)
             {
                 CSteamID     newPlayerID = river.readSteamID();
                 CSteamID     newJudgeID  = river.readSteamID();
                 SteamAdminID item        = new SteamAdminID(newPlayerID, newJudgeID);
                 SteamAdminlist.list.Add(item);
             }
         }
     }
 }
Пример #26
0
        private static void saveRegion(River river, StructureRegion region)
        {
            uint   time = Provider.time;
            ushort num  = 0;
            ushort num2 = 0;

            while ((int)num2 < region.structures.Count)
            {
                StructureData structureData = region.structures[(int)num2];
                if ((!Dedicator.isDedicated || Provider.modeConfigData.Structures.Decay_Time == 0u || time < structureData.objActiveDate || time - structureData.objActiveDate < Provider.modeConfigData.Structures.Decay_Time) && structureData.structure.asset.isSaveable)
                {
                    num += 1;
                }
                num2 += 1;
            }
            river.writeUInt16(num);
            ushort num3 = 0;

            while ((int)num3 < region.structures.Count)
            {
                StructureData structureData2 = region.structures[(int)num3];
                if ((!Dedicator.isDedicated || Provider.modeConfigData.Structures.Decay_Time == 0u || time < structureData2.objActiveDate || time - structureData2.objActiveDate < Provider.modeConfigData.Structures.Decay_Time) && structureData2.structure.asset.isSaveable)
                {
                    river.writeUInt16(structureData2.structure.id);
                    river.writeUInt16(structureData2.structure.health);
                    river.writeSingleVector3(structureData2.point);
                    river.writeByte(structureData2.angle_x);
                    river.writeByte(structureData2.angle_y);
                    river.writeByte(structureData2.angle_z);
                    river.writeUInt64(structureData2.owner);
                    river.writeUInt64(structureData2.group);
                    river.writeUInt32(structureData2.objActiveDate);
                }
                num3 += 1;
            }
        }
Пример #27
0
        // Token: 0x06002825 RID: 10277 RVA: 0x000F3410 File Offset: 0x000F1810
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Groups.dat", false);

            river.writeByte(GroupManager.SAVEDATA_VERSION);
            river.writeSteamID(GroupManager.availableGroupID);
            Dictionary <CSteamID, GroupInfo> .ValueCollection values = GroupManager.knownGroups.Values;
            List <GroupInfo> list = new List <GroupInfo>();

            foreach (GroupInfo groupInfo in values)
            {
                if (groupInfo.members >= 1u && !string.IsNullOrEmpty(groupInfo.name))
                {
                    list.Add(groupInfo);
                }
            }
            river.writeInt32(list.Count);
            foreach (GroupInfo groupInfo2 in list)
            {
                river.writeSteamID(groupInfo2.groupID);
                river.writeString(groupInfo2.name);
                river.writeUInt32(groupInfo2.members);
            }
        }
Пример #28
0
        private static RecastGraph buildGraph(River river)
        {
            RecastGraph recastGraph = LevelNavigation.addGraph();
            int         graphIndex  = AstarPath.active.astarData.GetGraphIndex(recastGraph);

            TriangleMeshNode.SetNavmeshHolder(graphIndex, recastGraph);
            recastGraph.forcedBoundsCenter = river.readSingleVector3();
            recastGraph.forcedBoundsSize   = river.readSingleVector3();
            recastGraph.tileXCount         = (int)river.readByte();
            recastGraph.tileZCount         = (int)river.readByte();
            RecastGraph.NavmeshTile[] array = new RecastGraph.NavmeshTile[recastGraph.tileXCount * recastGraph.tileZCount];
            recastGraph.SetTiles(array);
            for (int i = 0; i < recastGraph.tileZCount; i++)
            {
                for (int j = 0; j < recastGraph.tileXCount; j++)
                {
                    RecastGraph.NavmeshTile navmeshTile = new RecastGraph.NavmeshTile();
                    navmeshTile.x      = j;
                    navmeshTile.z      = i;
                    navmeshTile.w      = 1;
                    navmeshTile.d      = 1;
                    navmeshTile.bbTree = new BBTree(navmeshTile);
                    int num = j + i * recastGraph.tileXCount;
                    array[num]       = navmeshTile;
                    navmeshTile.tris = new int[(int)river.readUInt16()];
                    for (int k = 0; k < navmeshTile.tris.Length; k++)
                    {
                        navmeshTile.tris[k] = (int)river.readUInt16();
                    }
                    navmeshTile.verts = new Int3[(int)river.readUInt16()];
                    for (int l = 0; l < navmeshTile.verts.Length; l++)
                    {
                        navmeshTile.verts[l] = new Int3(river.readInt32(), river.readInt32(), river.readInt32());
                    }
                    navmeshTile.nodes = new TriangleMeshNode[navmeshTile.tris.Length / 3];
                    num <<= 12;
                    for (int m = 0; m < navmeshTile.nodes.Length; m++)
                    {
                        navmeshTile.nodes[m] = new TriangleMeshNode(AstarPath.active);
                        TriangleMeshNode triangleMeshNode = navmeshTile.nodes[m];
                        triangleMeshNode.GraphIndex = (uint)graphIndex;
                        triangleMeshNode.Penalty    = 0u;
                        triangleMeshNode.Walkable   = true;
                        triangleMeshNode.v0         = (navmeshTile.tris[m * 3] | num);
                        triangleMeshNode.v1         = (navmeshTile.tris[m * 3 + 1] | num);
                        triangleMeshNode.v2         = (navmeshTile.tris[m * 3 + 2] | num);
                        triangleMeshNode.UpdatePositionFromVertices();
                        navmeshTile.bbTree.Insert(triangleMeshNode);
                    }
                    recastGraph.CreateNodeConnections(navmeshTile.nodes);
                }
            }
            for (int n = 0; n < recastGraph.tileZCount; n++)
            {
                for (int num2 = 0; num2 < recastGraph.tileXCount; num2++)
                {
                    RecastGraph.NavmeshTile tile = array[num2 + n * recastGraph.tileXCount];
                    recastGraph.ConnectTileWithNeighbours(tile);
                }
            }
            return(recastGraph);
        }
Пример #29
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Environment/Bounds.dat", false);

            river.writeByte(LevelNavigation.SAVEDATA_BOUNDS_VERSION);
            river.writeByte((byte)LevelNavigation.bounds.Count);
            byte b = 0;

            while ((int)b < LevelNavigation.bounds.Count)
            {
                river.writeSingleVector3(LevelNavigation.bounds[(int)b].center);
                river.writeSingleVector3(LevelNavigation.bounds[(int)b].size);
                b += 1;
            }
            river.closeRiver();
            River river2 = new River(Level.info.path + "/Environment/Flags_Data.dat", false);

            river2.writeByte(LevelNavigation.SAVEDATA_FLAG_DATA_VERSION);
            river2.writeByte((byte)LevelNavigation.flagData.Count);
            byte b2 = 0;

            while ((int)b2 < LevelNavigation.flagData.Count)
            {
                river2.writeString(LevelNavigation.flagData[(int)b2].difficultyGUID);
                river2.writeByte(LevelNavigation.flagData[(int)b2].maxZombies);
                river2.writeBoolean(LevelNavigation.flagData[(int)b2].spawnZombies);
                b2 += 1;
            }
            river2.closeRiver();
            River river3 = new River(Level.info.path + "/Environment/Flags.dat", false);

            river3.writeByte(LevelNavigation.SAVEDATA_FLAGS_VERSION);
            int num = LevelNavigation.flags.Count;

            while (ReadWrite.fileExists(string.Concat(new object[]
            {
                Level.info.path,
                "/Environment/Navigation_",
                num,
                ".dat"
            }), false, false))
            {
                ReadWrite.deleteFile(string.Concat(new object[]
                {
                    Level.info.path,
                    "/Environment/Navigation_",
                    num,
                    ".dat"
                }), false, false);
                num++;
            }
            river3.writeByte((byte)LevelNavigation.flags.Count);
            byte b3 = 0;

            while ((int)b3 < LevelNavigation.flags.Count)
            {
                Flag flag = LevelNavigation.flags[(int)b3];
                river3.writeSingleVector3(flag.point);
                river3.writeSingle(flag.width);
                river3.writeSingle(flag.height);
                if (flag.needsNavigationSave)
                {
                    River river4 = new River(string.Concat(new object[]
                    {
                        Level.info.path,
                        "/Environment/Navigation_",
                        b3,
                        ".dat"
                    }), false);
                    river4.writeByte(LevelNavigation.SAVEDATA_NAVIGATION_VERSION);
                    RecastGraph graph = flag.graph;
                    river4.writeSingleVector3(graph.forcedBoundsCenter);
                    river4.writeSingleVector3(graph.forcedBoundsSize);
                    river4.writeByte((byte)graph.tileXCount);
                    river4.writeByte((byte)graph.tileZCount);
                    RecastGraph.NavmeshTile[] tiles = graph.GetTiles();
                    for (int i = 0; i < graph.tileZCount; i++)
                    {
                        for (int j = 0; j < graph.tileXCount; j++)
                        {
                            RecastGraph.NavmeshTile navmeshTile = tiles[j + i * graph.tileXCount];
                            river4.writeUInt16((ushort)navmeshTile.tris.Length);
                            for (int k = 0; k < navmeshTile.tris.Length; k++)
                            {
                                river4.writeUInt16((ushort)navmeshTile.tris[k]);
                            }
                            river4.writeUInt16((ushort)navmeshTile.verts.Length);
                            for (int l = 0; l < navmeshTile.verts.Length; l++)
                            {
                                Int3 @int = navmeshTile.verts[l];
                                river4.writeInt32(@int.x);
                                river4.writeInt32(@int.y);
                                river4.writeInt32(@int.z);
                            }
                        }
                    }
                    river4.closeRiver();
                    flag.needsNavigationSave = false;
                }
                b3 += 1;
            }
            river3.closeRiver();
        }
Пример #30
0
 public static void load()
 {
     LevelNavigation._models                 = new GameObject().transform;
     LevelNavigation.models.name             = "Navigation";
     LevelNavigation.models.parent           = Level.level;
     LevelNavigation.models.tag              = "Logic";
     LevelNavigation.models.gameObject.layer = LayerMasks.LOGIC;
     LevelNavigation._bounds                 = new List <Bounds>();
     LevelNavigation.flagData                = new List <FlagData>();
     if (ReadWrite.fileExists(Level.info.path + "/Environment/Bounds.dat", false, false))
     {
         River river = new River(Level.info.path + "/Environment/Bounds.dat", false);
         byte  b     = river.readByte();
         if (b > 0)
         {
             byte b2 = river.readByte();
             for (byte b3 = 0; b3 < b2; b3 += 1)
             {
                 Vector3 vector  = river.readSingleVector3();
                 Vector3 vector2 = river.readSingleVector3();
                 LevelNavigation.bounds.Add(new Bounds(vector, vector2));
             }
         }
         river.closeRiver();
     }
     if (ReadWrite.fileExists(Level.info.path + "/Environment/Flags_Data.dat", false, false))
     {
         River river2 = new River(Level.info.path + "/Environment/Flags_Data.dat", false);
         byte  b4     = river2.readByte();
         if (b4 > 0)
         {
             byte b5 = river2.readByte();
             for (byte b6 = 0; b6 < b5; b6 += 1)
             {
                 string newDifficultyGUID = river2.readString();
                 byte   newMaxZombies     = 64;
                 if (b4 > 1)
                 {
                     newMaxZombies = river2.readByte();
                 }
                 bool newSpawnZombies = true;
                 if (b4 > 2)
                 {
                     newSpawnZombies = river2.readBoolean();
                 }
                 LevelNavigation.flagData.Add(new FlagData(newDifficultyGUID, newMaxZombies, newSpawnZombies));
             }
         }
         river2.closeRiver();
     }
     if (LevelNavigation.flagData.Count < LevelNavigation.bounds.Count)
     {
         for (int i = LevelNavigation.flagData.Count; i < LevelNavigation.bounds.Count; i++)
         {
             LevelNavigation.flagData.Add(new FlagData(string.Empty, 64, true));
         }
     }
     if (Level.isEditor)
     {
         LevelNavigation.flags = new List <Flag>();
         Object.Destroy(AstarPath.active.GetComponent <TileHandlerHelpers>());
         if (ReadWrite.fileExists(Level.info.path + "/Environment/Flags.dat", false, false))
         {
             River river3 = new River(Level.info.path + "/Environment/Flags.dat", false);
             byte  b7     = river3.readByte();
             if (b7 > 2)
             {
                 byte b8 = river3.readByte();
                 for (byte b9 = 0; b9 < b8; b9 += 1)
                 {
                     Vector3 newPoint = river3.readSingleVector3();
                     float   num      = river3.readSingle();
                     float   num2     = river3.readSingle();
                     if (b7 < 4)
                     {
                         num  *= 0.5f;
                         num2 *= 0.5f;
                     }
                     RecastGraph recastGraph = null;
                     if (ReadWrite.fileExists(string.Concat(new object[]
                     {
                         Level.info.path,
                         "/Environment/Navigation_",
                         b9,
                         ".dat"
                     }), false, false))
                     {
                         River river4 = new River(string.Concat(new object[]
                         {
                             Level.info.path,
                             "/Environment/Navigation_",
                             b9,
                             ".dat"
                         }), false);
                         byte b10 = river4.readByte();
                         if (b10 > 0)
                         {
                             recastGraph = LevelNavigation.buildGraph(river4);
                         }
                         river4.closeRiver();
                     }
                     if (recastGraph == null)
                     {
                         recastGraph = LevelNavigation.addGraph();
                     }
                     LevelNavigation.flags.Add(new Flag(newPoint, num, num2, recastGraph, LevelNavigation.flagData[(int)b9]));
                 }
             }
             river3.closeRiver();
         }
     }
     else if (Provider.isServer)
     {
         byte b11 = 0;
         while (ReadWrite.fileExists(string.Concat(new object[]
         {
             Level.info.path,
             "/Environment/Navigation_",
             b11,
             ".dat"
         }), false, false))
         {
             River river5 = new River(string.Concat(new object[]
             {
                 Level.info.path,
                 "/Environment/Navigation_",
                 b11,
                 ".dat"
             }), false);
             byte b12 = river5.readByte();
             if (b12 > 0)
             {
                 LevelNavigation.buildGraph(river5);
             }
             river5.closeRiver();
             b11 += 1;
         }
     }
 }