NetworkSkins.Data.SegmentDataManager.SetActiveOptions C# (CSharp) Method

SetActiveOptions() public method

public SetActiveOptions ( NetInfo prefab, SegmentData segmentOptions ) : void
prefab NetInfo
segmentOptions SegmentData
return void
        public void SetActiveOptions(NetInfo prefab, SegmentData segmentOptions)
        {
            var options = _assetMode ? _assetSegmentOptions : _selectedSegmentOptions;

            // Delete existing data if it is not used anymore
            var activeSegmentData = GetActiveOptions(prefab);
            if (activeSegmentData != null)
            {
                options.Remove(prefab);
                activeSegmentData.UsedCount--;
                DeleteIfNotInUse(activeSegmentData);
            }

            // No new data? Stop here
            if (segmentOptions == null || segmentOptions.Features == SegmentData.FeatureFlags.None) return;

            // Check if there is an equal data object
            var equalSegmentData = _usedSegmentData.FirstOrDefault(segmentOptions.Equals);
            if (equalSegmentData != null)
            {
                // yes? use that, discard the one we created
                options[prefab] = equalSegmentData;
                equalSegmentData.UsedCount++;
            }
            else
            {
                // no? Use the one we got
                _usedSegmentData.Add(segmentOptions);
                options[prefab] = segmentOptions;
                segmentOptions.UsedCount++;
            }
        }