https://github.com/southclaws/progress2
A SA:MP UI library for rendering progress bars used to visualise all manner of data from health to a countdown timer.
https://github.com/southclaws/progress2
library pawn-package sa-mp ui
Last synced: 10 months ago
JSON representation
A SA:MP UI library for rendering progress bars used to visualise all manner of data from health to a countdown timer.
- Host: GitHub
- URL: https://github.com/southclaws/progress2
- Owner: Southclaws
- Created: 2014-09-15T10:27:16.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-05-18T12:48:14.000Z (over 2 years ago)
- Last Synced: 2025-02-06T02:41:59.352Z (12 months ago)
- Topics: library, pawn-package, sa-mp, ui
- Language: Pawn
- Size: 217 KB
- Stars: 69
- Watchers: 6
- Forks: 64
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# progress2.inc
A SA:MP UI library for rendering progress bars used to visualise all manner of data from health to a countdown timer.
Library originally written by Flávio Toribio, Now maintained by Southclaws in version 2+ with new features.



## Installation
Simply install to your project:
```bash
sampctl package install Southclaws/progress2
```
Include in your code and begin using the library:
```pawn
#include
```
## Usage
### Constants
* `MAX_PLAYER_BARS`:
* Defaults to the textdraw limit divided by 3.
* `INVALID_PLAYER_BAR_VALUE`:
* Invalid return value for interface functions.
* `INVALID_PLAYER_BAR_ID`:
* Invalid bar ID value.
* `BAR_DIRECTION_RIGHT`:
* Bar direction left-to-right
* `BAR_DIRECTION_LEFT`:
* Bar direction right-to-left
* `BAR_DIRECTION_UP`:
* Bar direction bottom to top
* `BAR_DIRECTION_DOWN`:
* Bar direction top to bottom
* `BAR_DIRECTION_HORIZONTAL_FROM_0`
* Bar direction left to right and starts from 0.0 in case min_value and max_value have different signs.
* `BAR_DIRECTION_VERTICAL_FROM_0`
* Bar direction down to up and starts from 0.0 in case min_value and max_value have different signs.
### Functions
* `PlayerBar:CreatePlayerProgressBar(playerid, Float:x, Float:y, Float:width = 55.5, Float:height = 3.2, colour, Float:max = 100.0, direction = BAR_DIRECTION_RIGHT)`:
* Creates a progress bar for a player.
* `DestroyPlayerProgressBar(playerid, PlayerBar:barid)`:
* Destroys a player's progress bar.
* `ShowPlayerProgressBar(playerid, PlayerBar:barid)`:
* Shows a player's progress bar to them.
* `HidePlayerProgressBar(playerid, PlayerBar:barid)`:
* Hides a player's progress bar from them.
* `IsValidPlayerProgressBar(playerid, PlayerBar:barid)`:
* Returns true if the input bar ID is valid and exists.
* `GetPlayerProgressBarPos(playerid, PlayerBar:barid, &Float:x, &Float:y)`:
* Returns the on-screen position of the specified progress bar.
* `SetPlayerProgressBarPos(playerid, PlayerBar:barid, Float:x, Float:y)`:
* Updates the position for a progress bar and re-renders it.
* `Float:GetPlayerProgressBarWidth(playerid, PlayerBar:barid)`:
* Returns the width of a progress bar.
* `SetPlayerProgressBarWidth(playerid, PlayerBar:barid, Float:width)`:
* Updates the width of a progress bar and re-renders it.
* `Float:GetPlayerProgressBarHeight(playerid, PlayerBar:barid)`:
* Returns the height of a progress bar.
* `SetPlayerProgressBarHeight(playerid, PlayerBar:barid, Float:height)`:
* Updates the height of a progress bar and re-renders it.
* `GetPlayerProgressBarColour(playerid, PlayerBar:barid)`:
* Returns the colour of a progress bar.
* `SetPlayerProgressBarColour(playerid, PlayerBar:barid, colour)`:
* Sets the colour of a progress bar.
* `Float:GetPlayerProgressBarMinValue(playerid, PlayerBar:barid)`
* Returns the minumum value of a progress bar.
* `SetPlayerProgressBarMinValue(playerid, PlayerBar:barid, Float:min_value)`
* Sets the minumum value that a progress bar represents.
* `Float:GetPlayerProgressBarMaxValue(playerid, PlayerBar:barid)`:
* Returns the maximum value of a progress bar.
* `SetPlayerProgressBarMaxValue(playerid, PlayerBar:barid, Float:max)`:
* Sets the maximum value that a progress bar represents.
* `Float:GetPlayerProgressBarValue(playerid, PlayerBar:barid)`:
* Returns the value a progress bar represents.
* `SetPlayerProgressBarValue(playerid, PlayerBar:barid, Float:value)`:
* Sets the value a progress bar represents.
* `progressbar_direction:GetPlayerProgressBarDirection(playerid, PlayerBar:barid)`:
* Returns the direction of a progress bar.
* `SetPlayerProgressBarDirection(playerid, PlayerBar:barid, progressbar_direction:direction)`:
* Updates the direction for a progress bar and re-renders it.
* `GetPlayerProgressBarPadding(playerid, PlayerBar:barid, &Float:padding_x, &Float:padding_y)`
* Receives current padding for both dimensions.
* `SetPlayerProgressBarPadding(playerid, PlayerBar:barid, Float:padding_x, Float:padding_y)`
* Updates current padding for both dimensions.
### Internal
* `_RenderBar(playerid, barid)`:
* Renders a valid bar on-screen using it's current properties. Called on creation and whenever position, width or height are updated.
### Hooked
* `OnScriptInit`:
* When y_iterate is used, initialises iterators.
* `OnPlayerDisconnect`:
* To automatically destroy bars when a player disconnects.
## Testing
To test, simply run the package:
```bash
sampctl package run
```
And connect to `localhost:7777` to test.