KF2-BoxPainterLib/README.md

57 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

2023-01-29 22:10:40 +00:00
# KF2-BoxPainterLib
2023-01-30 00:14:01 +00:00
[![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/GenZmeY/KF2-BoxPainterLib)](https://github.com/GenZmeY/KF2-BoxPainterLib/tags)
2023-05-10 02:11:29 +00:00
[![MegaLinter](https://github.com/GenZmeY/KF2-BoxPainterLib/actions/workflows/mega-linter.yml/badge.svg?branch=master)](https://github.com/GenZmeY/KF2-BoxPainterLib/actions/workflows/mega-linter.yml)
2023-01-30 00:14:01 +00:00
[![GitHub top language](https://img.shields.io/github/languages/top/GenZmeY/KF2-BoxPainterLib)](https://docs.unrealengine.com/udk/Three/WebHome.html)
[![GitHub](https://img.shields.io/github/license/GenZmeY/KF2-BoxPainterLib)](LICENSE)
2023-05-10 02:11:29 +00:00
**2D box drawing library.
Ported from [YetAnotherScoreboard](https://github.com/GenZmeY/KF2-YetAnotherScoreboard) and published under LGPLv3 due to licensing issues with some closed source mods.**
2023-01-30 00:14:01 +00:00
2023-05-10 01:42:07 +00:00
## Add to your project
2023-05-10 02:17:21 +00:00
⚠️ If your code uses the GPL or LGPL you can choose any of the methods below. But if you're using a different license and don't want to change it to the (L)GPL, then you should use methods 1 or 2, and don't make changes to the BoxPainterLib code.
2023-01-30 00:14:01 +00:00
2023-05-10 02:11:29 +00:00
**Here are the ways:**
2023-05-10 02:13:15 +00:00
2023-01-30 00:14:01 +00:00
### 1. As [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
Open git-bash and go to your project: `cd <your_project_path>`
Add submodule: `git submodule add https://github.com/GenZmeY/KF2-BoxPainterLib BoxPainterLib`
**updating library:**
Get updates: `pushd BoxPainterLib && git pull && popd`
Commit the changes: `git add BoxPainterLib && git commit -m 'update box painter lib'`
### 2. As standalone sources
Create a `BoxPainterLib` folder and put [this repo](https://github.com/GenZmeY/KF2-BoxPainterLib) there.
2023-05-10 02:11:29 +00:00
### 3. As part of your sources (only for GPL and LGPL projects)
Include the BoxPainterLib code in your project wherever you want and however you like, make (or not) any changes
2023-05-10 01:42:07 +00:00
## Using
2023-01-30 00:14:01 +00:00
1. Create `BoxPainter` object: `BoxPainter = new class'BoxPainterLib.BoxPainter';`
2. Initialize the canvas: `BoxPainter.Canvas = <REPLACE_THIS_WITH_YOUR_CANVAS_OBJECT>;`
3. `BoxPainter` is ready! Use functions [DrawBox(...)](https://github.com/GenZmeY/KF2-BoxPainterLib/blob/master/Classes/BoxPainter.uc#L3) and [DrawShapedBox(...)](https://github.com/GenZmeY/KF2-BoxPainterLib/blob/master/Classes/BoxPainterBase.uc#L129) to draw cool interface boxes.
2023-05-10 01:42:07 +00:00
## Available Functions
2023-05-10 02:11:29 +00:00
**DrawShapedBox(float X, float Y, float W, float H, float Edge, byte TopLeftShape, byte TopRightShape, byte BottomLeftShape, byte BottomRightShape)**
2023-01-30 00:14:01 +00:00
Draws a box using the [shape code](https://github.com/GenZmeY/KF2-BoxPainterLib/blob/master/Classes/BoxPainterBase.uc#L13) for each corner:
- ECS_Corner
- ECS_BeveledCorner
- ECS_VerticalCorner
- ECS_HorisontalCorner
2023-05-10 02:11:29 +00:00
**DrawBox(float X, float Y, float Width, float Height, float Edge, optional byte Shape = 0)**
2023-01-30 00:14:01 +00:00
Draws a box using the shape code:
2023-05-10 01:42:07 +00:00
![codes_table](rect_shapes.png)
2023-01-30 00:14:01 +00:00
2023-05-10 01:42:07 +00:00
## Build
2023-01-30 00:14:01 +00:00
If you are using [KF2-BuildTools](https://github.com/GenZmeY/KF2-BuildTools) open `builder.cfg` and add `BoxPainterLib` **first** in `PackageBuildOrder` and `PackageUpload` parameters
If you are building manually add line `ModPackages=BoxPainterLib` to your `KFEditor.ini` before all other `ModPackages`
Now build the mod. `BoxPainterLib.u` library will be next to your `*.u` files
2023-05-10 01:42:07 +00:00
## Examples
2023-05-10 02:40:28 +00:00
[KF2-YetAnotherScoreboard (master branch)](https://github.com/GenZmeY/KF2-YetAnotherScoreboard/tree/master) - BoxPainterLib is part of sources
[KF2-YetAnotherScoreboard (BoxPainterLib branch)](https://github.com/GenZmeY/KF2-YetAnotherScoreboard/tree/BoxPainterLib) - BoxPainterLib is git submodule
2023-01-30 00:57:28 +00:00
2023-05-10 01:42:07 +00:00
## License
[![license](https://www.gnu.org/graphics/lgplv3-with-text-154x68.png)](LICENSE)