Exemple #1
0
        internal static void RemoveFromFilter(IMyTerminalBlock block)
        {
            FilteredContainer component = block?.GameLogic?.GetAs <FilteredContainer>();

            if (component.FilterController.ListToRemove.Count == 0)
            {
                return;
            }
            Filterdata filterdata = new Filterdata
            {
                id          = component.Entity.EntityId,
                FilterMode  = component.FilterController.FilterMode,
                FilterItems = component.FilterController.ListToRemove.ToArray(),
            };
            var metaData   = MyAPIGateway.Utilities.SerializeToBinary <Filterdata>(filterdata);
            var SendPacket = new MetaPacket
            {
                EntityId   = component.Entity.EntityId,
                PacketType = PacketType.FILTER_REMOVE,
                MetaData   = metaData,
            };

            MyAPIGateway.Multiplayer.SendMessageToServer(31875, MyAPIGateway.Utilities.SerializeToBinary <MetaPacket>(SendPacket));
            component.RemoveFromFilter(filterdata);
            component.FilterController.ListToRemove.Clear();
            ContainerControls.updateVisual("CurrentList");
        }
Exemple #2
0
        internal static void CreateCurrentList(IMyTerminalBlock block, List <MyTerminalControlListBoxItem> listItems, List <MyTerminalControlListBoxItem> selectedItems)
        {
            FilteredContainer component = block?.GameLogic?.GetAs <FilteredContainer>();

            foreach (var item in component.FilterController.FilterList)
            {
                var listitem = new MyTerminalControlListBoxItem(MyStringId.GetOrCompute(item.DisplayName), MyStringId.NullOrEmpty, item);
                listItems.Add(listitem);
            }
        }
Exemple #3
0
        internal static void ClearFilter(IMyTerminalBlock block)
        {
            FilteredContainer component = block?.GameLogic?.GetAs <FilteredContainer>();
            var Sendpacket = new MetaPacket
            {
                EntityId   = component.Entity.EntityId,
                PacketType = PacketType.FILTER_CLEAR,
                MetaData   = MyAPIGateway.Utilities.SerializeToBinary <Filterdata>(new Filterdata()),
            };

            MyAPIGateway.Multiplayer.SendMessageToServer(31875, MyAPIGateway.Utilities.SerializeToBinary <MetaPacket>(Sendpacket));
            component.ClearFilter();
            ContainerControls.updateVisual("CurrentList");
        }
Exemple #4
0
 internal static void SetSelectedCandidate(IMyTerminalBlock block, List <MyTerminalControlListBoxItem> listitems)
 {
     if (listitems.Count != 0)
     {
         FilteredContainer component = block?.GameLogic?.GetAs <FilteredContainer>();
         foreach (var item in listitems)
         {
             var filteritem = (FilterItem)item.UserData;
             if (!component.FilterController.ListToAdd.Contains(filteritem))
             {
                 component.FilterController.ListToAdd.Add(filteritem);
             }
         }
     }
 }
        public void OnEntityCreate(IMyEntity entity)
        {
            var Cargo = entity as MyCargoContainer;

            if (Cargo == null)
            {
                return;
            }
            FilteredContainer logic = entity?.GameLogic?.GetAs <FilteredContainer>();

            logic.MyCargoContainer = entity as MyCargoContainer;
            var inventory = (MyInventory)logic.MyCargoContainer.GetInventory();

            if (inventory.Constraint == null)
            {
                inventory.Constraint = new MyInventoryConstraint(MyStringId.NullOrEmpty, null, false);
            }
        }
Exemple #6
0
        internal static void SetFilterMode(IMyTerminalBlock block, long value)
        {
            FilteredContainer component = block?.GameLogic?.GetAs <FilteredContainer>();
            var filterdata = new Filterdata();

            if (value == 0)
            {
                filterdata.FilterMode = true;
            }
            if (value == 1)
            {
                filterdata.FilterMode = false;
            }
            var Sendpacket = new MetaPacket
            {
                EntityId   = component.Entity.EntityId,
                PacketType = PacketType.FILTER_MODE,
                MetaData   = MyAPIGateway.Utilities.SerializeToBinary <Filterdata>(filterdata),
            };

            MyAPIGateway.Multiplayer.SendMessageToServer(31875, MyAPIGateway.Utilities.SerializeToBinary <MetaPacket>(Sendpacket));
            component.SetFilterMode(filterdata.FilterMode);
        }
Exemple #7
0
        internal static long GetFilterMode(IMyTerminalBlock block)
        {
            FilteredContainer component = block?.GameLogic?.GetAs <FilteredContainer>();

            return(component.FilterController.FilterMode ? 0 : 1);
        }