public void Unpack(FieldList source) { if (source == null) { return; } PairedList <ByteField, FieldList> searchResults = source.GetPairedItems <ByteField, FieldList>(DefAgentFieldID.ComponentState, DefAgentFieldID.DataPerComponentState); foreach (Pair <ByteField, FieldList> result in searchResults) { BlockState state = (BlockState)result.First.Data; if (!Data.ContainsKey(state)) { SlotStyleData newData = new SlotStyleData(); newData.Unpack(result.Second); Data[state] = newData; } } // done IsUnpacked = true; }