Exemple #1
0
 public static void load()
 {
     LevelVehicles._models                 = new GameObject().transform;
     LevelVehicles.models.name             = "Vehicles";
     LevelVehicles.models.parent           = Level.spawns;
     LevelVehicles.models.tag              = "Logic";
     LevelVehicles.models.gameObject.layer = LayerMasks.LOGIC;
     if (Level.isEditor || Provider.isServer)
     {
         LevelVehicles._tables = new List <VehicleTable>();
         LevelVehicles._spawns = new List <VehicleSpawnpoint>();
         if (ReadWrite.fileExists(Level.info.path + "/Spawns/Vehicles.dat", false, false))
         {
             River river = new River(Level.info.path + "/Spawns/Vehicles.dat", false);
             byte  b     = river.readByte();
             if (b > 1 && b < 3)
             {
                 river.readSteamID();
             }
             byte b2 = river.readByte();
             for (byte b3 = 0; b3 < b2; b3 += 1)
             {
                 Color  newColor = river.readColor();
                 string text     = river.readString();
                 ushort num;
                 if (b > 3)
                 {
                     num = river.readUInt16();
                     if (num != 0 && SpawnTableTool.resolve(num) == 0)
                     {
                         Assets.errors.Add(string.Concat(new object[]
                         {
                             Level.info.name,
                             " vehicle table \"",
                             text,
                             "\" references invalid spawn table ",
                             num,
                             "!"
                         }));
                     }
                 }
                 else
                 {
                     num = 0;
                 }
                 List <VehicleTier> list = new List <VehicleTier>();
                 byte b4 = river.readByte();
                 for (byte b5 = 0; b5 < b4; b5 += 1)
                 {
                     string newName            = river.readString();
                     float  newChance          = river.readSingle();
                     List <VehicleSpawn> list2 = new List <VehicleSpawn>();
                     byte b6 = river.readByte();
                     for (byte b7 = 0; b7 < b6; b7 += 1)
                     {
                         ushort newVehicle = river.readUInt16();
                         list2.Add(new VehicleSpawn(newVehicle));
                     }
                     list.Add(new VehicleTier(list2, newName, newChance));
                 }
                 LevelVehicles.tables.Add(new VehicleTable(list, newColor, text, num));
                 if (!Level.isEditor)
                 {
                     LevelVehicles.tables[(int)b3].buildTable();
                 }
             }
             ushort num2 = river.readUInt16();
             for (int i = 0; i < (int)num2; i++)
             {
                 byte    newType  = river.readByte();
                 Vector3 newPoint = river.readSingleVector3();
                 float   newAngle = (float)(river.readByte() * 2);
                 LevelVehicles.spawns.Add(new VehicleSpawnpoint(newType, newPoint, newAngle));
             }
             river.closeRiver();
         }
     }
 }