private void UpdateGUI() { if (musics == null || musics.Count == 0) { if (secondLoadAttempt == false) { secondLoadAttempt = true; InternalStart(); } return; } List <ElementValue> valuesToSend = new List <ElementValue>(); valuesToSend.Add(new ElementValue() { Id = "TextTrack", Value = Encoding.UTF8.GetBytes(TrackPosition) }); valuesToSend.Add(new ElementValue() { Id = "TextSong", Value = Encoding.UTF8.GetBytes(SongName) }); valuesToSend.Add(new ElementValue() { Id = "TextArtist", Value = Encoding.UTF8.GetBytes(Artist) }); valuesToSend.Add(new ElementValue() { Id = "ImagePlayStop", Value = Encoding.UTF8.GetBytes(PlayStopButtonPrefabImage) }); // Update all UI currently opened. TabUpdateMessage.SendToPeepers(gameObject, NetTabType.Jukebox, TabAction.Update, valuesToSend.ToArray()); }
public void ServerPerformInteraction(HandApply interaction) { panelopen = !panelopen; if (panelopen) { DoorAnimatorV2.AddPanelOverlay(); Chat.AddActionMsgToChat(interaction.Performer, $"You unscrews the {gameObject.ExpensiveName()}'s cable panel.", $"{interaction.Performer.ExpensiveName()} unscrews {gameObject.ExpensiveName()}'s cable panel."); } else { DoorAnimatorV2.RemovePanelOverlay(); Chat.AddActionMsgToChat(interaction.Performer, $"You screw in the {gameObject.ExpensiveName()}'s cable panel.", $"{interaction.Performer.ExpensiveName()} screws in {gameObject.ExpensiveName()}'s cable panel."); //Force close net tab when panel is closed TabUpdateMessage.SendToPeepers(gameObject, NetTabType.HackingPanel, TabAction.Close); } AudioSourceParameters audioSourceParameters = new AudioSourceParameters(pitch: UnityEngine.Random.Range(0.8f, 1.2f)); SoundManager.PlayNetworkedAtPos(CommonSounds.Instance.screwdriver, interaction.Performer.AssumedWorldPosServer(), audioSourceParameters, sourceObj: gameObject); }
private void UpdateGui() { var peppers = NetworkTabManager.Instance.GetPeepers(gameObject, NetTabType.ThermoMachine); if (peppers.Count == 0) { return; } var state = ApcPoweredDevice.State == PowerState.Off ? "No Power" : IsOn ? "On" : "Off"; var stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"Status: {state}"); stringBuilder.AppendLine($"Pipe Temp: {CurrentTemperature}\n"); stringBuilder.AppendLine($"Min Temp: {MinTemperature}"); stringBuilder.AppendLine($"Target Temp: {TargetTemperature}"); stringBuilder.AppendLine($"Max Temp: {MaxTemperature}"); List <ElementValue> valuesToSend = new List <ElementValue>(); valuesToSend.Add(new ElementValue() { Id = "TextData", Value = Encoding.UTF8.GetBytes(stringBuilder.ToString()) }); valuesToSend.Add(new ElementValue() { Id = "SliderPower", Value = Encoding.UTF8.GetBytes((IsOn ? 1 * 100 : 0).ToString()) }); // Update all UI currently opened. TabUpdateMessage.SendToPeepers(gameObject, NetTabType.ThermoMachine, TabAction.Update, valuesToSend.ToArray()); }
private void UpdateGUI() { var peppers = NetworkTabManager.Instance.GetPeepers(gameObject, NetTabType.ParticleAccelerator); if (peppers.Count == 0) { return; } List <ElementValue> valuesToSend = new List <ElementValue>(); valuesToSend.Add(new ElementValue() { Id = "TextSetting", Value = Encoding.UTF8.GetBytes(status) }); valuesToSend.Add(new ElementValue() { Id = "TextPower", Value = Encoding.UTF8.GetBytes(powerUsage + " volts") }); valuesToSend.Add(new ElementValue() { Id = "SliderPower", Value = Encoding.UTF8.GetBytes(((int)(CurrentState - 3) * 100).ToString()) }); // Update all UI currently opened. TabUpdateMessage.SendToPeepers(gameObject, NetTabType.ParticleAccelerator, TabAction.Update, valuesToSend.ToArray()); }
public void ServerPerformInteraction(HandApply interaction) { if (Validations.HasItemTrait(interaction.UsedObject, CommonTraits.Instance.Screwdriver)) { panelopen = !panelopen; if (panelopen) { DoorAnimatorV2.AddPanelOverlay(); Chat.AddActionMsgToChat(interaction.Performer, $"You unscrew the {gameObject.ExpensiveName()}'s cable panel.", $"{interaction.Performer.ExpensiveName()} unscrews {gameObject.ExpensiveName()}'s cable panel."); } else { DoorAnimatorV2.RemovePanelOverlay(); Chat.AddActionMsgToChat(interaction.Performer, $"You screw in the {gameObject.ExpensiveName()}'s cable panel.", $"{interaction.Performer.ExpensiveName()} screws in {gameObject.ExpensiveName()}'s cable panel."); //Force close net tab when panel is closed TabUpdateMessage.SendToPeepers(gameObject, NetTabType.HackingPanel, TabAction.Close); } AudioSourceParameters audioSourceParameters = new AudioSourceParameters(pitch: UnityEngine.Random.Range(0.8f, 1.2f)); SoundManager.PlayNetworkedAtPos(CommonSounds.Instance.screwdriver, interaction.Performer.AssumedWorldPosServer(), audioSourceParameters, sourceObj: gameObject); } if (!weldModule.CanDoorStateChange() && boltsModule.CanDoorStateChange() && !doorMasterController.HasPower) { if (Validations.HasItemTrait(interaction.UsedObject, CommonTraits.Instance.Crowbar) && airlockAssemblyPrefab) { ToolUtils.ServerUseToolWithActionMessages(interaction, 2f, $"You start to remove electronics from the airlock assembly...", $"{interaction.Performer.ExpensiveName()} starts to remove electronics from the airlock assembly...", "You removed the airlock electronics from the airlock assembly.", $"{interaction.Performer.ExpensiveName()} removed the electronics from the airlock assembly.", () => WhenDestroyed(null)); } } if (Validations.HasUsedComponent <AirlockPainter>(interaction)) { AirlockPainter painter = interaction.HandObject.GetComponent <AirlockPainter>(); if (painter) { ToolUtils.ServerUseToolWithActionMessages(interaction, 3f, $"You start to paint the {gameObject.ExpensiveName()}...", $"{interaction.Performer.ExpensiveName()} starts to paint the {gameObject.ExpensiveName()}...", $"You painted the {gameObject.ExpensiveName()}.", $"{interaction.Performer.ExpensiveName()} painted the {gameObject.ExpensiveName()}.", () => painter.ServerPaintTheAirlock(gameObject, interaction.Performer)); } } }
public void UpdateGui() { var peppers = NetworkTabManager.Instance.GetPeepers(gameObject, NetTabType.InteliCard); if (peppers.Count == 0) { return; } List <ElementValue> valuesToSend = new List <ElementValue>(); valuesToSend.Add(new ElementValue() { Id = "SliderRemote", Value = Encoding.UTF8.GetBytes((allowRemoteAction ? 1 * 100 : 0).ToString()) }); valuesToSend.Add(new ElementValue() { Id = "SliderRadio", Value = Encoding.UTF8.GetBytes((allowRadio ? 1 * 100 : 0).ToString()) }); valuesToSend.Add(new ElementValue() { Id = "SliderIntegrity", Value = Encoding.UTF8.GetBytes(LinkedPlayer == null ? "0" : LinkedPlayer.Integrity.ToString()) }); var lawText = "This intelicard holds no Ai"; if (LinkedPlayer != null) { lawText = LinkedPlayer.IsPurging ? "<color=red>Is Being Purged...\n</color>" : ""; lawText += LinkedPlayer.GetLawsString(); } valuesToSend.Add(new ElementValue() { Id = "LawText", Value = Encoding.UTF8.GetBytes(lawText) }); valuesToSend.Add(new ElementValue() { Id = "PurgeText", Value = Encoding.UTF8.GetBytes(LinkedPlayer == null ? "No AI to Purge" : LinkedPlayer.IsPurging ? "Stop Purging" : "Start Purging") }); // Update all UI currently opened. TabUpdateMessage.SendToPeepers(gameObject, NetTabType.InteliCard, TabAction.Update, valuesToSend.ToArray()); }
///Not just own value, include inner elements' values as well protected override void UpdatePeepers() { List <ElementValue> valuesToSend = new List <ElementValue>(100) { ElementValue }; var dynamicEntries = Entries; for (var i = 0; i < dynamicEntries.Length; i++) { var entry = dynamicEntries[i]; var entryElements = entry.Elements; for (var j = 0; j < entryElements.Length; j++) { var element = entryElements[j]; valuesToSend.Add(element.ElementValue); } } TabUpdateMessage.SendToPeepers(MasterTab.Provider, MasterTab.Type, TabAction.Update, valuesToSend.ToArray()); }
private void UpdateGui() { var peppers = NetworkTabManager.Instance.GetPeepers(gameObject, NetTabType.TurretController); if (peppers.Count == 0) { return; } List <ElementValue> valuesToSend = new List <ElementValue>(); if (HasPower == false) { valuesToSend.Add(new ElementValue() { Id = "TextSetting", Value = Encoding.UTF8.GetBytes("No Power") }); } else { valuesToSend.Add(new ElementValue() { Id = "TextSetting", Value = Encoding.UTF8.GetBytes(IsOn ? IsStun ? "Stun" : "Lethal" : "Off") }); } valuesToSend.Add(new ElementValue() { Id = "SliderPower", Value = Encoding.UTF8.GetBytes((isOn ? 1 * 100 : 0).ToString()) }); valuesToSend.Add(new ElementValue() { Id = "SliderStun", Value = Encoding.UTF8.GetBytes((isStun ? 0 : 1 * 100).ToString()) }); // Update all UI currently opened. TabUpdateMessage.SendToPeepers(gameObject, NetTabType.TurretController, TabAction.Update, valuesToSend.ToArray()); }
private void UpdateGUI() { List <ElementValue> valuesToSend = new List <ElementValue>(); valuesToSend.Add(new ElementValue() { Id = "TextTrack", Value = Encoding.UTF8.GetBytes(TrackPosition) }); valuesToSend.Add(new ElementValue() { Id = "TextSong", Value = Encoding.UTF8.GetBytes(SongName) }); valuesToSend.Add(new ElementValue() { Id = "TextArtist", Value = Encoding.UTF8.GetBytes(Artist) }); valuesToSend.Add(new ElementValue() { Id = "ImagePlayStop", Value = Encoding.UTF8.GetBytes(PlayStopButtonPrefabImage) }); // Update all UI currently opened. TabUpdateMessage.SendToPeepers(gameObject, NetTabType.Jukebox, TabAction.Update, valuesToSend.ToArray()); }
/// Send updates about just one tracked object (intended for waypoint pin) /// <param name="trackedObject"></param> public void UpdateExclusive(GameObject trackedObject) { RefreshTrackedPos(false); bool notFound = true; var entries = Entries; for (var i = 0; i < entries.Length; i++) { var entry = entries[i] as RadarEntry; if (!entry || entry.TrackedObject != trackedObject) { continue; } notFound = false; List <ElementValue> valuesToSend = new List <ElementValue>(10) { ElementValue }; var entryElements = entry.Elements; for (var j = 0; j < entryElements.Length; j++) { var element = entryElements[j]; valuesToSend.Add(element.ElementValue); } TabUpdateMessage.SendToPeepers(MasterTab.Provider, MasterTab.Type, TabAction.Update, valuesToSend.ToArray()); } //if not found (being hidden etc), send just the list entry count so it would disappear for peepers, too if (notFound) { TabUpdateMessage.SendToPeepers(MasterTab.Provider, MasterTab.Type, TabAction.Update, new [] { ElementValue }); } }
/// Send update to observers. /// Override if you want to include more values than just the current one protected virtual void UpdatePeepers() { TabUpdateMessage.SendToPeepers(MasterTab.Provider, MasterTab.Type, TabAction.Update, new[] { ElementValue }); }