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