.github/FUNDING.yml --- YAML
1 ko_fi: critical_impact
2
.github/ISSUE_TEMPLATE/bug_report.md --- Text
1 ---
2 name: Bug report
3 about: Create a report to help us improve
4 title: ''
5 labels: bug
6 assignees: Critical-Impact
7
8 ---
9
10 **Describe the bug**
11 A clear and concise description of what the bug is.
12
13 **To Reproduce**
14 Steps to reproduce the behavior:
15 1. Go to '...'
16 2. Click on '....'
17 3. Scroll down to '....'
18 4. See error
19
20 **Expected behavior**
21 A clear and concise description of what you expected to happen.
22
23 **Screenshots**
24 If applicable, add screenshots to help explain your problem.
25
26 **Dalamud Information:**
27 Do you have testing enabled?
28
29 **Additional context**
30 Add any other context about the problem here.
31
.github/ISSUE_TEMPLATE/feature_request.md --- Text
1 ---
2 name: Feature request
3 about: Suggest an idea for this project
4 title: ''
5 labels: ''
6 assignees: ''
7
8 ---
9
10 **Is your feature request related to a problem? Please describe.**
11 A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
13 **Describe the solution you'd like**
14 A clear and concise description of what you want to happen.
15
16 **Describe alternatives you've considered**
17 A clear and concise description of any alternative solutions or features you've considered.
18
19 **Additional context**
20 Add any other context or screenshots about the feature request here.
21
.github/workflows/build.yml --- YAML
1 name: Build
2
3 on:
4 workflow_dispatch:
5 push:
6 branches:
7 - main
8
9 env:
10 INTERNAL_NAME: AllaganTetris
11 CONFIGURATION: Release
12 DOTNET_CLI_TELEMETRY_OPTOUT: true
13
14 jobs:
15 build:
16 runs-on: windows-2022
17 steps:
18 - name: Checkout
19 uses: actions/checkout@v4
20 with:
21 submodules: recursive
22 - name: Setup MSBuild
23 uses: microsoft/[email protected]
24 - name: Download Dalamud
25 run: |
26 Invoke-WebRequest -Uri https://goatcorp.github.io/dalamud-distrib/latest.zip -OutFile latest.zip
27 Expand-Archive -Force latest.zip "$env:AppData\XIVLauncher\addon\Hooks\dev\"
28 - name: Restore
29 run: dotnet restore AllaganTetris
30 - name: Build
31 run: dotnet build -c ${{ env.CONFIGURATION }} --no-restore ${{ env.INTERNAL_NAME }}
32 - name: Push artifacts
33 uses: actions/upload-artifact@v4
34 with:
35 name: dist
36 path: |
37 AllaganTetris\bin\Release\AllaganTetris
38
.github/workflows/pr.yml --- YAML
1 name: Create D17 PR
2
3 on:
4 push:
5 tags:
6 - '*'
7
8 env:
9 INTERNAL_NAME: AllaganTetris
10 PLUGIN_NAME: Allagan Tetris
11 UPDATE_NAME: tetris
12
13 jobs:
14 update-repo:
15 runs-on: ubuntu-latest
16 steps:
17 - name: Checkout this repo
18 uses: actions/checkout@v4
19
20 - name: Extract version and changelog
21 id: changelog
22 run: |
23 VERSION=$(grep -m1 -oP '(?<=## \[)[0-9]+\.[0-9]+\.[0-9]+' ${{ env.INTERNAL_NAME }}/CHANGELOG.md)
24 echo "version=1.$VERSION" >> $GITHUB_OUTPUT
25 CHANGELOG=$(awk -v ver=$VERSION '/^#+ \[/ { if (p) { exit }; if ($2 == "["ver"]") { p=1; next} } p && NF' ${{ env.INTERNAL_NAME }}/CHANGELOG.md)
26 echo "log<<EOF" >> $GITHUB_OUTPUT
27 echo "$CHANGELOG" >> $GITHUB_OUTPUT
28 echo "EOF" >> $GITHUB_OUTPUT
29
30 - name: Checkout fork of external repo
31 uses: actions/checkout@v4
32 with:
33 repository: Critical-Impact/DalamudPluginsD17
34 fetch-depth: '1'
35 path: external
36 token: ${{ secrets.PR_PAT }}
37
38 - name: Configure git and create branch
39 run: |
40 cd external
41 git remote add goatcorp https://github.com/goatcorp/DalamudPluginsD17.git
42 git fetch goatcorp
43 git checkout -b ${{ env.UPDATE_NAME }}-${{ steps.changelog.outputs.version }} goatcorp/main
44
45 - name: Configure git author
46 run: |
47 cd external
48 git config user.name "${GITHUB_ACTOR}"
49 git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
50
51 - name: Update manifest.toml
52 run: |
53 cd external
54 pip install toml
55 python - <<EOF
56 import toml
57 from pathlib import Path
58
59 manifest_path = Path("stable/${{ env.INTERNAL_NAME }}/manifest.toml")
60 data = toml.load(manifest_path)
61
62 # Update commit and changelog
63 data["plugin"]["commit"] = "${GITHUB_SHA}"
64 data["plugin"]["version"] = "${{ steps.changelog.outputs.version }}"
65 data["plugin"]["changelog"] = """${{ steps.changelog.outputs.log }}"""
66
67 with manifest_path.open("w") as f:
68 toml.dump(data, f)
69 EOF
70 git add stable/${{ env.INTERNAL_NAME }}/manifest.toml
71 git commit -m "${{ env.PLUGIN_NAME }} ${{ steps.changelog.outputs.version }}"
72
73 - name: Push branch to fork
74 run: |
75 cd external
76 git push origin -f HEAD:${{ env.UPDATE_NAME }}-${{ steps.changelog.outputs.version }}
77
AllaganTetris/Addon/NextBlockNode.cs --- C#
84 84 Position
= new Vector2(xPos , yPos),
85 85 Size
= new Vector2(blockSize, blockSize),
86 86 IsVisible
= true,
.. 87 FitTexture = true
87 88 };
88 89
89 90 pieceNodes[x,y].LoadTexture(blockTexture);
AllaganTetris/Addon/TetrisAddon.cs --- 1/4 --- C#
19 19
20 20 public class TetrisAddon : NativeAddon
21 21 {
.. 22 private readonly ITextureProvider textureProvider;
.. 23 private readonly IDalamudPluginInterface pluginInterface;
22 24 private readonly IFramework framework;
23 25 private readonly IKeyState keyState;
24 26 private readonly Game.Factory gameFactory;
AllaganTetris/Addon/TetrisAddon.cs --- 2/4 --- C#
28 30 private const float UnitSize
= 65.0f;
29 31 private const float FramePadding
= 8.0f;
30 32 private const float UnitPadding
= 10.0f;
31 33 private readonly IDalamudTextureWrap texture;
32 34 private readonly ISharedImmediateTexture sharedImmediateTexture;
33 35
34 36 public Game? Game;
35 37 private int timerCounter;
AllaganTetris/Addon/TetrisAddon.cs --- 3/4 --- C#
54 InternalName
= "Allagan Tetris";
56 InternalName
= "Allagan Tetris";
55 Title
= "Allagan Tetris";
57 Title
= "Allagan Tetris";
56 Size
= new(520,740);
58 Size
= new(520,740);
.. 59 this.textureProvider = textureProvider;
.. 60 this.pluginInterface = pluginInterface;
57 this.framework
= framework;
61 this.framework
= framework;
58 this.keyState
= keyState;
62 this.keyState
= keyState;
59 this.gameFactory
= gameFactory;
63 this.gameFactory
= gameFactory;
60 gameSpeed
= 800;
64 gameSpeed
= 800;
61 var assemblyLocation = pluginInterface.AssemblyLocation.DirectoryName!; ..
62 var imagePath = Path.Combine(assemblyLocation,"Images", "block.png"); ..
63 sharedImmediateTexture = textureProvider.GetFromFile(imagePath); ..
64 texture = sharedImmediateTexture.RentAsync().Result; ..
65 this.framework.Update
+= FrameworkOnUpdate;
65 this.framework.Update
+= FrameworkOnUpdate;
66 }
66 }
67 67
AllaganTetris/Addon/TetrisAddon.cs --- 4/4 --- C#
248 248
249 249 protected override unsafe void OnSetup(
AtkUnitBase* addon)
250 250 {
... 251 var assemblyLocation = pluginInterface.AssemblyLocation.DirectoryName!;
... 252 var imagePath = Path.Combine(assemblyLocation,"Images", "block.png");
... 253 sharedImmediateTexture = textureProvider.GetFromFile(imagePath);
... 254 texture = sharedImmediateTexture.RentAsync().Result;
... 255
251 256 var xPos
= FramePadding;
252 257 var yPos
= UnitSize
- FramePadding;
AllaganTetris/AllaganTetris.csproj --- XML
13
14 <
ItemGroup>
15 <
Content Include
="AllaganTetris.json" />
16 <Content Include="CHANGELOG.md" />
17 <
Content Include
="Images\block.png">
18 <
CopyToOutputDirectory>Always</
CopyToOutputDirectory>
19 </
Content>
AllaganTetris/CHANGELOG.md --- Text
1 # Changelog
2
3 All notable changes to this project will be documented in this file.
4
5 The log versioning the plugin versioning will not match as 1.0.0.0 technically does not match semantic versioning but the headache of trying to change this would be too much.
6 Instead the changelog reader and automation surrounding plugin PRs will add the 1. back in
7
8 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
9 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.html).
10
11 ## [2.0.1] - 2026-01-02
12
13 ### Fixed
14 - Fixed issue when closing and reopening game
15 - Fixed issue with next piece box not showing correctly
16
17 ## [2.0.0] - 2025-12-22
18
19 ### Fixed
20 - Support for 7.4
21
KamiToolKit --- Text
1 Subproject commit 9101fc8a8e861345fe0740e7791cdb06e8764f3e 1 Subproject commit cdb89461ee8945c2ed276c6961d6fb4ee8ccb480