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 Clicked(MedicalCabinet medicalCabinet) { NitroxId id = NitroxEntity.GetId(medicalCabinet.gameObject); bool doorOpen = medicalCabinet.doorOpen; MedicalCabinetClicked cabinetClicked = new(id, doorOpen, medicalCabinet.hasMedKit, medicalCabinet.timeSpawnMedKit); packetSender.Send(cabinetClicked); }
static void Prefix(MedicalCabinet __instance) { if (medKitSpawnInterval == 0f) { medKitSpawnInterval = __instance.medKitSpawnInterval; } __instance.medKitSpawnInterval = medKitSpawnInterval / Main.config.speedMedkitInterval; }
public void Clicked(MedicalCabinet medicalCabinet) { string guid = GuidHelper.GetGuid(medicalCabinet.gameObject); bool doorOpen = (bool)medicalCabinet.ReflectionGet("doorOpen"); MedicalCabinetClicked cabinetClicked = new MedicalCabinetClicked(guid, doorOpen, medicalCabinet.hasMedKit, medicalCabinet.timeSpawnMedKit); packetSender.Send(cabinetClicked); }
public void Clicked(MedicalCabinet medicalCabinet) { NitroxId id = NitroxIdentifier.GetId(medicalCabinet.gameObject); bool doorOpen = (bool)medicalCabinet.ReflectionGet("doorOpen"); MedicalCabinetClicked cabinetClicked = new MedicalCabinetClicked(id, doorOpen, medicalCabinet.hasMedKit, medicalCabinet.timeSpawnMedKit); packetSender.Send(cabinetClicked); }
public void Clicked(MedicalCabinet medicalCabinet) { Vector3 actionPosition = medicalCabinet.gameObject.transform.position; String guid = GuidHelper.GetGuid(medicalCabinet.gameObject); bool doorOpen = (bool)medicalCabinet.ReflectionGet("doorOpen"); MedicalCabinetClicked cabinetClicked = new MedicalCabinetClicked(packetSender.PlayerId, guid, actionPosition, doorOpen, medicalCabinet.hasMedKit, medicalCabinet.timeSpawnMedKit); packetSender.Send(cabinetClicked); }
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); }
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 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); }
public override void Process(MedicalCabinetClicked packet) { GameObject gameObject = NitroxEntity.RequireObjectFrom(packet.Id); MedicalCabinet cabinet = gameObject.RequireComponent <MedicalCabinet>(); bool medkitPickedUp = !packet.HasMedKit && cabinet.hasMedKit; cabinet.hasMedKit = packet.HasMedKit; cabinet.timeSpawnMedKit = packet.NextSpawnTime; bool isDoorOpen = (bool)cabinet.ReflectionGet("doorOpen"); bool doorChangedState = isDoorOpen != packet.DoorOpen; if (doorChangedState) { cabinet.Invoke("ToggleDoorState", 0f); } else if (medkitPickedUp) { cabinet.Invoke("ToggleDoorState", 1.8f); } }
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 override void Process(MedicalCabinetClicked packet) { Optional <GameObject> opGameObject = GuidHelper.GetObjectFrom(packet.Guid); if (opGameObject.IsPresent()) { GameObject gameObject = opGameObject.Get(); MedicalCabinet cabinet = gameObject.GetComponent <MedicalCabinet>(); if (cabinet != null) { bool medkitPickedUp = !packet.HasMedKit && cabinet.hasMedKit; cabinet.hasMedKit = packet.HasMedKit; cabinet.timeSpawnMedKit = packet.NextSpawnTime; bool isDoorOpen = (bool)cabinet.ReflectionGet("doorOpen"); bool doorChangedState = isDoorOpen != packet.DoorOpen; if (doorChangedState) { cabinet.Invoke("ToggleDoorState", 0f); } else if (medkitPickedUp) { cabinet.Invoke("ToggleDoorState", 1.8f); } } else { Console.WriteLine("Guid " + packet.Guid + " did not have a MedicalCabinet script"); } } else { Console.WriteLine("Could not locate medical cabinet with guid: " + packet.Guid); } }
public override void Process(MedicalCabinetClicked packet) { GameObject gameObject = NitroxEntity.RequireObjectFrom(packet.Id); MedicalCabinet cabinet = gameObject.RequireComponent <MedicalCabinet>(); bool medkitPickedUp = !packet.HasMedKit && cabinet.hasMedKit; bool doorChangedState = cabinet.doorOpen != packet.DoorOpen; cabinet.hasMedKit = packet.HasMedKit; cabinet.timeSpawnMedKit = packet.NextSpawnTime; using (packetSender.Suppress <PlayFMODCustomEmitter>()) using (FMODSystem.SuppressSounds()) { if (doorChangedState) { cabinet.Invoke(nameof(MedicalCabinet.ToggleDoorState), 0f); } else if (medkitPickedUp) { cabinet.Invoke(nameof(MedicalCabinet.ToggleDoorState), 2f); } } }
public static void Postfix(MedicalCabinet __instance) { Multiplayer.Logic.MedkitFabricator.Clicked(__instance); }
public static void Postfix(MedicalCabinet __instance) { NitroxServiceLocator.LocateService <MedkitFabricator>().Clicked(__instance); }