示例#1
0
    def __init__(self, reader: BinaryStream):
        self.stripFlags = FStripDataFlags(reader)
        self.sections = reader.readTArray_W_Arg(FStaticMeshSection, reader)
        self.maxDeviation = reader.readFloat()

        if reader.game < GAME_UE4(23):
            if not self.stripFlags.isDataStrippedForServer(
            ) and not self.stripFlags.isClassDataStripped(CDSF_MinLodData):
                self.serializeBuffer_legacy(reader)
            return

        self.is_lod_cooked_out = reader.readBool()
        self.inlined = reader.readBool()

        if not self.stripFlags.isDataStrippedForServer(
        ) and not self.is_lod_cooked_out:
            pos = reader.tellfake()
            if self.inlined:
                self.serializeBuffer(reader)
            else:
                bulk: FByteBulkData = FByteBulkData(
                    reader,
                    ubulk=reader.ubulk_stream,
                    bulkOffset=reader.PackageReader.PackageFileSummary.
                    BulkDataStartOffset)
                if bulk.Header.ElementCount > 0:
                    tr = BinaryStream(bulk.Data)
                    tr.game = reader.game
                    tr.version = reader.version
                    self.serializeBuffer(tr)

                reader.readUInt32()  # DepthOnlyNumTriangles
                reader.readUInt32()  # PackedData
                reader.seek(4 * 4 + 2 * 4 + 2 * 4 + 6 * (2 * 4), 1)
                """
                            StaticMeshVertexBuffer = 2x int32, 2x bool
                            PositionVertexBuffer = 2x int32
                            ColorVertexBuffer = 2x int32
                            IndexBuffer = int32 + bool
                            ReversedIndexBuffer
                            DepthOnlyIndexBuffer
                            ReversedDepthOnlyIndexBuffer
                            WireframeIndexBuffer
                            AdjacencyIndexBuffer
                """
        # FStaticMeshBuffersSize
        reader.readUInt32()  # SerializedBuffersSize
        reader.readUInt32()  # DepthOnlyIBSize
        reader.readUInt32()  # ReversedIBsSize
示例#2
0
 def __init__(self, reader: BinaryStream):  # probably crash
     self.position = reader.base_stream.tell()
     self.InterpMode = ERichCurveInterpMode(
         int.from_bytes(reader.readByte(), byteorder="little"))
     self.TangentMode = ERichCurveTangentMode(
         int.from_bytes(reader.readByte(), byteorder="little"))
     self.TangentWeightMode = ERichCurveTangentWeightMode(
         int.from_bytes(reader.readByte(), byteorder="little"))
     self.KeyTime = reader.readFloat()
     self.KeyValue = reader.readFloat()
     self.ArriveTangent = reader.readFloat()
     self.ArriveTangentWeight = reader.readFloat()
     self.LeaveTangent = reader.readFloat()
     self.LeaveTangentWeight = reader.readFloat()
示例#3
0
 def __init__(self, reader: BinaryStream):
     self.position = reader.base_stream.tell()
     self.R = reader.readFloat()
     self.G = reader.readFloat()
     self.B = reader.readFloat()
     self.A = reader.readFloat()
示例#4
0
 def __init__(self, reader: BinaryStream):
     self.position = reader.base_stream.tell()
     self.Pitch = reader.readFloat()
     self.Yaw = reader.readFloat()
     self.Roll = reader.readFloat()
示例#5
0
 def __init__(self, reader: BinaryStream):
     super().__init__()
     self.Cooked = reader.readBool()
     self.Value = reader.readFloat()
示例#6
0
 def __init__(self, reader: BinaryStream):
     self.position = reader.base_stream.tell()
     self.X = reader.readFloat()
     self.Y = reader.readFloat()
     self.Z = reader.readFloat()
     self.W = reader.readFloat()
示例#7
0
 def __init__(self, reader: BinaryStream):
     super().__init__()
     self.Origin = FVector(reader)
     self.BoxExtent = FVector(reader)
     self.SphereRadius = reader.readFloat()
示例#8
0
 def __init__(self, reader: BinaryStream):
     self.bInitialized = reader.readBool()
     self.bOverrideDensities = reader.readBool()
     self.LocalUVDensities = [
         reader.readFloat() for _ in range(TEXSTREAM_MAX_NUM_UVCHANNELS)
     ]
示例#9
0
 def __init__(self, reader: BinaryStream):
     self.Prob = reader.readTArray(reader.readFloat)
     self.Alias = reader.readTArray(reader.readInt32)
     self.TotalWeight = reader.readFloat()
示例#10
0
 def __init__(self, reader: BinaryStream):
     self.position = reader.base_stream.tell()
     self.KeyTime = reader.readFloat()
     self.KeyValue = reader.readFloat()