Описание
# Minescript HUD Addon
This mod adds the ability to draw custom HUD elements in [Minescript](https://modrinth.com/mod/minescript).
For rendering objects in the world, I will be making a seperate mod.
Documentation can be found in the [wiki](https://maksymiblue12.github.io/Minescript-Hud-Addon/).
# Bugs/Features
### If you have any suggestions, or found any bugs, please [fill out this google form](https://docs.google.com/forms/d/e/1FAIpQLSdu7E3htzYRKgDzWqmLsKmJvipLt042Wlo777EFCwW-H2KP1Q/viewform).
currently working on adding in world drawing.
## Features
- Draw ***text*** on the HUD
- Draw ***rectangles*** and gradient rectangles
- Render ***items***
- Render ***textures***
- Render ***custom shapes***
- ***Animate*** all element properties
- ***Detect*** mouse hover and click events
- Control ***display duration*** and ***render layers***
## Installation
1. Install [Minescript](https://modrinth.com/mod/minescript).
2. Place this addon in your `mods` folder.
3. Launch the game.
## Example
```python
from hud_renderer import *
add_text("Hello World",x=10,y=10,color=argb(255,255,255,255),shadow=True,display_duration=5)
```
## Animations
All HUD elements can be animated using animation functions.
```python
from hud_renderer import *
def move(text:TextObject):
text.x+=1
_id=add_text("I can MOVE!",x=10,y=10,color=Colors.WHITE,shadow=True,display_duration=5)
animate_text(_id,move)
```
## Mouse Events
All objects can detect mouse hover and click events.
```python
from minescript import echo
from hud_renderer import *
def hover(text:TextObject,mouse:MouseObject,exited:bool):
if (exited):
text.color=Colors.WHITE
else:
text.color=Colors.GREEN
def click(text:TextObject,mouse:MouseObject):
echo("Clicked!")
_id=add_text("Click me!",x=10,y=10,color=Colors.WHITE,shadow=True,display_duration=10)
add_mouse_callbacks_and_wait(_id,on_hover=hover,on_click=click)
```
## Layer System
Elements are rendered in layers.
Elements with higher layer values render above elements with lower layers.
## API Overview
> A more detailed API can be found on the [wiki](https://maksymiblue12.github.io/Minescript-Hud-Addon/).
### Text
- `add_text(...)`
- `add_text_with_background(...)`
- `add_advanced_text(...)`
- `add_advanced_text_with_background(...)`
- `animate_text(...)`
- `animate_text_with_background(...)`
### Rectangles
- `add_rectangle(...)`
- `add_rectangle_from_corners(...)`
- `add_gradient_rectangle(...)`
- `add_stroked_rectangle(...)`
- `animate_rectangle(...)`
### Items
- `add_item(...)`
- `add_advanced_item(...)`
- `animate_item(...)`
### Textures
> **Note:** Custom textures must be added by a resource pack in the `assets/minescripthud/textures/gui/sprites/` folder.
- `add_texture(...)`
- `add_advanced_texture(...)`
- `animate_texture(...)`
### Shapes
- `add_shape(...)`
- `add_advanced_shape(...)`
- `animate_shape(...)`
- `add_line(...)`
- `add_multiline(...)`
- `add_triangle(...)`
- `add_quad(...)`
- `add_circle(...)`
- `add_ellipse(...)`
### Anti-Aliased Shapes (with smooth edges)
- `add_anti_aliased_shape(...)`
- `add_advanced_anti_aliased_shape(...)`
- `animate_anti_aliased_shape(...)`
- `add_line_with_thickness(...)`
- `add_anti_aliased_quad(...)`
- `add_anti_aliased_rectangle(...)`
- `add_anti_aliased_rectangle_with_round_corners(...)`
- `get_points_for_circle(...)`
- `add_anti_aliased_circle(...)`
- `get_points_for_ellipse(...)`
- `add_anti_aliased_ellipse(...)`
### Utility functions
- `argb(...)`
- `argb_to_int(...)`
- `alpha_from_int(...)`
- `add_async_mouse_callbacks(...)`
- `add_mouse_callbacks_and_wait(...)`
- `wait_until_removed(...)`
- `remove_element(...)`
- `clear()`
- `suppress_done_message()`