Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 5
0
        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));
                }
            }
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
    ///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());
    }
Exemplo n.º 8
0
        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());
        }
Exemplo n.º 9
0
        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());
        }
Exemplo n.º 10
0
    /// 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 });
        }
    }
Exemplo n.º 11
0
 /// 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 });
 }