Beispiel #1
0
        public void AddResearchGroup(SerializableDefinitionId compDef, List <SerializableDefinitionId> defList)
        {
            var group = new ResearchGroup(compDef, defList);

            ResearchGroups[compDef] = group;
            ResearchGroupList.Add(group);
        }
Beispiel #2
0
        public void AddResearchGroup(ResearchGroup group)
        {
            MyObjectBuilderType typeId;

            if (!MyObjectBuilderType.TryParse(group.ComponentId.TypeId, out typeId))
            {
                return;
            }

            var compDef = new MyDefinitionId(typeId, group.ComponentId.SubtypeId);

            ResearchGroup existing;

            if (!group.OverwriteAllOthers && ResearchGroups.TryGetValue(compDef, out existing))
            {
                foreach (var item in group.BlockDefinitons)
                {
                    if (!existing.BlockDefinitons.Contains(item))
                    {
                        existing.BlockDefinitons.Add(item);
                    }
                }
            }
            else
            {
                ResearchGroups[compDef] = group;
                ResearchGroupList.Add(group);
            }
        }