Example #1
0
    def from_bytes(data):
        movement = Movement()
        data_io = io.BytesIO(data)

        header_data = read_struct(data_io, Movement.HEADER_BIN)
        movement.flags, movement.time = header_data
        movement.position = Position.from_io(data_io)

        if movement.flags & MovementFlags.ON_TRANSPORT.value:
            transport_data = read_struct(data_io,
                                         Movement.TRANSPORT_HEADER_BIN)
            movement.transport_guid = transport_data[0]
            movement.transport_position = Position.from_io(data_io)

        if movement.flags & MovementFlags.IS_SWIMMING.value:
            swimming_data = read_struct(data_io, Movement.SWIMMING_BIN)
            movement.swim_pitch = swimming_data[0]

        if movement.flags & MovementFlags.IS_FALLING.value:
            movement.jump_data = JumpData.from_io(data_io)

        if movement.flags & MovementFlags.SPLINE_ELEVATION.value:
            elevation_data = read_struct(data_io,
                                         Movement.SPLINE_ELEVATION_BIN)
            movement.spline_elevation_unk = elevation_data[0]

        return movement
Example #2
0
    def from_bytes(data):
        movement = Movement()
        data_io = io.BytesIO(data)

        header_data = read_struct(data_io, Movement.HEADER_BIN)
        movement.flags, movement.time = header_data
        movement.position = Position.from_io(data_io)

        if movement.flags & MovementFlags.ON_TRANSPORT.value:
            transport_data = read_struct(data_io, Movement.TRANSPORT_HEADER_BIN)
            movement.transport_guid = transport_data[0]
            movement.transport_position = Position.from_io(data_io)

        if movement.flags & MovementFlags.IS_SWIMMING.value:
            swimming_data = read_struct(data_io, Movement.SWIMMING_BIN)
            movement.swim_pitch = swimming_data[0]

        if movement.flags & MovementFlags.IS_FALLING.value:
            movement.jump_data = JumpData.from_io(data_io)

        if movement.flags & MovementFlags.SPLINE_ELEVATION.value:
            elevation_data = read_struct(data_io, Movement.SPLINE_ELEVATION_BIN)
            movement.spline_elevation_unk = elevation_data[0]

        return movement