def from_location(
        location: Union[Location, Math_Location, 'CommonLocation',
                        'CommonRoutingLocation']
    ) -> Union['CommonRoutingLocation', None]:
        """from_location(location)

        Convert a vanilla Location object into a CommonRoutingLocation.

        :param location: An instance of a Location.
        :type location: Union[routing.Location, sims4.math.Location, CommonLocation, CommonRoutingLocation]
        :return: An instance of a CommonRoutingLocation or None if the object failed to convert.
        :rtype: Union[CommonRoutingLocation, None]
        """
        from sims4communitylib.classes.math.common_location import CommonLocation
        if location is None:
            return None
        if isinstance(location, CommonRoutingLocation):
            return location
        if isinstance(location, Location):
            return CommonRoutingLocation(location.position,
                                         location.orientation,
                                         location.routing_surface)
        if not isinstance(location, Math_Location) and not isinstance(
                location, CommonLocation):
            raise Exception(
                'Failed to convert {} with type {} was not of type {}.'.format(
                    location, type(location), type(Math_Location)))
        routing_surface = location.routing_surface if location.routing_surface is not None else CommonSurfaceIdentifier.empty(
        )
        return CommonRoutingLocation(
            CommonVector3.from_vector3(location.transform.translation),
            orientation=CommonQuaternion.from_quaternion(
                location.transform.orientation),
            routing_surface=CommonSurfaceIdentifier.from_surface_identifier(
                routing_surface))
    def get_orientation(game_object: GameObject) -> CommonQuaternion:
        """get_orientation(game_object)

        Retrieve the orientation of an Object.

        :param game_object: An instance of an Object.
        :type game_object: GameObject
        :return: The orientation of the Object.
        :rtype: CommonQuaternion
        """
        return CommonQuaternion.from_quaternion(game_object.orientation)
Exemple #3
0
    def get_orientation(sim_info: SimInfo) -> CommonQuaternion:
        """get_orientation(sim_info)

        Retrieve the orientation of a Sim.

        :param sim_info: An instance of a Sim.
        :type sim_info: SimInfo
        :return: The orientation of the Sim.
        :rtype: CommonQuaternion
        """
        if sim_info is None:
            return CommonQuaternion.empty()
        sim = CommonSimUtils.get_sim_instance(sim_info)
        if sim is None:
            return CommonQuaternion.empty()
        return CommonQuaternion.from_quaternion(sim.orientation)
    def from_transform(transform: Union[Transform, MathPb2Transform, 'CommonTransform']) -> Union['CommonTransform', None]:
        """from_transform(transform)

        Convert a Transform into a CommonTransform.

        :param transform: An instance of a transform.
        :type transform: Union[Transform, MathPb2Transform, CommonTransform]
        :return: An instance of a CommonTransform or None if it failed to convert.
        :rtype: Union[CommonTransform, None]
        """
        if transform is None:
            return None
        if isinstance(transform, CommonTransform):
            return transform
        if not isinstance(transform, Transform) and not isinstance(transform, MathPb2Transform):
            raise Exception('Failed to convert {} with type {} was not of type {}.'.format(transform, type(transform), type(Transform)))
        # noinspection PyUnresolvedReferences
        return CommonTransform(CommonVector3.from_vector3(transform.translation), CommonQuaternion.from_quaternion(transform.orientation))