From 83281bf7f92b70edcd9dc25f6c6e33d42f7c3856 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 10 May 2023 04:28:37 +0300 Subject: [PATCH 1/3] update .editorconfig --- .editorconfig | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/.editorconfig b/.editorconfig index 133fb32..b60821d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,5 +1,32 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 +root = true + +# Global +[*] +indent_style = unset +indent_size = 4 +tab_width = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = unset + +# Unreal Engine 3 / Source +[*.uc] +indent_style = tab + +[*.{uci,upkg}] + +# Unreal Engine 3 / i18n +[*.{chn,cht,cze,dan,deu,dut,esl,esn,fra,frc,hun,int,ita,jpn,kor,pol,por,ptb,rus,tur,ukr}] +charset = utf-16le + +# Other +[*.md] +trim_trailing_whitespace = false + +[*.yml] +indent_style = space +indent_size = 2 + +[*.{txt,cfg,conf}] +indent_style = tab From 74e90c84e6b3dd85ac9f41ebbf9386dbe6d52699 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 10 May 2023 04:29:14 +0300 Subject: [PATCH 2/3] add MegaLinter --- .github/workflows/mega-linter.yml | 72 +++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/mega-linter.yml diff --git a/.github/workflows/mega-linter.yml b/.github/workflows/mega-linter.yml new file mode 100644 index 0000000..24897f3 --- /dev/null +++ b/.github/workflows/mega-linter.yml @@ -0,0 +1,72 @@ +--- +name: MegaLinter + +permissions: read-all + +on: + push: + pull_request: + branches: [master] + +env: + APPLY_FIXES: none + APPLY_FIXES_EVENT: pull_request + APPLY_FIXES_MODE: commit + DISABLE: SPELL + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + build: + name: MegaLinter + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + with: + token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} + + - name: MegaLinter + id: ml + uses: oxsecurity/megalinter@v6 + env: + VALIDATE_ALL_CODEBASE: true + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Archive production artifacts + if: ${{ success() }} || ${{ failure() }} + uses: actions/upload-artifact@v3 + with: + name: MegaLinter reports + path: | + megalinter-reports + mega-linter.log + + - name: Create Pull Request with applied fixes + id: cpr + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} + commit-message: "[MegaLinter] Apply linters automatic fixes" + title: "[MegaLinter] Apply linters automatic fixes" + labels: bot + - name: Create PR output + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" + + - name: Prepare commit + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) + run: sudo chown -Rc $UID .git/ + - name: Commit and push applied linter fixes + if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) + uses: stefanzweifel/git-auto-commit-action@v4 + with: + branch: ${{ github.event.pull_request.head.ref || github.head_ref || github.ref }} + commit_message: "[MegaLinter] Apply linters fixes" + commit_user_name: megalinter-bot + commit_user_email: nicolas.vuillamy@ox.security From 0974960556fb9a1a85d38327b236cb5963f615e2 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Wed, 10 May 2023 04:42:07 +0300 Subject: [PATCH 3/3] fix style to match the linters --- Classes/BoxPainter.uc | 182 +++++++++++++++++++------------------- Classes/BoxPainterBase.uc | 46 +++++----- README.md | 20 ++--- 3 files changed, 124 insertions(+), 124 deletions(-) diff --git a/Classes/BoxPainter.uc b/Classes/BoxPainter.uc index 73cbddd..5385a46 100644 --- a/Classes/BoxPainter.uc +++ b/Classes/BoxPainter.uc @@ -3,7 +3,7 @@ class BoxPainter extends BoxPainterBase; public final function DrawBox(float X, float Y, float Width, float Height, float Edge, optional byte Shape = 0) { Edge = FMin(FMin(Edge, Width * 0.5), Height * 0.5); - + switch (Shape) { case 100: @@ -15,7 +15,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 110: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -25,17 +25,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - + case 111: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_Corner, // TopLeft // | \ + ECS_Corner, // TopLeft // | \ ECS_BeveledCorner, // TopRight // | | ECS_BeveledCorner, // BottomLeft // \______| ECS_Corner // BottomRight // ); break; - + case 120: DrawShapedBox( X, Y, Width, Height, Edge, // |\____/| @@ -45,17 +45,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_VerticalCorner // BottomRight // |/ \| ); break; - + case 121: DrawShapedBox( X, Y, Width, Height, Edge, // _______ ECS_HorisontalCorner, // TopLeft // \ / ECS_HorisontalCorner, // TopRight // | | ECS_HorisontalCorner, // BottomLeft // | | - ECS_HorisontalCorner // BottomRight // /_____\ + ECS_HorisontalCorner // BottomRight // /_____\ ); break; - + case 130: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -65,17 +65,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - + case 131: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_Corner, // TopLeft // | \ + ECS_Corner, // TopLeft // | \ ECS_BeveledCorner, // TopRight // | | ECS_Corner, // BottomLeft // |______| ECS_Corner // BottomRight // ); break; - + case 132: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -85,7 +85,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 133: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -95,17 +95,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 140: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | ECS_BeveledCorner, // BottomLeft // \______| ECS_Corner // BottomRight // ); break; - + case 141: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -115,47 +115,47 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - - case 142: + + case 142: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_Corner, // TopLeft // | \ + ECS_Corner, // TopLeft // | \ ECS_BeveledCorner, // TopRight // | | ECS_BeveledCorner, // BottomLeft // \______/ ECS_BeveledCorner // BottomRight // ); break; - + case 143: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | ECS_Corner, // BottomLeft // |______/ ECS_BeveledCorner // BottomRight // ); break; - + case 150: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | ECS_VerticalCorner, // BottomLeft // | ____ | ECS_VerticalCorner // BottomRight // |/ \| ); break; - + case 151: DrawShapedBox( X, Y, Width, Height, Edge, // _______ ECS_BeveledCorner, // TopLeft // / / ECS_HorisontalCorner, // TopRight // | | - ECS_BeveledCorner, // BottomLeft // \______\ + ECS_BeveledCorner, // BottomLeft // \______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 152: DrawShapedBox( X, Y, Width, Height, Edge, // |\____/| @@ -165,17 +165,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - + case 153: DrawShapedBox( X, Y, Width, Height, Edge, // _______ - ECS_HorisontalCorner, // TopLeft // \ \ + ECS_HorisontalCorner, // TopLeft // \ \ ECS_BeveledCorner, // TopRight // | | ECS_HorisontalCorner, // BottomLeft // /______/ ECS_BeveledCorner // BottomRight // ); break; - + case 160: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -185,47 +185,47 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - + case 161: DrawShapedBox( X, Y, Width, Height, Edge, // |\_____ - ECS_VerticalCorner, // TopLeft // | \ + ECS_VerticalCorner, // TopLeft // | \ ECS_BeveledCorner, // TopRight // | | ECS_BeveledCorner, // BottomLeft // \______/ ECS_BeveledCorner // BottomRight // ); break; - + case 162: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | ECS_HorisontalCorner, // BottomLeft // /______/ ECS_BeveledCorner // BottomRight // ); break; - + case 163: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | ECS_BeveledCorner, // BottomLeft // \_____ | ECS_VerticalCorner // BottomRight // \| ); break; - + case 170: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | - ECS_BeveledCorner, // BottomLeft // \______\ + ECS_BeveledCorner, // BottomLeft // \______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 171: DrawShapedBox( X, Y, Width, Height, Edge, // _____/| @@ -235,27 +235,27 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - + case 172: DrawShapedBox( X, Y, Width, Height, Edge, // _______ - ECS_HorisontalCorner, // TopLeft // \ \ + ECS_HorisontalCorner, // TopLeft // \ \ ECS_BeveledCorner, // TopRight // | | ECS_BeveledCorner, // BottomLeft // \______/ ECS_BeveledCorner // BottomRight // ); break; - + case 173: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | ECS_VerticalCorner, // BottomLeft // | _____/ ECS_BeveledCorner // BottomRight // |/ ); break; - + case 180: DrawShapedBox( X, Y, Width, Height, Edge, // _______ @@ -265,7 +265,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 181: DrawShapedBox( X, Y, Width, Height, Edge, // |\_____ @@ -275,7 +275,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 182: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -285,7 +285,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 183: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -295,17 +295,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_VerticalCorner // BottomRight // \| ); break; - + case 190: DrawShapedBox( X, Y, Width, Height, Edge, // ______ ECS_Corner, // TopLeft // | | ECS_Corner, // TopRight // | | - ECS_Corner, // BottomLeft // |______\ + ECS_Corner, // BottomLeft // |______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 191: DrawShapedBox( X, Y, Width, Height, Edge, // _____/| @@ -315,7 +315,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 192: DrawShapedBox( X, Y, Width, Height, Edge, // _______ @@ -325,7 +325,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 193: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -335,7 +335,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // |/ ); break; - + case 200: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -345,17 +345,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_VerticalCorner // BottomRight // |/ \| ); break; - + case 201: DrawShapedBox( X, Y, Width, Height, Edge, // _______ ECS_Corner, // TopLeft // | / ECS_HorisontalCorner, // TopRight // | | - ECS_Corner, // BottomLeft // |______\ + ECS_Corner, // BottomLeft // |______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 202: DrawShapedBox( X, Y, Width, Height, Edge, // |\____/| @@ -365,7 +365,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 203: DrawShapedBox( X, Y, Width, Height, Edge, // _______ @@ -375,7 +375,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 210: DrawShapedBox( X, Y, Width, Height, Edge, // ________ @@ -385,27 +385,27 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - + case 211: DrawShapedBox( X, Y, Width, Height, Edge, // |\_____ - ECS_VerticalCorner, // TopLeft // | \ + ECS_VerticalCorner, // TopLeft // | \ ECS_BeveledCorner, // TopRight // | | ECS_VerticalCorner, // BottomLeft // | _____/ ECS_BeveledCorner // BottomRight // |/ ); break; - + case 212: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | - ECS_HorisontalCorner, // BottomLeft // /______\ + ECS_HorisontalCorner, // BottomLeft // /______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 213: DrawShapedBox( X, Y, Width, Height, Edge, // _____/| @@ -415,7 +415,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_VerticalCorner // BottomRight // \| ); break; - + case 220: DrawShapedBox( X, Y, Width, Height, Edge, // ________ @@ -425,7 +425,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 221: DrawShapedBox( X, Y, Width, Height, Edge, // |\_____ @@ -435,17 +435,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // |/ ); break; - + case 222: DrawShapedBox( X, Y, Width, Height, Edge, // ______ ECS_Corner, // TopLeft // | | ECS_Corner, // TopRight // | | - ECS_HorisontalCorner, // BottomLeft // /______\ + ECS_HorisontalCorner, // BottomLeft // /______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 223: DrawShapedBox( X, Y, Width, Height, Edge, // _____/| @@ -455,37 +455,37 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_VerticalCorner // BottomRight // \| ); break; - + case 230: DrawShapedBox( X, Y, Width, Height, Edge, // _______ - ECS_BeveledCorner, // TopLeft // / / + ECS_BeveledCorner, // TopLeft // / / ECS_HorisontalCorner, // TopRight // | | ECS_HorisontalCorner, // BottomLeft // /______/ ECS_BeveledCorner // BottomRight // ); break; - + case 231: DrawShapedBox( X, Y, Width, Height, Edge, // |\_____ - ECS_VerticalCorner, // TopLeft // | \ + ECS_VerticalCorner, // TopLeft // | \ ECS_BeveledCorner, // TopRight // | | ECS_BeveledCorner, // BottomLeft // \_____ | ECS_VerticalCorner // BottomRight // \| ); break; - + case 232: DrawShapedBox( X, Y, Width, Height, Edge, // _______ - ECS_HorisontalCorner, // TopLeft // \ \ + ECS_HorisontalCorner, // TopLeft // \ \ ECS_BeveledCorner, // TopRight // | | - ECS_BeveledCorner, // BottomLeft // \______\ + ECS_BeveledCorner, // BottomLeft // \______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 233: DrawShapedBox( X, Y, Width, Height, Edge, // _____/| @@ -495,17 +495,17 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // |/ ); break; - + case 240: DrawShapedBox( X, Y, Width, Height, Edge, // _______ - ECS_Corner, // TopLeft // | / + ECS_Corner, // TopLeft // | / ECS_HorisontalCorner, // TopRight // | | ECS_HorisontalCorner, // BottomLeft // /______| ECS_Corner // BottomRight // ); break; - + case 241: DrawShapedBox( X, Y, Width, Height, Edge, // |\_____ @@ -515,37 +515,37 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_VerticalCorner // BottomRight // \| ); break; - + case 242: DrawShapedBox( X, Y, Width, Height, Edge, // _______ ECS_HorisontalCorner, // TopLeft // \ | ECS_Corner, // TopRight // | | - ECS_Corner, // BottomLeft // |______\ + ECS_Corner, // BottomLeft // |______\ ECS_HorisontalCorner // BottomRight // ); break; - + case 243: DrawShapedBox( X, Y, Width, Height, Edge, // _____/| - ECS_Corner, // TopLeft // | | + ECS_Corner, // TopLeft // | | ECS_VerticalCorner, // TopRight // | | ECS_VerticalCorner, // BottomLeft // | _____| ECS_Corner // BottomRight // |/ ); break; - + case 250: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_BeveledCorner, // TopLeft // / \ + ECS_BeveledCorner, // TopLeft // / \ ECS_BeveledCorner, // TopRight // | | ECS_Corner, // BottomLeft // |______| ECS_Corner // BottomRight // ); break; - + case 251: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -555,7 +555,7 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_Corner // BottomRight // ); break; - + case 252: DrawShapedBox( X, Y, Width, Height, Edge, // ______ @@ -565,23 +565,23 @@ public final function DrawBox(float X, float Y, float Width, float Height, float ECS_BeveledCorner // BottomRight // ); break; - + case 253: DrawShapedBox( X, Y, Width, Height, Edge, // ______ - ECS_Corner, // TopLeft // | \ + ECS_Corner, // TopLeft // | \ ECS_BeveledCorner, // TopRight // | | ECS_Corner, // BottomLeft // |______/ ECS_BeveledCorner // BottomRight // ); break; - + case 0: default: DrawShapedBox( X, Y, Width, Height, Edge, // ECS_BeveledCorner, // TopLeft // ______ - ECS_BeveledCorner, // TopRight // / \ + ECS_BeveledCorner, // TopRight // / \ ECS_BeveledCorner, // BottomLeft // | | ECS_BeveledCorner // BottomRight // \______/ ); diff --git a/Classes/BoxPainterBase.uc b/Classes/BoxPainterBase.uc index 274f8e5..6198e4b 100644 --- a/Classes/BoxPainterBase.uc +++ b/Classes/BoxPainterBase.uc @@ -44,80 +44,80 @@ private final function DrawCorner(float X, float Y, float Edge, byte Position, b { case ECS_Corner: return; - + case ECS_BeveledCorner: Canvas.SetPos(X, Y); DrawCornerTexture(Edge, ECP_TopLeft); return; - + case ECS_VerticalCorner: Canvas.SetPos(X, Y - Edge); DrawCornerTexture(Edge, ECP_TopRight); return; - + case ECS_HorisontalCorner: Canvas.SetPos(X - Edge, Y); DrawCornerTexture(Edge, ECP_BottomLeft); return; } - + case ECP_TopRight: switch (Shape) { case ECS_Corner: return; - + case ECS_BeveledCorner: Canvas.SetPos(X - Edge, Y); DrawCornerTexture(Edge, ECP_TopRight); return; - + case ECS_VerticalCorner: Canvas.SetPos(X - Edge, Y - Edge); DrawCornerTexture(Edge, ECP_TopLeft); return; - + case ECS_HorisontalCorner: Canvas.SetPos(X, Y); DrawCornerTexture(Edge, ECP_BottomRight); return; } - + case ECP_BottomLeft: switch (Shape) { case ECS_Corner: return; - + case ECS_BeveledCorner: Canvas.SetPos(X, Y - Edge); DrawCornerTexture(Edge, ECP_BottomLeft); return; - + case ECS_VerticalCorner: Canvas.SetPos(X, Y); DrawCornerTexture(Edge, ECP_BottomRight); return; - + case ECS_HorisontalCorner: Canvas.SetPos(X - Edge, Y - Edge); DrawCornerTexture(Edge, ECP_TopLeft); return; } - + case ECP_BottomRight: switch (Shape) { case ECS_Corner: return; - + case ECS_BeveledCorner: Canvas.SetPos(X - Edge, Y - Edge); DrawCornerTexture(Edge, ECP_BottomRight); return; - + case ECS_VerticalCorner: Canvas.SetPos(X - Edge, Y); DrawCornerTexture(Edge, ECP_BottomLeft); return; - + case ECS_HorisontalCorner: Canvas.SetPos(X, Y - Edge); DrawCornerTexture(Edge, ECP_TopRight); @@ -129,7 +129,7 @@ private final function DrawCorner(float X, float Y, float Edge, byte Position, b public final function DrawShapedBox(float X, float Y, float W, float H, float Edge, byte TopLeftShape, byte TopRightShape, byte BottomLeftShape, byte BottomRightShape) { local float BoxX, BoxW; - + Canvas.PreOptimizeDrawTiles(( 3 // x3 DrawBoxTexture(...) + x1..x4 DrawCornerTexture(...) + (TopLeftShape == ECS_Corner ? 0 : 1) @@ -137,10 +137,10 @@ public final function DrawShapedBox(float X, float Y, float W, float H, float Ed + (BottomLeftShape == ECS_Corner ? 0 : 1) + (BottomRightShape == ECS_Corner ? 0 : 1) ), Texture); - + // Top Line DrawCorner(X, Y, Edge, ECP_TopLeft, TopLeftShape); - + BoxX = X; BoxW = W; if (TopLeftShape == ECS_BeveledCorner) { @@ -153,16 +153,16 @@ public final function DrawShapedBox(float X, float Y, float W, float H, float Ed } Canvas.SetPos(BoxX, Y); DrawBoxTexture(BoxW, Edge); - + DrawCorner(X + W, Y, Edge, ECP_TopRight, TopRightShape); - + // Mid Line Canvas.SetPos(X, Y + Edge); DrawBoxTexture(W, H - Edge * 2); - + // Bottom Line DrawCorner(X, Y + H, Edge, ECP_BottomLeft, BottomLeftShape); - + BoxX = X; BoxW = W; if (BottomLeftShape == ECS_BeveledCorner) { @@ -175,7 +175,7 @@ public final function DrawShapedBox(float X, float Y, float W, float H, float Ed } Canvas.SetPos(BoxX, Y + H - Edge); DrawBoxTexture(BoxW, Edge); - + DrawCorner(X + W, Y + H, Edge, ECP_BottomRight, BottomRightShape); } diff --git a/README.md b/README.md index b80ffdb..fe7ec04 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ **2D box drawing library** -# Add to your project +## Add to your project There are two ways to add BoxPainterLib to your project: ### 1. As [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) Open git-bash and go to your project: `cd ` @@ -19,32 +19,32 @@ Commit the changes: `git add BoxPainterLib && git commit -m 'update box painter ### 2. As standalone sources Create a `BoxPainterLib` folder and put [this repo](https://github.com/GenZmeY/KF2-BoxPainterLib) there. -# Using +## Using 1. Create `BoxPainter` object: `BoxPainter = new class'BoxPainterLib.BoxPainter';` 2. Initialize the canvas: `BoxPainter.Canvas = ;` 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. -# Available Functions -#### DrawShapedBox(float X, float Y, float W, float H, float Edge, byte TopLeftShape, byte TopRightShape, byte BottomLeftShape, byte BottomRightShape) +## Available Functions +### DrawShapedBox(float X, float Y, float W, float H, float Edge, byte TopLeftShape, byte TopRightShape, byte BottomLeftShape, byte BottomRightShape) 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 -#### DrawBox(float X, float Y, float Width, float Height, float Edge, optional byte Shape = 0) +### DrawBox(float X, float Y, float Width, float Height, float Edge, optional byte Shape = 0) Draws a box using the shape code: -![](rect_shapes.png) +![codes_table](rect_shapes.png) -# Build +## Build 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 -# Examples +## Examples [KF2-YetAnotherScoreboard](https://github.com/GenZmeY/KF2-YetAnotherScoreboard) -# License -[GNU LGPLv3](LICENSE) +## License +[![license](https://www.gnu.org/graphics/lgplv3-with-text-154x68.png)](LICENSE)