Beispiel #1
0
        private void AddToggleOpenVerb(EntityUid uid, EntityStorageComponent component, GetVerbsEvent <InteractionVerb> args)
        {
            if (!args.CanAccess || !args.CanInteract)
            {
                return;
            }

            if (!_entityStorage.CanOpen(args.User, args.Target, silent: true, component))
            {
                return;
            }

            InteractionVerb verb = new();

            if (component.Open)
            {
                verb.Text        = Loc.GetString("verb-common-close");
                verb.IconTexture = "/Textures/Interface/VerbIcons/close.svg.192dpi.png";
            }
            else
            {
                verb.Text        = Loc.GetString("verb-common-open");
                verb.IconTexture = "/Textures/Interface/VerbIcons/open.svg.192dpi.png";
            }
            verb.Act = () => _entityStorage.ToggleOpen(args.User, args.Target, component);
            args.Verbs.Add(verb);
        }
 private void OnDestroy(EntityUid uid, EntityStorageComponent component, DestructionEventArgs args)
 {
     component.Open = true;
     if (!component.DeleteContentsOnDestruction)
     {
         EmptyContents(uid, component);
     }
 }
    private void OnInteract(EntityUid uid, EntityStorageComponent component, ActivateInWorldEvent args)
    {
        if (args.Handled)
        {
            return;
        }

        args.Handled = true;
        ToggleOpen(args.User, uid, component);
    }
Beispiel #4
0
        private void OnRelayMovement(EntityUid uid, EntityStorageComponent component, ref ContainerRelayMovementEntityEvent args)
        {
            if (!EntityManager.HasComponent <HandsComponent>(args.Entity))
            {
                return;
            }

            if (_gameTiming.CurTime < component.LastInternalOpenAttempt + EntityStorageComponent.InternalOpenAttemptDelay)
            {
                return;
            }

            component.LastInternalOpenAttempt = _gameTiming.CurTime;
            _entityStorage.TryOpenStorage(args.Entity, component.Owner);
        }
    private void OnWeldableAttempt(EntityUid uid, EntityStorageComponent component, WeldableAttemptEvent args)
    {
        if (component.Open)
        {
            args.Cancel();
            return;
        }

        if (component.Contents.Contains(args.User))
        {
            var msg = Loc.GetString("entity-storage-component-already-contains-user-message");
            _popupSystem.PopupEntity(msg, args.User, Filter.Entities(args.User));
            args.Cancel();
        }
    }
    private void OnInit(EntityUid uid, EntityStorageComponent component, ComponentInit args)
    {
        component.Contents = _container.EnsureContainer <Container>(uid, ContainerName);
        component.Contents.ShowContents  = component.ShowContents;
        component.Contents.OccludesLight = component.OccludesLight;

        if (TryComp <ConstructionComponent>(uid, out var construction))
        {
            _construction.AddContainer(uid, nameof(EntityStorageComponent), construction);
        }

        if (TryComp <PlaceableSurfaceComponent>(uid, out var placeable))
        {
            _placeableSurface.SetPlaceable(uid, component.Open, placeable);
        }
    }
 private void OnWelded(EntityUid uid, EntityStorageComponent component, WeldableChangedEvent args)
 {
     component.IsWeldedShut = args.IsWelded;
 }