AllowTool.AllowToolController.InjectDesignators C# (CSharp) Метод

InjectDesignators() приватный Метод

private InjectDesignators ( ) : void
Результат void
		private void InjectDesignators() {
			activeDesignators.Clear();
			var numDesignatorsInjected = 0;
			foreach (var designatorDef in DefDatabase<ThingDesignatorDef>.AllDefs) {
				if (designatorDef.Injected) continue;
				var resolvedDesignators = (List<Designator>)resolvedDesignatorsField.GetValue(designatorDef.Category);
				var insertIndex = -1;
				for (var i = 0; i < resolvedDesignators.Count; i++) {
					if(resolvedDesignators[i].GetType() != designatorDef.insertAfter) continue;
					insertIndex = i;
					break;
				}
				if (insertIndex >= 0) {
					var designator = (Designator_SelectableThings)Activator.CreateInstance(designatorDef.designatorClass, designatorDef);
					resolvedDesignators.Insert(insertIndex + 1, designator);
					var handle = Settings.GetHandle("show" + designatorDef.defName, "setting_showTool_label".Translate(designatorDef.label), null, true);
					designator.SetVisible(handle.Value);
					activeDesignators.Add(new DesignatorEntry(designator, designatorDef.hotkeyDef, handle));
					numDesignatorsInjected++;
				} else {
					Logger.Error(string.Format("Failed to inject {0} after {1}", designatorDef.defName, designatorDef.insertAfter.Name));		
				}
				designatorDef.Injected = true;
			}
			if (numDesignatorsInjected > 0) {
				Logger.Trace("Injected " + numDesignatorsInjected + " designators");
			}
		}