Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        internal static MemenimScriptBindReference GetBindReference(
            MemenimScriptBindTargetType target)
        {
            if (target == MemenimScriptBindTargetType.Unknown)
            {
                return(null);
            }

            if (!BindReferenceMap.ContainsKey(target))
            {
                return(null);
            }

            return(BindReferenceMap[target]);
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
 internal static MemenimScriptBindReference GetBindReference(
     MemenimScriptBindTargetType target)
 {
     return(MemenimScript.GetBindReference(target));
 }