Пример #1
0
    // Use this for initialization
    void Start()
    {
        cam       = GameObject.Find("FP_Camera").GetComponent <Camera>();
        cam2      = GameObject.Find("3D_Camera").GetComponent <Camera>();
        state     = GameObject.Find("GAME").GetComponent <Game>();
        move      = GameObject.Find("3D_Map").GetComponent <ConstructorMap>();
        name      = GameObject.Find("Dude").GetComponent <Movement> ();
        clicked   = false;
        moving    = false;
        exchange  = false;
        excParent = this.transform.parent.gameObject;
        if (this.gameObject == excParent.transform.GetChild(1).gameObject)
        {
            excSection = excParent.transform.GetChild(0).gameObject;
        }
        else
        {
            excSection = excParent.transform.GetChild(1).gameObject;
        }

        map         = new GameObject[2];
        map2        = new GameObject[2];
        render1     = this.gameObject.transform.GetComponent <MeshRenderer> ();
        positionY   = this.gameObject.transform.position.y;
        positionYEx = excSection.gameObject.transform.position.y;
    }
Пример #2
0
        private Expression CreateNewDestinationExpression(ConstructorMap constructorMap)
        {
            var ctorArgs  = constructorMap.CtorParams.Select(CreateConstructorParameterExpression);
            var variables = constructorMap.Ctor.GetParameters().Select(parameter => Variable(parameter.ParameterType, parameter.Name)).ToArray();
            var body      = variables.Zip(ctorArgs,
                                          (variable, expression) => (Expression)Assign(variable, ToType(expression, variable.Type)))
                            .Concat(new[] { CheckReferencesCache(New(constructorMap.Ctor, variables)) })
                            .ToArray();

            return(Block(variables, body));
        }
Пример #3
0
        private Expression CreateNewDestinationExpression(ConstructorMap constructorMap)
        {
            if (!constructorMap.CanResolve)
            {
                return(null);
            }

            var ctorArgs = constructorMap.CtorParams.Select(CreateConstructorParameterExpression);

            ctorArgs =
                ctorArgs.Zip(constructorMap.Ctor.GetParameters(),
                             (exp, pi) => exp.Type == pi.ParameterType ? exp : Convert(exp, pi.ParameterType))
                .ToArray();
            var newExpr = New(constructorMap.Ctor, ctorArgs);

            return(newExpr);
        }
Пример #4
0
 // Use this for initialization
 void Start()
 {
     cam        = GameObject.Find("FP_Camera").GetComponent <Camera>();
     cam2       = GameObject.Find("3D_Camera").GetComponent <Camera>();
     state      = GameObject.Find("GAME").GetComponent <Game>();
     move       = GameObject.Find("3D_Map").GetComponent <ConstructorMap>();
     name       = GameObject.Find("Dude").GetComponent <Movement> ();
     clicked    = false;
     moving     = false;
     rotatRight = false;
     rotatLeft  = false;
     rot        = 0;
     map        = new GameObject[2];
     render1    = this.gameObject.transform.GetChild(0).GetComponent <MeshRenderer> ();
     render2    = this.gameObject.transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer> ();
     positionY  = this.gameObject.transform.GetChild(0).transform.position.y;
 }
        private void MapDestinationCtorToSource(TypeMap typeMap, List <ICtorParameterConfiguration> ctorParamConfigurations)
        {
            var ctorMap = typeMap.ConstructorMap;

            if (ctorMap != null)
            {
                foreach (var paramMap in ctorMap.CtorParams)
                {
                    paramMap.CanResolveValue = paramMap.CanResolveValue || IsConfigured(paramMap.Parameter);
                }
                return;
            }
            if (typeMap.DestinationType.IsAbstract || !typeMap.Profile.ConstructorMappingEnabled)
            {
                return;
            }
            foreach (var destCtor in typeMap.DestinationTypeDetails.Constructors.OrderByDescending(ci => ci.GetParameters().Length))
            {
                var ctorParameters = destCtor.GetParameters();
                if (ctorParameters.Length == 0)
                {
                    break;
                }
                ctorMap = new ConstructorMap(destCtor, typeMap);
                foreach (var parameter in ctorParameters)
                {
                    var resolvers  = new LinkedList <MemberInfo>();
                    var canResolve = typeMap.Profile.MapDestinationPropertyToSource(typeMap.SourceTypeDetails, destCtor.DeclaringType, parameter.GetType(), parameter.Name, resolvers, IsReverseMap);
                    if ((!canResolve && parameter.IsOptional) || IsConfigured(parameter))
                    {
                        canResolve = true;
                    }
                    ctorMap.AddParameter(parameter, resolvers.ToArray(), canResolve);
                }
                typeMap.ConstructorMap = ctorMap;
                if (ctorMap.CanResolve)
                {
                    break;
                }
            }
            return;

            bool IsConfigured(ParameterInfo parameter) => ctorParamConfigurations.Any(c => c.CtorParamName == parameter.Name);
        }
Пример #6
0
        public Expression NewExpression(ConstructorMap constructorMap, ExpressionRequest request, Expression instanceParameter, TypePairCount typePairCount, LetPropertyMaps letPropertyMaps)
        {
            var parameters = constructorMap.CtorParams.Select(map =>
            {
                var resolvedSource = ResolveExpression(map, request.SourceType, instanceParameter, letPropertyMaps);
                var types          = new TypePair(resolvedSource.Type, map.DestinationType);
                var typeMap        = _configurationProvider.ResolveTypeMap(types);
                if (typeMap == null)
                {
                    if (types.DestinationType.IsAssignableFrom(types.SourceType))
                    {
                        return(resolvedSource.ResolutionExpression);
                    }
                    ThrowCannotMap(map, resolvedSource);
                }
                var newRequest = new ExpressionRequest(types.SourceType, types.DestinationType, request.MembersToExpand, request);
                return(CreateMapExpressionCore(newRequest, resolvedSource.ResolutionExpression, typePairCount, typeMap, letPropertyMaps));
            });

            return(New(constructorMap.Ctor, parameters));
        }
Пример #7
0
        private void MapDestinationCtorToSource(TypeMap typeMap)
        {
            var sourceMembers = new List <MemberInfo>();

            foreach (var destCtor in typeMap.DestinationConstructors)
            {
                var  constructor   = destCtor.Constructor;
                var  ctorMap       = new ConstructorMap(constructor, typeMap);
                bool canMapResolve = true;
                foreach (var parameter in destCtor.Parameters)
                {
                    sourceMembers.Clear();
                    var canResolve = typeMap.Profile.MapDestinationPropertyToSource(typeMap.SourceTypeDetails, constructor.DeclaringType, parameter.ParameterType, parameter.Name, sourceMembers, IsReverseMap);
                    if (!canResolve)
                    {
                        if (parameter.IsOptional || IsConfigured(parameter))
                        {
                            canResolve = true;
                        }
                        else
                        {
                            canMapResolve = false;
                        }
                    }
                    ctorMap.AddParameter(parameter, sourceMembers, canResolve);
                }
                typeMap.ConstructorMap = ctorMap;
                if (canMapResolve)
                {
                    ctorMap.CanResolve = true;
                    break;
                }
            }
            return;

            bool IsConfigured(ParameterInfo parameter) => _ctorParamConfigurations?.Any(c => c.CtorParamName == parameter.Name) is true;
        }
Пример #8
0
 private void CreateConstructorMap()
 {
     _constructorMap = new ConstructorMap(_constructorQueryProviderMock.Object, typeof(SomeType));
 }