コード例 #1
0
 internal UnityCommandDefinition(ComponentDefinitionRaw.CommandDefinitionRaw rawCommandDefinition)
 {
     Name            = rawCommandDefinition.name;
     RawRequestType  = rawCommandDefinition.requestType;
     RawResponseType = rawCommandDefinition.responseType;
     CommandIndex    = rawCommandDefinition.commandIndex;
 }
コード例 #2
0
 private static string GetDeserializationFunctionFromType(TypeReferenceRaw typeReference, string packagePrefix)
 {
     return(SchemaFunctionMappings.BuiltInTypeToGetSchemaFunction.ContainsKey(typeReference.TypeName)
         ? SchemaFunctionMappings.BuiltInTypeToGetSchemaFunction[typeReference.TypeName]
         : string.Format("{0}.Serialization.Deserialize",
                         GetTypeFromTypeReference(typeReference, packagePrefix)));
 }
コード例 #3
0
        private static TypeReferenceRaw GenerateBuiltInTypeReference(string typename)
        {
            var rawTypeReference = new TypeReferenceRaw();

            rawTypeReference.builtInType = typename;
            return(rawTypeReference);
        }
コード例 #4
0
ファイル: JobRunnerTest.cs プロジェクト: m10ev/UnrealGDK
        private static TypeReferenceRaw GenerateTypeReferenceRaw()
        {
            var typeReferenceRaw = new TypeReferenceRaw();

            typeReferenceRaw.builtInType = "int32";
            return(typeReferenceRaw);
        }
コード例 #5
0
 private static string GetTypeFromTypeReference(TypeReferenceRaw typeReference, string packagePrefix)
 {
     return(typeReference.IsBuiltInType
         ? UnityTypeMappings.BuiltInSchemaTypeToUnityNativeType[typeReference.TypeName]
         : string.Format("global::{0}{1}", packagePrefix,
                         Formatting.CapitaliseQualifiedNameParts(typeReference.TypeName)));
 }
コード例 #6
0
        private static TypeReferenceRaw GenerateStandardLibraryReference()
        {
            var rawTypeReference = new TypeReferenceRaw();

            rawTypeReference.userType = "improbable.Coordinates";
            var test = rawTypeReference.IsBuiltInType;

            return(rawTypeReference);
        }
コード例 #7
0
            internal UnityEventDefinition(ComponentDefinitionRaw.EventDefinitionRaw rawEventDefinition)
            {
                Name    = rawEventDefinition.name;
                RawType = rawEventDefinition.type;

                if (RawType.IsBuiltInType)
                {
                    Type = new UnityTypeReference(RawType.TypeName, null, null);
                }
            }
コード例 #8
0
 public ContainedType(TypeReferenceRaw typeReferenceRaw, HashSet <string> enumSet)
 {
     category = enumSet.Contains(typeReferenceRaw.TypeName)
         ? ContainedTypeCategory.Enum
         : SchemaFunctionMappings.BuiltInTypeWithSchemaFunctions.Contains(typeReferenceRaw.TypeName)
             ? ContainedTypeCategory.Primitive
             : ContainedTypeCategory.UserDefined;
     Type    = CommonDetailsUtils.GetFqnTypeFromTypeReference(typeReferenceRaw);
     rawType = typeReferenceRaw.TypeName;
 }
コード例 #9
0
        public UnrealBuiltInTypeReference(TypeReferenceRaw typeReference)
        {
            if (UnrealTypeMappings.UnsupportedSchemaTypes.Contains(typeReference.TypeName))
            {
                throw new ArgumentException(string.Format("Schema type '{0}' is currently not supported in Unreal.", typeReference.TypeName));
            }

            ReferenceType = ReferenceType.BuiltIn;
            if (UnrealTypeMappings.builtInTypeToRequiredInclude.ContainsKey(typeReference.TypeName))
            {
                RequiredIncludes = UnrealTypeMappings.builtInTypeToRequiredInclude[typeReference.TypeName];
            }
            else
            {
                RequiredIncludes = new List <string>();
            }

            UnderlyingQualifiedName   = UnrealTypeMappings.builtInSchemaTypeToCppType[typeReference.TypeName];
            UnderlyingCapitalisedName = Formatting.CppQualifiedNameToCapitalisedCamelCase(UnderlyingQualifiedName);

            UnrealType = UnrealTypeMappings.cppTypeToUnrealType[UnderlyingQualifiedName];

            ConvertUnderlyingValueToUnrealMemberVariable = GenerateCppValueToUnrealValueString;
            AssignUnderlyingValueToUnrealMemberVariable  = (capitalizedName, cppValue) => { return(string.Format("{0} = {1}", capitalizedName, GenerateCppValueToUnrealValueString(cppValue))); };

            CheckInequality = (capitalizedName, compName) =>
            {
                switch (typeReference.TypeName)
                {
                case BuiltInTypeConstants.builtInFloat:
                    return(string.Format("!FMath::IsNearlyEqual({0},{1},(float)KINDA_SMALL_NUMBER)", capitalizedName, compName));

                case BuiltInTypeConstants.builtInCoordinates:
                case BuiltInTypeConstants.builtInVector3d:
                case BuiltInTypeConstants.builtInVector3f:
                    return(string.Format("!{0}.Equals({1})", capitalizedName, compName));

                default:
                    return(string.Format("{0} != {1}", capitalizedName, compName));
                }
            };
            ConvertUnrealValueToSnapshotValue           = (VarName) => { return(string.Format("{0}", VarName)); };
            ConvertUnderlyingValueToUnrealLocalVariable = ConvertUnderlyingValueToUnrealMemberVariable;
            ConvertUnrealValueToUnderlyingValue         = GenerateUnrealValueToCppValueString;

            DefaultInitialisationString = UnrealTypeMappings.BuiltInSchemaTypeToCppDefaultValue[typeReference.TypeName];
            ArgumentName = UnrealTypeMappings.CppTypesToPassByReference.Contains(UnderlyingQualifiedName) ? string.Format("const {0}&", UnrealType) : UnrealType;
            SnapshotType = UnrealType;
            UClassName   = "";
            DefaultValue = UnrealTypeMappings.CppTypeToDefaultUnrealValue[UnderlyingQualifiedName];
        }
コード例 #10
0
            internal UnityCommandDefinition(ComponentDefinitionRaw.CommandDefinitionRaw rawCommandDefinition)
            {
                Name            = rawCommandDefinition.name;
                RawRequestType  = rawCommandDefinition.requestType;
                RawResponseType = rawCommandDefinition.responseType;

                if (RawRequestType != null && RawRequestType.IsBuiltInType)
                {
                    RequestType = new UnityTypeReference(RawRequestType.TypeName, null, null);
                }

                if (RawResponseType != null && RawResponseType.IsBuiltInType)
                {
                    ResponseType = new UnityTypeReference(RawResponseType.TypeName, null, null);
                }
            }
コード例 #11
0
        internal UnityComponentDefinition(ComponentDefinitionRaw rawComponentDefinition)
        {
            Name              = rawComponentDefinition.name;
            QualifiedName     = rawComponentDefinition.qualifiedName;
            Id                = rawComponentDefinition.Id;
            RawDataDefinition = rawComponentDefinition.dataDefinition;
            if (RawDataDefinition != null && RawDataDefinition.IsBuiltInType)
            {
                DataDefinition = new UnityTypeReference(RawDataDefinition.TypeName, null, null);
            }

            EventDefinitions = rawComponentDefinition.eventDefinitions != null
                ? rawComponentDefinition.eventDefinitions
                               .Select(rawEventDefinition => new UnityEventDefinition(rawEventDefinition)).ToList()
                : new List <UnityEventDefinition>();

            CommandDefinitions = rawComponentDefinition.commandDefinitions != null
                ? rawComponentDefinition.commandDefinitions
                                 .Select(rawCommandDefinition => new UnityCommandDefinition(rawCommandDefinition)).ToList()
                : new List <UnityCommandDefinition>();
        }
コード例 #12
0
        private IUnrealTypeReference GenerateUnrealTypeReference(TypeReferenceRaw typeReference)
        {
            IUnrealTypeReference unrealTypeReference;

            if (typeReference.IsBuiltInType)
            {
                unrealTypeReference = new UnrealBuiltInTypeReference(typeReference);
            }
            else if (qualifiedNameToEnumDefinition.ContainsKey(typeReference.TypeName))
            {
                var enumDefinition    = qualifiedNameToEnumDefinition[typeReference.TypeName];
                var unrealEnumDetails = enumDefinitionToUnrealEnum[enumDefinition];
                unrealTypeReference = new UnrealEnumTypeReference(unrealEnumDetails);
            }
            else
            {
                var typeDefinition    = qualifiedNameToTypeDefinition[typeReference.TypeName];
                var unrealTypeDetails = typeDefinitionToUnrealType[typeDefinition];
                unrealTypeReference = new UnrealUserTypeReference(unrealTypeDetails);
            }

            return(unrealTypeReference);
        }
コード例 #13
0
        internal UnityFieldDefinition(FieldDefinitionRaw rawFieldDefinition)
        {
            this.RawFieldDefinition = rawFieldDefinition;
            Name   = rawFieldDefinition.name;
            Number = rawFieldDefinition.Number;
            if (rawFieldDefinition.IsOption())
            {
                RawValueType = rawFieldDefinition.optionType.valueType;
                IsOption     = true;
            }
            else if (rawFieldDefinition.IsList())
            {
                RawValueType = rawFieldDefinition.listType.valueType;
                IsList       = true;
            }
            else if (rawFieldDefinition.IsMap())
            {
                RawKeyType   = rawFieldDefinition.mapType.keyType;
                RawValueType = rawFieldDefinition.mapType.valueType;
                IsMap        = true;
            }
            else
            {
                RawValueType = rawFieldDefinition.singularType;
            }

            if (RawKeyType != null && RawKeyType.IsBuiltInType)
            {
                KeyType = new UnityTypeReference(RawKeyType.TypeName, null, null);
            }

            if (RawValueType != null && RawValueType.IsBuiltInType)
            {
                ValueType = new UnityTypeReference(RawValueType.TypeName, null, null);
            }
        }
コード例 #14
0
        private static ComponentDefinitionRaw.CommandDefinitionRaw GenerateCommandDefinition(string name, TypeReferenceRaw requestType = null, TypeReferenceRaw responseType = null)
        {
            var commandDefinitionRaw = new ComponentDefinitionRaw.CommandDefinitionRaw();

            commandDefinitionRaw.name            = name;
            commandDefinitionRaw.requestType     = requestType;
            commandDefinitionRaw.responseType    = responseType;
            commandDefinitionRaw.sourceReference = new SourceReferenceRaw()
            {
                line = "1", column = "1"
            };

            return(commandDefinitionRaw);
        }
コード例 #15
0
 internal UnityEventDefinition(ComponentDefinitionRaw.EventDefinitionRaw rawEventDefinition)
 {
     Name       = rawEventDefinition.name;
     RawType    = rawEventDefinition.type;
     EventIndex = rawEventDefinition.eventIndex;
 }
コード例 #16
0
        private static FieldDefinitionRaw GenerateFieldDefinition(string name, string number, TypeReferenceRaw singularType = null, FieldDefinitionRaw.OptionTypeRaw optionType = null, FieldDefinitionRaw.ListTypeRaw listType = null, FieldDefinitionRaw.MapTypeRaw mapType = null)
        {
            var fieldDefinitionRaw = new FieldDefinitionRaw();

            fieldDefinitionRaw.sourceReference = new SourceReferenceRaw()
            {
                line = "1", column = "1"
            };
            fieldDefinitionRaw.name         = name;
            fieldDefinitionRaw.number       = number;
            fieldDefinitionRaw.singularType = singularType;
            fieldDefinitionRaw.optionType   = optionType;
            fieldDefinitionRaw.listType     = listType;
            fieldDefinitionRaw.mapType      = mapType;

            return(fieldDefinitionRaw);
        }
コード例 #17
0
 private static string GetSchemaCountFunctionFromType(TypeReferenceRaw typeReference)
 {
     return(SchemaFunctionMappings.BuiltInTypeToGetCountSchemaFunction.ContainsKey(typeReference.TypeName)
         ? SchemaFunctionMappings.BuiltInTypeToGetCountSchemaFunction[typeReference.TypeName]
         : "GetObjectCount");
 }
コード例 #18
0
 private static string GetDeserializeIndexFunctionFromType(TypeReferenceRaw typeReference)
 {
     return(SchemaFunctionMappings.BuiltInTypeToIndexSchemaFunction.ContainsKey(typeReference.TypeName)
         ? SchemaFunctionMappings.BuiltInTypeToIndexSchemaFunction[typeReference.TypeName]
         : null);
 }
コード例 #19
0
 public static string GetFqnTypeFromTypeReference(TypeReferenceRaw typeReferenceRaw)
 {
     return(typeReferenceRaw.IsBuiltInType
         ? UnityTypeMappings.BuiltInSchemaTypeToUnityNativeType[typeReferenceRaw.TypeName]
         : GetCapitalisedFqnTypename(typeReferenceRaw.TypeName));
 }
コード例 #20
0
 public SingularFieldType(TypeReferenceRaw typeReferenceRaw, HashSet <string> enumSet)
 {
     containedType = new ContainedType(typeReferenceRaw, enumSet);
 }