Beispiel #1
0
    def __init__(self, reader: BinaryStream):
        self.MaterialInterface = reader.readObject()
        self.MaterialSlotName = reader.readFName()

        if FRenderingObjectVersion().get(
                reader
        ) >= FRenderingObjectVersion.TextureStreamingMeshUVChannelData:
            self.UVChannelData = FMeshUVChannelInfo(reader)
Beispiel #2
0
    def __init__(self, reader: BinaryStream, tag: FPropertyTag, readType):
        self.position = reader.base_stream.tell()
        from .BaseProperty import ReadType

        if readType == ReadType.ZERO:  #ZERO
            self.Value = FName(self.IndexToEnum(reader, tag, 0))
        elif readType.value == 0:
            byteValue = 0
            innerType = getattr(tag, "InnerType", None)
            if innerType is not None:
                from .BaseProperty import ReadAsValue
                byteValue = ReadAsValue(reader, tag.InnerData, innerType, 0)
            else:
                byteValue = reader.readByteToInt()

            self.Value = FName(self.IndexToEnum(reader, tag, byteValue))
        else:
            self.Value = reader.readFName()
Beispiel #3
0
 def __init__(self, reader: BinaryStream):
     self.position = reader.base_stream.tell()
     self.Value = reader.readFName()
Beispiel #4
0
    def __init__(self, reader: BinaryStream, propMappings: StructProps = None):
        if propMappings:
            propdata = propMappings.data

            self.Name = FName(propMappings.Name)
            self.ArrayIndex = propMappings.ArraySize

            # data section
            for attr in [
                    "EnumName", "InnerType", "StructName", "ValueType", "Type"
            ]:
                val = getattr(propdata, attr, None)
                if val is None:
                    continue

                if attr == "InnerType":
                    self.InnerData = val  #FPropertyTag2(**val)
                elif attr == "ValueType":
                    self.ValueData = val  #FPropertyTag2(val)

                if isinstance(val, str):
                    val = FName(val)
                if isinstance(val, UsmapTag):
                    val = FName(val.Type)
                setattr(self, attr, val)
            return

        self.Name = reader.readFName()
        if self.Name.isNone:
            return

        self.Type = reader.readFName()
        self.Size = reader.readInt32()
        self.ArrayIndex = reader.readInt32()

        self.position = reader.base_stream.tell()
        if self.Type.Number == 0:
            Type = self.Type.string
            if Type == "StructProperty":
                self.StructName = reader.readFName()
                if reader.version >= UE4Versions.VER_UE4_STRUCT_GUID_IN_PROPERTY_TAG:
                    self.StructGuid = FGuid(reader)
            elif Type == "BoolProperty":
                self.BoolVal = reader.readByteToInt()
            elif Type == "ByteProperty" or Type == "EnumProperty":
                self.EnumName = reader.readFName()
            elif Type == "ArrayProperty":
                if reader.version >= UE4Versions.VAR_UE4_ARRAY_PROPERTY_INNER_TAGS:
                    self.InnerType = reader.readFName()
            elif Type == "SetProperty":
                if reader.version >= UE4Versions.VER_UE4_PROPERTY_TAG_SET_MAP_SUPPORT:
                    self.InnerType = reader.readFName()
            elif Type == "MapProperty":
                if reader.version >= UE4Versions.VER_UE4_PROPERTY_TAG_SET_MAP_SUPPORT:
                    self.InnerType = reader.readFName()
                    self.ValueType = reader.readFName()

        HasPropertyGuid = reader.readByteToInt()
        if HasPropertyGuid != 0:
            FGuid(reader)
        self.end_pos = reader.tell()
Beispiel #5
0
 def __init__(self, reader: BinaryStream) -> None:
     self.ClassPackage = reader.readFName()
     self.ClassName = reader.readFName()
     self.OuterIndex = FPackageIndex(reader)
     self.ObjectName = reader.readFName()
Beispiel #6
0
 def __init__(self, reader: BinaryStream) -> None:
     self.Object = reader.readInt32()
     self.Name = reader.readFName()
Beispiel #7
0
 def __init__(self, reader: BinaryStream):
     self.TableId = reader.readFName()
     self.Key = reader.readFString()
Beispiel #8
0
 def __init__(self, reader: BinaryStream) -> None:
     self.position = reader.base_stream.tell()
     self.AssetPathName = reader.readFName()
     self.SubPathString = reader.readFString()