private static void BindAll() { foreach (var field in typeof(MemenimScript).GetFields(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) { var type = field.FieldType; if (!typeof(IMemenimScriptBindable).IsAssignableFrom(type)) { continue; } var target = MemenimScriptUtils.GetBindTarget(type); if (target == MemenimScriptBindTargetType.Unknown) { continue; } var reference = new MemenimScriptBindReference(field); var value = reference.Value; BindReferenceMap[target] = reference; BindImplementation(value, MemenimScriptUtils.GetBaseType(value)); } BindSettingsImplementation(ref _settings); }
internal MemenimScriptBindReference(FieldInfo field) { _field = field; Type = field.FieldType; Target = MemenimScriptUtils.GetBindTarget( field.FieldType); }