private void LockAllResearch() { MyVisualScriptLogicProvider.ResearchListClear(); MyVisualScriptLogicProvider.PlayerResearchClearAll(); foreach (var k in Definitions.Unlocks) { if (MyDefinitionManager.Static.GetDefinitionAny(k) is MyCubeBlockDefinition) { MyVisualScriptLogicProvider.ResearchListAddItem(k); } } }
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); }
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); }
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); } } } }