Exemplo n.º 1
0
 private void LockAllResearch()
 {
     MyVisualScriptLogicProvider.ResearchListClear();
     MyVisualScriptLogicProvider.PlayerResearchClearAll();
     foreach (var k in Definitions.Unlocks)
     {
         if (MyDefinitionManager.Static.GetDefinitionAny(k) is MyCubeBlockDefinition)
         {
             MyVisualScriptLogicProvider.ResearchListAddItem(k);
         }
     }
 }
Exemplo n.º 2
0
        private void NeedsResearch(MyDefinitionId techDef, TechGroup techgroup)
        {
            MyVisualScriptLogicProvider.ResearchListAddItem(techDef);

            HashSet <MyDefinitionId> techsInGroup;

            if (!techsForGroup.TryGetValue(techgroup, out techsInGroup))
            {
                techsInGroup = new HashSet <MyDefinitionId>();
                techsForGroup.Add(techgroup, techsInGroup);
            }
            techsInGroup.Add(techDef);
        }
Exemplo n.º 3
0
        private void NeedsResearch(MyDefinitionId techDef, TechGroup techgroup)
        {
            if (techDef == null)
            {
                ModLog.Info("Request for NULL techDef");
                return;
            }

            MyVisualScriptLogicProvider.ResearchListAddItem(techDef);

            HashSet <MyDefinitionId> techsInGroup;

            if (!techsForGroup.TryGetValue(techgroup, out techsInGroup))
            {
                techsInGroup = new HashSet <MyDefinitionId>();
                techsForGroup.Add(techgroup, techsInGroup);
            }
            techsInGroup.Add(techDef);
        }
Exemplo n.º 4
0
        public void KeepTechsLocked()
        {
//            ModLog.Info("KeepTechsLocked()");

            foreach (var techGroup in techsForGroup)
            {
                var group = techGroup.Key;
//                ModLog.Info("KTL: Group=" + group.ToString());
                if (UnlockedTechs.Contains(group))
                {
//                    ModLog.Info(" UNLOCKED");
                    // OK to unlock
                    var technologies = techsForGroup[group];
                    foreach (var technology in technologies)
                    {
                        MyVisualScriptLogicProvider.ResearchListRemoveItem(technology);
                    }
                }
                else
                {
//                    ModLog.Info(" LOCKED");
                    // block should be locked
                    var technologies = techsForGroup[group];
                    if (technologies == null)
                    {
                        ModLog.Error("No technologies for group: " + techGroup);
                        continue;
                    }
//                    ModLog.Info(" # blocks=" + technologies.Count.ToString());
                    foreach (var technology in technologies)
                    {
                        MyVisualScriptLogicProvider.ResearchListAddItem(technology);
                    }
                }
            }
        }