public override void Process(InitialPlayerSync packet) { EscapePodModel escapePod = packet.EscapePodsData.Find(x => x.Id.Equals(packet.AssignedEscapePodId)); escapePodManager.AssignPlayerToEscapePod(escapePod); escapePodManager.SyncEscapePodIds(packet.EscapePodsData); }
public void AddNewEscapePod(EscapePodModel escapePod) { if (!escapePodsById.ContainsKey(escapePod.Id)) { escapePodsById[escapePod.Id] = CreateNewEscapePod(escapePod); } }
public void AssignPlayerToEscapePod(EscapePodModel escapePod) { Validate.NotNull(escapePod, "Escape pod can not be null"); EscapePod.main.transform.position = escapePod.Location; EscapePod.main.playerSpawn.position = escapePod.Location + playerSpawnRelativeToEscapePodPosition; // This Might not correctly handle rotated EscapePods Rigidbody rigidbody = EscapePod.main.GetComponent <Rigidbody>(); if (rigidbody != null) { Log.Debug("Freezing escape pod rigidbody"); rigidbody.constraints = RigidbodyConstraints.FreezeAll; } else { Log.Error("Escape pod did not have a rigid body!"); } Player.main.transform.position = EscapePod.main.playerSpawn.position; Player.main.transform.rotation = EscapePod.main.playerSpawn.rotation; Player.main.escapePod.Update(true); // Tells the game to update various EscapePod features MyEscapePodId = escapePod.Id; }
private void SetEscapePodInfo(List <EscapePodModel> escapePodsData, string assignedEscapePodGuid) { EscapePodModel escapePod = escapePodsData.Find(x => x.Guid == assignedEscapePodGuid); escapePodManager.AssignPlayerToEscapePod(escapePod); escapePodManager.SyncEscapePodGuids(escapePodsData); }
private GameObject CreateNewEscapePod(EscapePodModel model) { SURPRESS_ESCAPE_POD_AWAKE_METHOD = true; GameObject escapePod; if (model.Guid == myEscapePodGuid) { escapePod = EscapePod.main.gameObject; } else { escapePod = UnityEngine.Object.Instantiate(EscapePod.main.gameObject); } escapePod.transform.position = model.Location; StorageContainer storageContainer = escapePod.RequireComponentInChildren <StorageContainer>(); GuidHelper.SetNewGuid(storageContainer.gameObject, model.StorageContainerGuid); MedicalCabinet medicalCabinet = escapePod.RequireComponentInChildren <MedicalCabinet>(); GuidHelper.SetNewGuid(medicalCabinet.gameObject, model.MedicalFabricatorGuid); Fabricator fabricator = escapePod.RequireComponentInChildren <Fabricator>(); GuidHelper.SetNewGuid(fabricator.gameObject, model.FabricatorGuid); Radio radio = escapePod.RequireComponentInChildren <Radio>(); GuidHelper.SetNewGuid(radio.gameObject, model.RadioGuid); return(escapePod); }
public void RepairEscapePod(NitroxId id) { lock (escapePodData.EscapePods) { EscapePodModel escapePod = escapePodData.EscapePods.Find(ep => ep.Id == id); escapePod.Damaged = false; } }
public void RepairEscapePodRadio(NitroxId id) { lock (escapePods) { EscapePodModel escapePod = escapePods.Find(ep => ep.RadioId == id); escapePod.RadioDamaged = false; } }
public void RepairEscapePodRadio(string guid) { lock (escapePodData.EscapePods) { EscapePodModel escapePod = escapePodData.EscapePods.Find(ep => ep.RadioGuid == guid); escapePod.RadioDamaged = false; } }
public override IEnumerator Process(InitialPlayerSync packet, WaitScreen.ManualWaitItem waitScreenItem) { EscapePodModel escapePod = packet.EscapePodsData.Find(x => x.Id.Equals(packet.AssignedEscapePodId)); escapePodManager.AssignPlayerToEscapePod(escapePod); yield return(null); escapePodManager.SyncEscapePodIds(packet.EscapePodsData); }
public GameObject CreateNewEscapePod(EscapePodModel model) { SURPRESS_ESCAPE_POD_AWAKE_METHOD = true; GameObject escapePod; if (model.Id == MyEscapePodId) { escapePod = EscapePod.main.gameObject; } else { escapePod = Object.Instantiate(EscapePod.main.gameObject); NitroxEntity.SetNewId(escapePod, model.Id); } escapePod.transform.position = model.Location.ToUnity(); StorageContainer storageContainer = escapePod.RequireComponentInChildren <StorageContainer>(); using (packetSender.Suppress <ItemContainerRemove>()) { storageContainer.container.Clear(); } NitroxEntity.SetNewId(storageContainer.gameObject, model.StorageContainerId); MedicalCabinet medicalCabinet = escapePod.RequireComponentInChildren <MedicalCabinet>(); NitroxEntity.SetNewId(medicalCabinet.gameObject, model.MedicalFabricatorId); Fabricator fabricator = escapePod.RequireComponentInChildren <Fabricator>(); NitroxEntity.SetNewId(fabricator.gameObject, model.FabricatorId); Radio radio = escapePod.RequireComponentInChildren <Radio>(); NitroxEntity.SetNewId(radio.gameObject, model.RadioId); DamageEscapePod(model.Damaged, model.RadioDamaged); FixStartMethods(escapePod); // Start() isn't executed for the EscapePod, why? Idk, maybe because it's a scene... MultiplayerCinematicReference reference = escapePod.AddComponent <MultiplayerCinematicReference>(); foreach (PlayerCinematicController controller in escapePod.GetComponentsInChildren <PlayerCinematicController>()) { reference.AddController(controller); } SURPRESS_ESCAPE_POD_AWAKE_METHOD = false; return(escapePod); }
private void InitializePodForNextPlayer() { foreach (EscapePodModel pod in EscapePods) { if (!pod.IsFull()) { podForNextPlayer = pod; return; } } podForNextPlayer = CreateNewEscapePod(); }
private EscapePodModel CreateNewEscapePod() { EscapePodModel escapePod = new EscapePodModel(); escapePod.InitEscapePodModel(new NitroxId(), GetStartPosition(), new NitroxId(), new NitroxId(), new NitroxId(), new NitroxId(), true, true); EscapePods.Add(escapePod); return(escapePod); }
private EscapePodModel CreateNewEscapePod() { lock (escapePods) { int totalEscapePods = escapePods.Count; EscapePodModel escapePod = new EscapePodModel("escapePod" + totalEscapePods, new Vector3(-112.2f + (ESCAPE_POD_X_OFFSET * totalEscapePods), 0.0f, -322.6f), "escapePodFab" + totalEscapePods, "escapePodMedFab" + totalEscapePods, "escapePodStorageFab" + totalEscapePods, "escapePodRadioFab" + totalEscapePods); escapePods.Add(escapePod); return(escapePod); } }
public GameObject CreateNewEscapePod(EscapePodModel model) { SURPRESS_ESCAPE_POD_AWAKE_METHOD = true; GameObject escapePod; if (model.Id == MyEscapePodId) { escapePod = EscapePod.main.gameObject; } else { escapePod = Object.Instantiate(EscapePod.main.gameObject); NitroxEntity.SetNewId(escapePod, model.Id); } escapePod.transform.position = model.Location.ToUnity(); StorageContainer storageContainer = escapePod.RequireComponentInChildren <StorageContainer>(); using (packetSender.Suppress <ItemContainerRemove>()) { storageContainer.container.Clear(); } NitroxEntity.SetNewId(storageContainer.gameObject, model.StorageContainerId); MedicalCabinet medicalCabinet = escapePod.RequireComponentInChildren <MedicalCabinet>(); NitroxEntity.SetNewId(medicalCabinet.gameObject, model.MedicalFabricatorId); Fabricator fabricator = escapePod.RequireComponentInChildren <Fabricator>(); NitroxEntity.SetNewId(fabricator.gameObject, model.FabricatorId); Radio radio = escapePod.RequireComponentInChildren <Radio>(); NitroxEntity.SetNewId(radio.gameObject, model.RadioId); DamageEscapePod(model.Damaged, model.RadioDamaged); FixStartMethods(escapePod); SURPRESS_ESCAPE_POD_AWAKE_METHOD = false; return(escapePod); }
public void AssignPlayerToEscapePod(string playerId) { lock (escapePodsByPlayerId) { if (escapePodsByPlayerId.ContainsKey(playerId)) { return; } if (podNotFullYet.AssignedPlayers.Count == PLAYERS_PER_ESCAPEPOD) { podNotFullYet = CreateNewEscapePod(); } podNotFullYet.AssignedPlayers.Add(playerId); escapePodsByPlayerId[playerId] = podNotFullYet; } }
private EscapePodModel CreateNewEscapePod() { int totalEscapePods = EscapePods.Count; EscapePodModel escapePod = new EscapePodModel(); escapePod.InitEscapePodModel(new NitroxId(), new NitroxVector3(-112.2f + ESCAPE_POD_X_OFFSET * totalEscapePods, 0.0f, -322.6f), new NitroxId(), new NitroxId(), new NitroxId(), new NitroxId(), true, true); EscapePods.Add(escapePod); return(escapePod); }
public NitroxId AssignPlayerToEscapePod(ushort playerId, out Optional <EscapePodModel> newlyCreatedPod) { newlyCreatedPod = Optional.Empty; if (escapePodsByPlayerId.ContainsKey(playerId)) { return(escapePodsByPlayerId[playerId].Id); } if (podForNextPlayer.IsFull()) { newlyCreatedPod = Optional.Of(CreateNewEscapePod()); podForNextPlayer = newlyCreatedPod.Value; } podForNextPlayer.AssignedPlayers.Add(playerId); escapePodsByPlayerId[playerId] = podForNextPlayer; return(podForNextPlayer.Id); }
public GameObject CreateNewEscapePod(EscapePodModel model) { SURPRESS_ESCAPE_POD_AWAKE_METHOD = true; GameObject escapePod; if (model.Guid == MyEscapePodGuid) { escapePod = EscapePod.main.gameObject; } else { escapePod = Object.Instantiate(EscapePod.main.gameObject); } escapePod.transform.position = model.Location; StorageContainer storageContainer = escapePod.RequireComponentInChildren <StorageContainer>(); using (packetSender.Suppress <ItemContainerRemove>()) { storageContainer.container.Clear(); } GuidHelper.SetNewGuid(storageContainer.gameObject, model.StorageContainerGuid); MedicalCabinet medicalCabinet = escapePod.RequireComponentInChildren <MedicalCabinet>(); GuidHelper.SetNewGuid(medicalCabinet.gameObject, model.MedicalFabricatorGuid); Fabricator fabricator = escapePod.RequireComponentInChildren <Fabricator>(); GuidHelper.SetNewGuid(fabricator.gameObject, model.FabricatorGuid); Radio radio = escapePod.RequireComponentInChildren <Radio>(); GuidHelper.SetNewGuid(radio.gameObject, model.RadioGuid); return(escapePod); }
private GameObject CreateNewEscapePod(EscapePodModel model) { SURPRESS_ESCAPE_POD_AWAKE_METHOD = true; GameObject escapePod; if (model.Guid == myEscapePodGuid) { escapePod = EscapePod.main.gameObject; } else { escapePod = UnityEngine.Object.Instantiate(EscapePod.main.gameObject); } escapePod.transform.position = ApiHelper.Vector3(model.Location); StorageContainer storageContainer = escapePod.GetComponentInChildren <StorageContainer>(); Validate.NotNull(storageContainer, "StorageContainer can not be null"); GuidHelper.SetNewGuid(storageContainer.gameObject, model.StorageContainerGuid); MedicalCabinet medicalCabinet = escapePod.GetComponentInChildren <MedicalCabinet>(); Validate.NotNull(medicalCabinet, "medicalCabinet can not be null"); GuidHelper.SetNewGuid(medicalCabinet.gameObject, model.MedicalFabricatorGuid); Fabricator fabricator = escapePod.GetComponentInChildren <Fabricator>(); Validate.NotNull(fabricator, "fabricator can not be null"); GuidHelper.SetNewGuid(fabricator.gameObject, model.FabricatorGuid); Radio radio = escapePod.GetComponentInChildren <Radio>(); Validate.NotNull(radio, "radio can not be null"); GuidHelper.SetNewGuid(radio.gameObject, model.RadioGuid); return(escapePod); }
public void AssignPlayerToEscapePod(EscapePodModel escapePod) { EscapePod.main.transform.position = escapePod.Location; EscapePod.main.playerSpawn.position = escapePod.Location + playerSpawnRelativeToEscapePodPosition; Rigidbody rigidbody = EscapePod.main.GetComponent <Rigidbody>(); if (rigidbody != null) { Log.Debug("Freezing escape pod rigidbody"); rigidbody.constraints = RigidbodyConstraints.FreezeAll; } else { Log.Error("Escape pod did not have a rigid body!"); } Player.main.transform.position = EscapePod.main.playerSpawn.position; Player.main.transform.rotation = EscapePod.main.playerSpawn.rotation; MyEscapePodId = escapePod.Id; }
public void EscapePodDataTest() { foreach (PersistedWorldData worldDataAfter in worldsDataAfter) { Assert.AreEqual(worldData.WorldData.EscapePodData.EscapePods.Count, worldDataAfter.WorldData.EscapePodData.EscapePods.Count, "WorldData.EscapePodData.EscapePods.Count is not equal"); for (int index = 0; index < worldData.WorldData.EscapePodData.EscapePods.Count; index++) { EscapePodModel escapePod = worldData.WorldData.EscapePodData.EscapePods[index]; EscapePodModel escapePodAfter = worldDataAfter.WorldData.EscapePodData.EscapePods[index]; Assert.AreEqual(escapePod.Id, escapePodAfter.Id, "WorldData.EscapePodData.EscapePods.Id is not equal"); Assert.AreEqual(escapePod.Location, escapePodAfter.Location, "WorldData.EscapePodData.EscapePods.Location is not equal"); Assert.AreEqual(escapePod.FabricatorId, escapePodAfter.FabricatorId, "WorldData.EscapePodData.EscapePods.FabricatorId is not equal"); Assert.AreEqual(escapePod.MedicalFabricatorId, escapePodAfter.MedicalFabricatorId, "WorldData.EscapePodData.EscapePods.MedicalFabricatorId is not equal"); Assert.AreEqual(escapePod.StorageContainerId, escapePodAfter.StorageContainerId, "WorldData.EscapePodData.EscapePods.StorageContainerId is not equal"); Assert.AreEqual(escapePod.RadioId, escapePodAfter.RadioId, "WorldData.EscapePodData.EscapePods.RadioId is not equal"); Assert.IsTrue(escapePod.AssignedPlayers.SequenceEqual(escapePodAfter.AssignedPlayers), "WorldData.EscapePodData.EscapePods.AssignedPlayers is not equal"); Assert.AreEqual(escapePod.Damaged, escapePodAfter.Damaged, "WorldData.EscapePodData.EscapePods.Damaged is not equal"); Assert.AreEqual(escapePod.RadioDamaged, escapePodAfter.RadioDamaged, "WorldData.EscapePodData.EscapePods.RadioDamaged is not equal"); } } }
public void EscapePodDataTest() { for (int serializerIndex = 0; serializerIndex < worldsDataAfter.Length; serializerIndex++) { PersistedWorldData worldDataAfter = worldsDataAfter[serializerIndex]; Assert.AreEqual(worldData.WorldData.EscapePodData.EscapePods.Count, worldDataAfter.WorldData.EscapePodData.EscapePods.Count, $"WorldData.EscapePodData.EscapePods.Count is not equal while using {serverSerializers[serializerIndex]}."); for (int index = 0; index < worldData.WorldData.EscapePodData.EscapePods.Count; index++) { EscapePodModel escapePod = worldData.WorldData.EscapePodData.EscapePods[index]; EscapePodModel escapePodAfter = worldDataAfter.WorldData.EscapePodData.EscapePods[index]; Assert.AreEqual(escapePod.Id, escapePodAfter.Id, $"WorldData.EscapePodData.EscapePods.Id is not equal while using {serverSerializers[serializerIndex]}."); Assert.AreEqual(escapePod.Location, escapePodAfter.Location, $"WorldData.EscapePodData.EscapePods.Location is not equal while using {serverSerializers[serializerIndex]}."); Assert.AreEqual(escapePod.FabricatorId, escapePodAfter.FabricatorId, $"WorldData.EscapePodData.EscapePods.FabricatorId is not equal while using {serverSerializers[serializerIndex]}."); Assert.AreEqual(escapePod.MedicalFabricatorId, escapePodAfter.MedicalFabricatorId, $"WorldData.EscapePodData.EscapePods.MedicalFabricatorId is not equal while using {serverSerializers[serializerIndex]}."); Assert.AreEqual(escapePod.StorageContainerId, escapePodAfter.StorageContainerId, $"WorldData.EscapePodData.EscapePods.StorageContainerId is not equal while using {serverSerializers[serializerIndex]}."); Assert.AreEqual(escapePod.RadioId, escapePodAfter.RadioId, $"WorldData.EscapePodData.EscapePods.RadioId is not equal while using {serverSerializers[serializerIndex]}."); Assert.IsTrue(escapePod.AssignedPlayers.SequenceEqual(escapePodAfter.AssignedPlayers), $"WorldData.EscapePodData.EscapePods.AssignedPlayers is not equal while using {serverSerializers[serializerIndex]}."); Assert.AreEqual(escapePod.Damaged, escapePodAfter.Damaged, $"WorldData.EscapePodData.EscapePods.Damaged is not equal while using {serverSerializers[serializerIndex]}."); Assert.AreEqual(escapePod.RadioDamaged, escapePodAfter.RadioDamaged, $"WorldData.EscapePodData.EscapePods.RadioDamaged is not equal while using {serverSerializers[serializerIndex]}."); } } }
public AddEscapePod(EscapePodModel escapePod) { EscapePod = escapePod; }
public EscapePodManager() { this.escapePods = new List <EscapePodModel>(); this.escapePodsByPlayerId = new Dictionary <String, EscapePodModel>(); this.podNotFullYet = CreateNewEscapePod(); }
public EscapePodManager() { podNotFullYet = CreateNewEscapePod(); }