Ejemplo n.º 1
0
        protected override bool TryGetContainer(ContainerModifiedMessage msg,
                                                ItemCounterComponent itemCounter,
                                                out IReadOnlyList <string> showLayers)
        {
            if (msg.Container.Owner.TryGetComponent(out ServerStorageComponent? component))
            {
                var containedLayers = component.StoredEntities ?? new List <IEntity>();
                var list            = new List <string>();
                foreach (var mapLayerData in itemCounter.MapLayers.Values)
                {
                    foreach (var entity in containedLayers)
                    {
                        if (mapLayerData.Whitelist.IsValid(entity))
                        {
                            list.Add(mapLayerData.Layer);
                            break;
                        }
                    }
                }

                showLayers = list;
                return(true);
            }

            showLayers = new List <string>();
            return(false);
        }
        protected override int?GetCount(ContainerModifiedMessage msg, ItemCounterComponent itemCounter)
        {
            if (!msg.Container.Owner.TryGetComponent(out ServerStorageComponent? component) ||
                component.StoredEntities == null)
            {
                return(null);
            }

            var count = 0;

            foreach (var entity in component.StoredEntities)
            {
                if (itemCounter.Count.IsValid(entity))
                {
                    count++;
                }
            }

            return(count);
        }
Ejemplo n.º 3
0
        private void CounterEntityRemoved(EntityUid uid, ItemCounterComponent itemCounter,
                                          EntRemovedFromContainerMessage args)
        {
            if (!EntityManager.TryGetComponent(itemCounter.Owner, out AppearanceComponent? appearanceComponent))
            {
                return;
            }

            var count = GetCount(args, itemCounter);

            if (count == null)
            {
                return;
            }

            appearanceComponent.SetData(StackVisuals.Actual, count);
            if (itemCounter.MaxAmount != null)
            {
                appearanceComponent.SetData(StackVisuals.MaxCount, itemCounter.MaxAmount);
            }
        }
Ejemplo n.º 4
0
        private void CounterEntityInserted(EntityUid uid, ItemCounterComponent itemCounter,
                                           EntInsertedIntoContainerMessage args)
        {
            if (!itemCounter.Owner.TryGetComponent(out SharedAppearanceComponent? appearanceComponent))
            {
                return;
            }

            var count = GetCount(args, itemCounter);

            if (count == null)
            {
                return;
            }

            appearanceComponent.SetData(StackVisuals.Actual, count);
            if (itemCounter.MaxAmount != null)
            {
                appearanceComponent.SetData(StackVisuals.MaxCount, itemCounter.MaxAmount);
            }
        }
Ejemplo n.º 5
0
 protected abstract int?GetCount(ContainerModifiedMessage msg, ItemCounterComponent itemCounter);