Exemplo n.º 1
0
        public UnrealMapTypeReference(IUnrealTypeReference containedTypeReferenceKey, IUnrealTypeReference containedTypeReferenceValue)
        {
            ReferenceType = ReferenceType.Map;
            KeyType       = containedTypeReferenceKey;
            ValueType     = containedTypeReferenceValue;

            var className = string.Format("{0}To{1}Map", containedTypeReferenceKey.UnderlyingCapitalisedName, containedTypeReferenceValue.UnderlyingCapitalisedName);

            UnrealType = string.Format("U{0}*", className);
            UnderlyingQualifiedName   = string.Format("worker::Map<{0}, {1}>", containedTypeReferenceKey.UnderlyingQualifiedName, containedTypeReferenceValue.UnderlyingQualifiedName);
            UnderlyingCapitalisedName = null;
            ConvertUnderlyingValueToUnrealMemberVariable = (cppMap) =>
            {
                // Set owning object as new uobject's outer.
                return(string.Format("NewObject<U{0}>(this)->Init({1})", className, cppMap));
            };
            AssignUnderlyingValueToUnrealMemberVariable = (capitalizedName, cppMap) =>
            {
                return(string.Format(@"if ({0} == nullptr) {{ {0} = NewObject<U{1}>(this); }} {0}->Init({2})",
                                     capitalizedName,
                                     className,
                                     cppMap));
            };
            CheckInequality = (capitalizedName, compName) => { return(string.Format("{0} && (*{0} != {1})", capitalizedName, compName)); };
            ConvertUnrealValueToSnapshotValue           = (VarName) => { return(ConvertUnrealValueToUnderlyingValue(VarName)); };
            ConvertUnderlyingValueToUnrealLocalVariable = (cppMap) =>
            {
                //set static instance package as the uobject's outer
                return(string.Format("NewObject<U{0}>()->Init({1})", className, cppMap));
            };
            ConvertUnrealValueToUnderlyingValue = (unrealMap) => { return(string.Format("{0}->GetUnderlying()", unrealMap)); };
            RequiredIncludes = new List <string>();
            RequiredIncludes.Add(string.Format("\"{0}.h\"", className));
            RequiredIncludes.AddRange(containedTypeReferenceKey.RequiredIncludes);
            RequiredIncludes.AddRange(containedTypeReferenceValue.RequiredIncludes);
            RequiredIncludes = RequiredIncludes.Distinct().ToList();

            DefaultInitialisationString = string.Format("worker::Map<{0}, {1}>()", KeyType.UnderlyingQualifiedName,
                                                        ValueType.UnderlyingQualifiedName);
            ArgumentName = UnrealType;
            SnapshotType = string.Format("worker::Map<{0}, {1}>", containedTypeReferenceKey.UnderlyingQualifiedName, containedTypeReferenceValue.UnderlyingQualifiedName);
            UClassName   = string.Format("U{0}", className);
            DefaultValue = "nullptr";
        }
Exemplo n.º 2
0
 public UnrealCommandDetails(ComponentDefinitionRaw.CommandDefinitionRaw commandDefinition,
                             string capitalisedName,
                             string qualifiedOwnerName,
                             string capitalisedOwnerName,
                             IUnrealTypeReference requestTypeReference,
                             IUnrealTypeReference responseTypeReference,
                             UnrealPackageDetails packageDetails)
 {
     CapitalisedName             = capitalisedName;
     UnderlyingCommandDefinition = commandDefinition;
     UnderlyingCapitalisedName   = Formatting.SnakeCaseToCapitalisedCamelCase(commandDefinition.name);
     UnderlyingPackageDetails    = packageDetails;
     QualifiedOwnerName          = qualifiedOwnerName;
     CapitalisedOwnerName        = capitalisedOwnerName;
     UnrealRequestTypeDetails    = requestTypeReference;
     UnrealResponseTypeDetails   = responseTypeReference;
     UnrealCommandDelegateType   = string.Format("{0}{1}", responseTypeReference.CapitalisedName, requestTypeReference.CapitalisedName);
     UnrealCommandDelegateName   = string.Format("F{0}Command", CapitalisedName);
 }
Exemplo n.º 3
0
 public UnrealFieldDetails(FieldDefinitionRaw fieldDefinition, IUnrealTypeReference typeReference)
 {
     CapitalisedName = Formatting.SnakeCaseToCapitalisedCamelCase(fieldDefinition.name);
     LowercaseName   = fieldDefinition.name;
     TypeReference   = typeReference;
 }
Exemplo n.º 4
0
 public UnrealEventDetails(ComponentDefinitionRaw.EventDefinitionRaw eventDefinition, IUnrealTypeReference typeReference)
 {
     CapitalisedName    = Formatting.SnakeCaseToCapitalisedCamelCase(eventDefinition.name);
     LowercaseName      = eventDefinition.name;
     EventTypeReference = typeReference;
 }