internal static Type GetNotImplementedType( MemenimScriptBindTargetType target) { switch (target) { case MemenimScriptBindTargetType.Client: return(typeof(MemenimClientNotImplemented)); case MemenimScriptBindTargetType.Terminal: return(typeof(MemenimTerminalNotImplemented)); case MemenimScriptBindTargetType.Log: return(typeof(MemenimLogNotImplemented)); case MemenimScriptBindTargetType.Dialog: return(typeof(MemenimDialogNotImplemented)); case MemenimScriptBindTargetType.Localization: return(typeof(MemenimLocalizationNotImplemented)); case MemenimScriptBindTargetType.Unknown: default: return(null); } }
internal static MemenimScriptBindReference GetBindReference( MemenimScriptBindTargetType target) { if (target == MemenimScriptBindTargetType.Unknown) { return(null); } if (!BindReferenceMap.ContainsKey(target)) { return(null); } return(BindReferenceMap[target]); }
public static void BindImplementation <T>( MemenimScriptBindTargetType target, T value) where T : class { if (target == MemenimScriptBindTargetType.Unknown) { return; } if (value == null) { return; } if (!(value is IMemenimScriptBindable)) { throw new ArgumentException( $"{nameof(value)} must implement the {nameof(IMemenimScriptBindable)} interface", nameof(value)); } Type baseType = MemenimScriptUtils.GetBaseType(target); if (baseType == null) { return; } if (!baseType.IsAssignableFrom(value.GetType())) { throw new ArgumentException( $"{nameof(value)} must be derived from the target[{target}] base class (in this case - {baseType.Name})", nameof(value)); } var reference = MemenimScriptUtils.GetBindReference(target); reference.Value = (IMemenimScriptBindable)value; }
internal static MemenimScriptBindReference GetBindReference( MemenimScriptBindTargetType target) { return(MemenimScript.GetBindReference(target)); }