Ejemplo n.º 1
0
            protected override void GetData(IEntity user, CanSpillComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user) ||
                    !component.Owner.TryGetComponent(out SolutionComponent solutionComponent))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text       = Loc.GetString("Spill liquid");
                data.Visibility = solutionComponent.CurrentVolume > ReagentUnit.Zero
                    ? VerbVisibility.Visible
                    : VerbVisibility.Disabled;
            }
Ejemplo n.º 2
0
            protected override void GetData(IEntity user, DisposalUnitComponent component, VerbData data)
            {
                data.Visibility = VerbVisibility.Invisible;

                if (!ActionBlockerSystem.CanInteract(user) ||
                    component.ContainedEntities.Contains(user))
                {
                    return;
                }

                data.Visibility = VerbVisibility.Visible;
                data.Text       = Loc.GetString("Flush");
            }
Ejemplo n.º 3
0
            protected override void GetData(IEntity user, CanSpillComponent component, VerbData data)
            {
                if (!component.Owner.TryGetComponent(out SolutionComponent solutionComponent))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text       = "Spill liquid";
                data.Visibility = solutionComponent.CurrentVolume > ReagentUnit.Zero
                    ? VerbVisibility.Visible
                    : VerbVisibility.Disabled;
            }
Ejemplo n.º 4
0
            protected override void GetData(IEntity user, AmmoBoxComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text       = Loc.GetString("Dump 10");
                data.Visibility = component.AmmoLeft > 0 ? VerbVisibility.Visible : VerbVisibility.Disabled;
            }
Ejemplo n.º 5
0
            protected override void GetData(IEntity user, DisposalUnitComponent component, VerbData data)
            {
                data.Visibility = VerbVisibility.Invisible;

                if (!ActionBlockerSystem.CanInteract(user) ||
                    component.ContainedEntities.Contains(user))
                {
                    return;
                }

                data.Visibility  = VerbVisibility.Visible;
                data.Text        = Loc.GetString("Flush");
                data.IconTexture = "/Textures/Interface/VerbIcons/eject.svg.192dpi.png";
            }
Ejemplo n.º 6
0
            protected override void GetData(IEntity user, GasTankComponent component, VerbData data)
            {
                data.Visibility = VerbVisibility.Invisible;
                if (!user.HasComponent <IActorComponent>())
                {
                    return;
                }

                data.Visibility = VerbVisibility.Visible;
                data.Text       = "Open Control Panel";
            }
            protected override void GetData(IEntity user, IDisposalTubeComponent component, VerbData data)
            {
                data.Text         = Loc.GetString("tube-direction-verb-get-data-text");
                data.CategoryData = VerbCategories.Debug;
                data.Visibility   = VerbVisibility.Invisible;

                var groupController = IoCManager.Resolve <IConGroupController>();

                if (user.TryGetComponent <ActorComponent>(out var player))
                {
                    if (groupController.CanCommand(player.PlayerSession, "tubeconnections"))
                    {
                        data.Visibility = VerbVisibility.Visible;
                    }
                }
            }
Ejemplo n.º 8
0
            protected override void GetData(IEntity user, ConstructionComponent component, VerbData data)
            {
                if (!EntitySystem.Get <ActionBlockerSystem>().CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                if (((component.Target != null) && (component.Target.Name == component.DeconstructionNodeIdentifier)) ||
                    ((component.Node != null) && (component.Node.Name == component.DeconstructionNodeIdentifier)))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.CategoryData = VerbCategories.Construction;
                data.Text         = Loc.GetString("deconstructible-verb-get-data-text");
                data.IconTexture  = "/Textures/Interface/VerbIcons/rotate_ccw.svg.192dpi.png";
            }
Ejemplo n.º 9
0
            protected override void GetData(IEntity user, InventoryComponent component, VerbData data)
            {
                data.Visibility = VerbVisibility.Invisible;
                if (!CanCommand(user))
                {
                    return;
                }

                data.Visibility   = VerbVisibility.Visible;
                data.Text         = Loc.GetString("Set Outfit");
                data.CategoryData = VerbCategories.Debug;
            }
            protected override void GetData(IEntity user, RevolverBarrelComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text = Loc.GetString("Spin");
                if (component.Capacity <= 1)
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Visibility = component.ShotsLeft > 0 ? VerbVisibility.Visible : VerbVisibility.Disabled;
            }
            protected override void GetData(IEntity user, HandheldLightComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text = Loc.GetString("Toggle light");
            }
Ejemplo n.º 12
0
            protected override void GetData(IEntity user, CuffableComponent component, VerbData data)
            {
                if ((user != component.Owner && !ActionBlockerSystem.CanInteract(user)) || component.CuffedHandCount == 0)
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text = Loc.GetString("Uncuff");
            }
Ejemplo n.º 13
0
            protected override void GetData(IEntity user, MedicalScannerComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text       = Loc.GetString("Eject");
                data.Visibility = component.IsOccupied ? VerbVisibility.Visible : VerbVisibility.Invisible;
            }
            protected override void GetData(IEntity user, BallisticMagazineWeaponComponent component, VerbData data)
            {
                if (component.Magazine == null)
                {
                    data.Text       = "Eject magazine (magazine missing)";
                    data.Visibility = VerbVisibility.Disabled;
                    return;
                }

                data.Text = "Eject magazine";
            }
Ejemplo n.º 15
0
            protected override void GetData(IEntity user, StrippableComponent component, VerbData data)
            {
                if (!component.CanBeStripped(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Visibility = VerbVisibility.Visible;
                data.Text       = Loc.GetString("Strip");
            }
            protected override void GetData(IEntity user, HandheldLightComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                if (component.Cell == null)
                {
                    data.Text       = "Eject cell (cell missing)";
                    data.Visibility = VerbVisibility.Disabled;
                }
                else
                {
                    data.Text = "Eject cell";
                }
            }
            protected override void GetData(IEntity user, BodyBagEntityStorageComponent component, VerbData data)
            {
                if (!EntitySystem.Get <ActionBlockerSystem>().CanInteract(user) || component.LabelContainer?.ContainedEntity == null)
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text = Loc.GetString("remove-label-verb-get-data-text");
            }
            protected override void GetData(IEntity user, DisposalTaggerComponent component, VerbData data)
            {
                var groupController = IoCManager.Resolve <IConGroupController>();

                if (!user.TryGetComponent(out IActorComponent? actor) || !groupController.CanAdminMenu(actor.playerSession))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text        = Loc.GetString("Open Configuration");
                data.IconTexture = "/Textures/Interface/VerbIcons/settings.svg.192dpi.png";
            }
Ejemplo n.º 19
0
            protected override void GetData(IEntity user, BodyPartComponent component, VerbData data)
            {
                data.Visibility = VerbVisibility.Invisible;

                if (user == component.Owner)
                {
                    return;
                }

                if (!user.TryGetComponent(out IActorComponent? actor))
                {
                    return;
                }

                var groupController = IoCManager.Resolve <IConGroupController>();

                if (!groupController.CanCommand(actor.playerSession, "attachbodypart"))
                {
                    return;
                }

                if (!user.TryGetComponent(out IBody? body))
                {
                    return;
                }

                if (body.HasPart(component))
                {
                    return;
                }

                data.Visibility = VerbVisibility.Visible;
                data.Text       = Loc.GetString("Attach Body Part");
            }
            protected override void GetData(IEntity user, PowerCellSlotComponent component, VerbData data)
            {
                if (!component.ShowVerb || !ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                if (component.Cell == null)
                {
                    data.Text       = Loc.GetString("No cell");
                    data.Visibility = VerbVisibility.Disabled;
                }
                else
                {
                    data.Text        = Loc.GetString("Eject cell");
                    data.IconTexture = "/Textures/Interface/VerbIcons/eject.svg.192dpi.png";
                }

                if (component.Cell == null || !component.CanRemoveCell)
                {
                    data.Visibility = VerbVisibility.Disabled;
                }
            }
Ejemplo n.º 21
0
            protected override void GetData(IEntity user, ServerBatteryBarrelComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user) || !component._powerCellRemovable)
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                if (component.PowerCell == null)
                {
                    data.Text       = Loc.GetString("Eject cell (cell missing)");
                    data.Visibility = VerbVisibility.Disabled;
                }
                else
                {
                    data.Text = Loc.GetString("Eject cell");
                }
            }
Ejemplo n.º 22
0
            protected override void GetData(IEntity user, InventoryComponent component, VerbData data)
            {
                data.Visibility = VerbVisibility.Invisible;
                if (!CanCommand(user))
                {
                    return;
                }

                data.Visibility   = VerbVisibility.Visible;
                data.Text         = Loc.GetString("Set Outfit");
                data.CategoryData = VerbCategories.Debug;
                data.IconTexture  = "/Textures/Interface/VerbIcons/outfit.svg.192dpi.png";
            }
Ejemplo n.º 23
0
            protected override void GetData(IEntity user, ServerMagazineBarrelComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text       = Loc.GetString("Close bolt");
                data.Visibility = component.BoltOpen ? VerbVisibility.Visible : VerbVisibility.Disabled;
            }
            protected override void GetData(IEntity user, ServerBatteryBarrelComponent component, VerbData data)
            {
                if (!EntitySystem.Get <ActionBlockerSystem>().CanInteract(user) || !component._powerCellRemovable)
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                if (component.PowerCell == null)
                {
                    data.Text       = Loc.GetString("eject-cell-verb-get-data-text-no-cell");
                    data.Visibility = VerbVisibility.Disabled;
                }
                else
                {
                    data.Text        = Loc.GetString("eject-cell-verb-get-data-text");
                    data.IconTexture = "/Textures/Interface/VerbIcons/eject.svg.192dpi.png";
                }
            }
            protected override void GetData(IEntity user, DisposalRouterComponent component, VerbData data)
            {
                var session         = user.PlayerSession();
                var groupController = IoCManager.Resolve <IConGroupController>();

                if (session == null || !groupController.CanAdminMenu(session))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text        = Loc.GetString("Open Configuration");
                data.IconTexture = "/Textures/Interface/VerbIcons/settings.svg.96dpi.png";
            }
Ejemplo n.º 26
0
            protected override void GetData(IEntity user, ReagentDispenserComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text       = Loc.GetString("Eject Beaker");
                data.Visibility = component.HasBeaker ? VerbVisibility.Visible : VerbVisibility.Invisible;
            }
Ejemplo n.º 27
0
            protected override void GetData(IEntity user, PowerCellSlotComponent component, VerbData data)
            {
                if (!component.ShowVerb || !ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                if (component.Cell == null)
                {
                    data.Text = Loc.GetString("Eject cell (cell missing)");
                }
                else
                {
                    data.Text = Loc.GetString("Eject cell");
                }

                if (component.Cell == null || !component.CanRemoveCell)
                {
                    data.Visibility = VerbVisibility.Disabled;
                }
            }
Ejemplo n.º 28
0
            protected override void GetData(IEntity user, IdCardConsoleComponent component, VerbData data)
            {
                if (!EntitySystem.Get <ActionBlockerSystem>().CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                data.Text        = Loc.GetString("access-eject-target-id-verb-get-data-text");
                data.Visibility  = component.TargetIDEmpty ? VerbVisibility.Invisible : VerbVisibility.Visible;
                data.IconTexture = "/Textures/Interface/VerbIcons/eject.svg.192dpi.png";
            }
Ejemplo n.º 29
0
            protected override void GetData(IEntity user, ExpendableLightComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user))
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                if (component.CurrentState == ExpendableLightState.BrandNew)
                {
                    data.Text       = "Activate";
                    data.Visibility = VerbVisibility.Visible;
                }
                else
                {
                    data.Visibility = VerbVisibility.Invisible;
                }
            }
Ejemplo n.º 30
0
            protected override void GetData(IEntity user, SolutionContainerComponent component, VerbData data)
            {
                if (!ActionBlockerSystem.CanInteract(user) ||
                    !user.TryGetComponent <HandsComponent>(out var hands) ||
                    hands.GetActiveHand == null ||
                    hands.GetActiveHand.Owner == component.Owner ||
                    !hands.GetActiveHand.Owner.TryGetComponent <SolutionContainerComponent>(out var solution) ||
                    !solution.CanAddSolutions ||
                    !component.CanRemoveSolutions)
                {
                    data.Visibility = VerbVisibility.Invisible;
                    return;
                }

                var heldEntityName = hands.GetActiveHand.Owner?.Prototype?.Name ?? "<Item>";
                var myName         = component.Owner.Prototype?.Name ?? "<Item>";

                var locHeldEntityName = Loc.GetString(heldEntityName);
                var locMyName         = Loc.GetString(myName);

                data.Visibility = VerbVisibility.Visible;
                data.Text       = Loc.GetString("Transfer liquid from [{0}] to [{1}].", locMyName, locHeldEntityName);
                return;
            }