Files
PyG2O/src/pyg2o/functions/math.py
2025-04-15 13:37:28 +03:00

92 lines
4.0 KiB
Python

from ..server import PythonWebsocketServer
from ..call_repr import get_call_repr
async def getDistance2d(x1 : float, y1: float, x2 : float, y2 : float) -> float:
"""
!!! note
This functions supports ``pass_exception: bool`` optional argument for manual handling exceptions.
This function will get the 2d distance between two points.
Original: [getDistance2d](https://gothicmultiplayerteam.gitlab.io/docs/0.3.0/script-reference/shared-functions/math/getDistance2d/)
## Declaration
```python
async def getDistance2d(x1 : float, y1: float, x2 : float, y2 : float) -> float
```
## Parameters
* `float` **x1**: the position on X axis of the first point.
* `float` **y1**: the position on Y axis of the first point.
* `float` **x2**: the position on X axis of the second point.
* `float` **y2**: the position on Y axis of the second point.
**OR**
* `dict[str, float]` **first**: the poistion on XY axis of the first point.
* `dict[str, float]` **second**: the position of XY axis of the second point.
## Returns
`float`: Returns the calculated 2d distance between two points as floating point number.
"""
data = f'return {get_call_repr()}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def getDistance3d(x1 : float, y1: float, z1 : float, x2 : float, y2 : float, z2 : float) -> float:
"""
!!! note
This functions supports ``pass_exception: bool`` optional argument for manual handling exceptions.
This function will get the 3d distance between two points.
Original: [getDistance3d](https://gothicmultiplayerteam.gitlab.io/docs/0.3.0/script-reference/shared-functions/math/getDistance3d/)
## Declaration
```python
async def getDistance3d(x1 : float, y1: float, z1 : float, x2 : float, y2 : float, z2 : float) -> float
```
## Parameters
* `float` **x1**: the position on X axis of the first point.
* `float` **y1**: the position on Y axis of the first point.
* `float` **z1**: the position on Z axis of the first point.
* `float` **x2**: the position on X axis of the second point.
* `float` **y2**: the position on Y axis of the second point.
* `float` **z2**: the position on Z axis of the second point.
**OR**
* `dict[str, float]` **first**: the position on XYZ axis of the first point.
* `dict[str, float]` **second**: the position on XYZ axic of the second point.
## Returns
`float`: Returns the calculated 3d distance between two points as floating point number.
"""
data = f'return {get_call_repr()}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def getVectorAngle(x1 : float, y1: float, x2 : float, y2 : float) -> float:
"""
!!! note
This functions supports ``pass_exception: bool`` optional argument for manual handling exceptions.
This function will get angle on Y axis directed towards the second point.
Original: [getVectorAngle](https://gothicmultiplayerteam.gitlab.io/docs/0.3.0/script-reference/shared-functions/math/getVectorAngle/)
## Declaration
```python
async def getVectorAngle(x1 : float, y1: float, x2 : float, y2 : float) -> float
```
## Parameters
* `float` **x1**: the position on X axis of the first point.
* `float` **y1**: the position on Y axis of the first point.
* `float` **x2**: the position on X axis of the second point.
* `float` **y2**: the position on Y axis of the second point.
**OR**
* `dict[str, float]` **first**: the poistion on XY axis of the first point.
* `dict[str, float]` **second**: the position of XY axis of the second point.
## Returns
`float`: Returns the angle on Y axis directed towards the second point.
"""
data = f'return {get_call_repr()}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result