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"); }
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); } }
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"); }
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); } }
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); }
internal static long GetFilterMode(IMyTerminalBlock block) { FilteredContainer component = block?.GameLogic?.GetAs <FilteredContainer>(); return(component.FilterController.FilterMode ? 0 : 1); }