// Token: 0x060025B8 RID: 9656 RVA: 0x000DCBB8 File Offset: 0x000DAFB8 public static PlayerSpawnpoint getSpawn(bool isAlt) { List <PlayerSpawnpoint> list = (!isAlt) ? LevelPlayers.getRegSpawns() : LevelPlayers.getAltSpawns(); if (list.Count == 0) { return(new PlayerSpawnpoint(new Vector3(0f, 256f, 0f), 0f, isAlt)); } return(list[UnityEngine.Random.Range(0, list.Count)]); }
private bool checkClaims() { if (base.player.movement.isSafe && base.player.movement.isSafeInfo.noBuildables) { if (base.channel.isOwner) { PlayerUI.hint(null, EPlayerMessage.SAFEZONE); } return(false); } if (!ClaimManager.checkCanBuild(this.point, base.channel.owner.playerID.steamID, base.player.quests.groupID, false)) { if (base.channel.isOwner) { PlayerUI.hint(null, EPlayerMessage.CLAIM); } return(false); } if (PlayerClipVolumeUtility.isPointInsideVolume(this.point)) { if (base.channel.isOwner) { PlayerUI.hint(null, EPlayerMessage.BOUNDS); } return(false); } if (!LevelPlayers.checkCanBuild(this.point)) { if (base.channel.isOwner) { PlayerUI.hint(null, EPlayerMessage.SPAWN); } return(false); } if (Dedicator.isDedicated) { this.boundsRotation = Quaternion.Euler(-90f, this.angle + (float)(this.rotate * 90), 0f); } else { this.boundsRotation = this.help.rotation; } if (Physics.OverlapBoxNonAlloc(this.point + this.boundsRotation * this.boundsCenter, this.boundsOverlap, UseableStructure.checkColliders, this.boundsRotation, RayMasks.BLOCK_CHAR_BUILDABLE_OVERLAP, 2) > 0) { if (base.channel.isOwner) { PlayerUI.hint(null, EPlayerMessage.BLOCKED); } return(false); } return(true); }
public static void save() { LevelObjects.save(); LevelLighting.save(); LevelGround.save(); LevelRoads.save(); if (!Level.isVR) { LevelNavigation.save(); LevelNodes.save(); LevelItems.save(); LevelPlayers.save(); LevelZombies.save(); LevelVehicles.save(); LevelAnimals.save(); LevelVisibility.save(); } Editor.save(); }
// 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(); } }
public IEnumerator init(int id) { if (!Level.isVR) { LevelNavigation.load(); } LoadingUI.updateProgress(1f / Level.STEPS); yield return null; LevelObjects.load(); LoadingUI.updateProgress(2f / Level.STEPS); yield return null; LevelLighting.load(Level.size); LoadingUI.updateProgress(3f / Level.STEPS); yield return null; LevelGround.load(Level.size); LoadingUI.updateProgress(4f / Level.STEPS); yield return null; LevelRoads.load(); LoadingUI.updateProgress(5f / Level.STEPS); yield return null; if (!Level.isVR) { LevelNodes.load(); LoadingUI.updateProgress(6f / Level.STEPS); yield return null; LevelItems.load(); LoadingUI.updateProgress(7f / Level.STEPS); yield return null; } LevelPlayers.load(); LoadingUI.updateProgress(8f / Level.STEPS); yield return null; if (!Level.isVR) { LevelZombies.load(); LoadingUI.updateProgress(9f / Level.STEPS); yield return null; LevelVehicles.load(); LoadingUI.updateProgress(10f / Level.STEPS); yield return null; LevelAnimals.load(); LoadingUI.updateProgress(11f / Level.STEPS); yield return null; } LevelVisibility.load(); LoadingUI.updateProgress(12f / Level.STEPS); yield return null; if (Level.loadingSteps != null) { Level.loadingSteps(); } yield return null; LevelBarricades.load(); yield return null; LevelStructures.load(); Level._hash = Hash.combine(new byte[][] { Level.getLevelHash(Level.info.path), LevelGround.hash, LevelLighting.hash, LevelObjects.hash }); Physics.gravity = new Vector3(0f, Level.info.configData.Gravity, 0f); yield return null; Resources.UnloadUnusedAssets(); GC.Collect(); yield return null; Level._editing = new GameObject().transform; Level.editing.name = "Editing"; Level.editing.parent = Level.level; if (Level.isEditor) { Level.mapper = ((GameObject)Object.Instantiate(Resources.Load("Edit/Mapper"))).transform; Level.mapper.name = "Mapper"; Level.mapper.parent = Level.editing; Level.mapper.position = new Vector3(0f, 1028f, 0f); Level.mapper.rotation = Quaternion.Euler(90f, 0f, 0f); Level.mapper.GetComponent<Camera>().orthographicSize = (float)(Level.size / 2 - Level.border); if (Level.isDevkit) { GameObject gameObject = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Edit2/Editor")); if (gameObject != null) { gameObject.name = "Editor"; gameObject.transform.parent = Level.editing; } } else { Transform transform = ((GameObject)Object.Instantiate(Resources.Load((!Level.isVR) ? "Edit/Editor" : "Edit/VR"))).transform; transform.name = "Editor"; transform.parent = Level.editing; transform.tag = "Logic"; transform.gameObject.layer = LayerMasks.LOGIC; } } yield return null; if (Level.onPrePreLevelLoaded != null) { Level.onPrePreLevelLoaded(id); } yield return null; if (Level.onPreLevelLoaded != null) { Level.onPreLevelLoaded(id); } yield return null; if (Level.onLevelLoaded != null) { Level.onLevelLoaded(id); } yield return null; if (Level.onPostLevelLoaded != null) { Level.onPostLevelLoaded(id); } yield return null; if (!Level.isEditor && Level.info != null && Level.info.hasTriggers) { Transform transform2 = null; string text = Level.info.name.ToLower(); if (text != null) { if (!(text == "germany")) { if (!(text == "pei")) { if (!(text == "russia")) { if (text == "tutorial") { transform2 = ((GameObject)Object.Instantiate(Resources.Load("Level/Triggers_Tutorial"))).transform; } } else { transform2 = ((GameObject)Object.Instantiate(Resources.Load("Level/Triggers_Russia"))).transform; } } else { transform2 = ((GameObject)Object.Instantiate(Resources.Load("Level/Triggers_PEI"))).transform; } } else { transform2 = ((GameObject)Object.Instantiate(Resources.Load("Level/Triggers_Germany"))).transform; } } if (transform2 != null) { transform2.position = Vector3.zero; transform2.rotation = Quaternion.identity; transform2.name = "Triggers"; transform2.parent = Level.clips; } } yield return null; Level._isLoaded = true; Level.isLoadingContent = false; yield break; }
private void Update() { if (!EditorSpawns.isSpawning) { return; } if (!EditorInteract.isFlying && GUIUtility.hotControl == 0) { if (Input.GetKeyDown(ControlsSettings.tool_0)) { if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_RESOURCE) { EditorSpawns.spawnMode = ESpawnMode.ADD_RESOURCE; } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_ITEM) { EditorSpawns.spawnMode = ESpawnMode.ADD_ITEM; } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_PLAYER) { EditorSpawns.spawnMode = ESpawnMode.ADD_PLAYER; } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_ZOMBIE) { EditorSpawns.spawnMode = ESpawnMode.ADD_ZOMBIE; } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_VEHICLE) { EditorSpawns.spawnMode = ESpawnMode.ADD_VEHICLE; } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_ANIMAL) { EditorSpawns.spawnMode = ESpawnMode.ADD_ANIMAL; } } if (Input.GetKeyDown(ControlsSettings.tool_1)) { if (EditorSpawns.spawnMode == ESpawnMode.ADD_RESOURCE) { EditorSpawns.spawnMode = ESpawnMode.REMOVE_RESOURCE; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ITEM) { EditorSpawns.spawnMode = ESpawnMode.REMOVE_ITEM; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_PLAYER) { EditorSpawns.spawnMode = ESpawnMode.REMOVE_PLAYER; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ZOMBIE) { EditorSpawns.spawnMode = ESpawnMode.REMOVE_ZOMBIE; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_VEHICLE) { EditorSpawns.spawnMode = ESpawnMode.REMOVE_VEHICLE; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ANIMAL) { EditorSpawns.spawnMode = ESpawnMode.REMOVE_ANIMAL; } } if (EditorInteract.worldHit.transform != null) { if (EditorSpawns.spawnMode == ESpawnMode.ADD_ITEM) { EditorSpawns.itemSpawn.position = EditorInteract.worldHit.point; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_PLAYER) { EditorSpawns.playerSpawn.position = EditorInteract.worldHit.point; EditorSpawns.playerSpawnAlt.position = EditorInteract.worldHit.point; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ZOMBIE) { EditorSpawns.zombieSpawn.position = EditorInteract.worldHit.point + Vector3.up; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_VEHICLE) { EditorSpawns.vehicleSpawn.position = EditorInteract.worldHit.point; } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ANIMAL) { EditorSpawns.animalSpawn.position = EditorInteract.worldHit.point; } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_RESOURCE || EditorSpawns.spawnMode == ESpawnMode.REMOVE_ITEM || EditorSpawns.spawnMode == ESpawnMode.REMOVE_PLAYER || EditorSpawns.spawnMode == ESpawnMode.REMOVE_ZOMBIE || EditorSpawns.spawnMode == ESpawnMode.REMOVE_VEHICLE || EditorSpawns.spawnMode == ESpawnMode.REMOVE_ANIMAL) { EditorSpawns.remove.position = EditorInteract.worldHit.point; } } if (Input.GetKeyDown(ControlsSettings.primary) && EditorInteract.worldHit.transform != null) { Vector3 point = EditorInteract.worldHit.point; if (EditorSpawns.spawnMode == ESpawnMode.ADD_RESOURCE) { if ((int)EditorSpawns.selectedResource < LevelGround.resources.Length) { LevelGround.addSpawn(point, EditorSpawns.selectedResource, false); } } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_RESOURCE) { LevelGround.removeSpawn(point, (float)EditorSpawns.radius); } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ITEM) { if ((int)EditorSpawns.selectedItem < LevelItems.tables.Count) { LevelItems.addSpawn(point); } } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_ITEM) { LevelItems.removeSpawn(point, (float)EditorSpawns.radius); } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_PLAYER) { LevelPlayers.addSpawn(point, EditorSpawns.rotation, EditorSpawns.selectedAlt); } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_PLAYER) { LevelPlayers.removeSpawn(point, (float)EditorSpawns.radius); } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ZOMBIE) { if ((int)EditorSpawns.selectedZombie < LevelZombies.tables.Count) { LevelZombies.addSpawn(point); } } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_ZOMBIE) { LevelZombies.removeSpawn(point, (float)EditorSpawns.radius); } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_VEHICLE) { LevelVehicles.addSpawn(point, EditorSpawns.rotation); } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_VEHICLE) { LevelVehicles.removeSpawn(point, (float)EditorSpawns.radius); } else if (EditorSpawns.spawnMode == ESpawnMode.ADD_ANIMAL) { LevelAnimals.addSpawn(point); } else if (EditorSpawns.spawnMode == ESpawnMode.REMOVE_ANIMAL) { LevelAnimals.removeSpawn(point, (float)EditorSpawns.radius); } } } }
// Token: 0x0600287A RID: 10362 RVA: 0x000F56AC File Offset: 0x000F3AAC private void arenaSpawn() { for (byte b = 0; b < Regions.WORLD_SIZE; b += 1) { for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1) { if (LevelItems.spawns[(int)b, (int)b2].Count > 0) { for (int i = 0; i < LevelItems.spawns[(int)b, (int)b2].Count; i++) { ItemSpawnpoint itemSpawnpoint = LevelItems.spawns[(int)b, (int)b2][i]; ushort item = LevelItems.getItem(itemSpawnpoint); if (item != 0) { Item item2 = new Item(item, EItemOrigin.ADMIN); ItemManager.dropItem(item2, itemSpawnpoint.point, false, false, false); } } } } } List <VehicleSpawnpoint> spawns = LevelVehicles.spawns; for (int j = 0; j < spawns.Count; j++) { VehicleSpawnpoint vehicleSpawnpoint = spawns[j]; ushort vehicle = LevelVehicles.getVehicle(vehicleSpawnpoint); if (vehicle != 0) { Vector3 point = vehicleSpawnpoint.point; point.y += 1f; VehicleManager.spawnVehicle(vehicle, point, Quaternion.Euler(0f, vehicleSpawnpoint.angle, 0f)); } } List <PlayerSpawnpoint> altSpawns = LevelPlayers.getAltSpawns(); float num = LevelManager.arenaCurrentRadius - SafezoneNode.MIN_SIZE; num *= num; for (int k = altSpawns.Count - 1; k >= 0; k--) { PlayerSpawnpoint playerSpawnpoint = altSpawns[k]; float num2 = Mathf.Pow(playerSpawnpoint.point.x - LevelManager.arenaCurrentCenter.x, 2f) + Mathf.Pow(playerSpawnpoint.point.z - LevelManager.arenaCurrentCenter.z, 2f); if (num2 > num) { altSpawns.RemoveAt(k); } } for (int l = 0; l < Provider.clients.Count; l++) { if (altSpawns.Count == 0) { break; } SteamPlayer steamPlayer = Provider.clients[l]; if (steamPlayer != null && !(steamPlayer.player == null) && !steamPlayer.player.life.isDead) { int index = UnityEngine.Random.Range(0, altSpawns.Count); PlayerSpawnpoint playerSpawnpoint2 = altSpawns[index]; altSpawns.RemoveAt(index); ArenaPlayer arenaPlayer = new ArenaPlayer(steamPlayer); arenaPlayer.steamPlayer.player.life.sendRevive(); arenaPlayer.steamPlayer.player.sendTeleport(playerSpawnpoint2.point, MeasurementTool.angleToByte(playerSpawnpoint2.angle)); LevelManager.arenaPlayers.Add(arenaPlayer); foreach (ArenaLoadout arenaLoadout in Level.info.configData.Arena_Loadouts) { for (ushort num3 = 0; num3 < arenaLoadout.Amount; num3 += 1) { ushort newID = SpawnTableTool.resolve(arenaLoadout.Table_ID); arenaPlayer.steamPlayer.player.inventory.forceAddItemAuto(new Item(newID, true), true, false, true, false); } } } } this.arenaAirdrop(); LevelManager.arenaState = EArenaState.PLAY; base.channel.send("tellLevelNumber", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { (byte)LevelManager.arenaPlayers.Count }); }