From 0465a6d46ffe036f8d71a0329f01ec522d0900d7 Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Thu, 8 Jan 2026 09:21:10 -0300 Subject: [PATCH 01/11] Create Android.yml --- .github/workflows/Android.yml | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/Android.yml diff --git a/.github/workflows/Android.yml b/.github/workflows/Android.yml new file mode 100644 index 00000000..c4a97ebe --- /dev/null +++ b/.github/workflows/Android.yml @@ -0,0 +1,63 @@ +name: Psych Engine Android 12 + +on: + push: + branches: [ main ] + workflow_dispatch: + +jobs: + android: + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v4 + + - name: Java 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + + - name: Haxe 4.3.5 + uses: krdlab/setup-haxe@v1 + with: + haxe-version: 4.3.5 + + - name: Haxelib + run: | + haxelib setup ~/haxelib + haxelib install lime + haxelib install openfl + haxelib install flixel + haxelib install flixel-addons + haxelib install flixel-ui + haxelib install hscript + haxelib install newgrounds + haxelib install actuate + haxelib install hxCodec + haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc.git + haxelib git extension-webm https://github.com/KadeDev/extension-webm.git + haxelib run lime setup -y + haxelib run openfl setup -y + + - name: Android SDK + uses: android-actions/setup-android@v3 + + - name: Android 12 SDK + NDK + run: | + yes | sdkmanager --licenses + sdkmanager "platforms;android-31" \ + "build-tools;31.0.0" \ + "ndk;23.2.8568313" + + - name: Build APK (Android 12) + run: | + export ANDROID_SDK_ROOT=$ANDROID_HOME + export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk/23.2.8568313 + lime build android -debug + + - name: Upload APK + uses: actions/upload-artifact@v4 + with: + name: PsychEngine-Android12 + path: export/android/bin/app/build/outputs/apk/debug/*.apk From a53a91077c893e11d10c7c982b7ca6806044df5c Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Thu, 8 Jan 2026 14:56:34 -0300 Subject: [PATCH 02/11] Delete example_mods directory --- example_mods/modTemplate.zip | Bin 19934 -> 0 bytes example_mods/readme.txt | 13 ------------- 2 files changed, 13 deletions(-) delete mode 100644 example_mods/modTemplate.zip delete mode 100644 example_mods/readme.txt diff --git a/example_mods/modTemplate.zip b/example_mods/modTemplate.zip deleted file mode 100644 index 21ef6c956e5439e96ca1b08b8ba072063b659645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19934 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

GNk|Vq#q#9n)%wTgr-xF$2GQ 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 Date: Thu, 8 Jan 2026 14:57:08 -0300 Subject: [PATCH 03/11] Delete assets/base_game/shared/weeks directory --- assets/base_game/shared/weeks/tutorial.json | 20 --------- assets/base_game/shared/weeks/week1.json | 22 ---------- assets/base_game/shared/weeks/week2.json | 22 ---------- assets/base_game/shared/weeks/week3.json | 22 ---------- assets/base_game/shared/weeks/week4.json | 22 ---------- assets/base_game/shared/weeks/week5.json | 22 ---------- assets/base_game/shared/weeks/week6.json | 22 ---------- assets/base_game/shared/weeks/week7.json | 48 --------------------- assets/base_game/shared/weeks/weekend1.json | 24 ----------- 9 files changed, 224 deletions(-) delete mode 100644 assets/base_game/shared/weeks/tutorial.json delete mode 100644 assets/base_game/shared/weeks/week1.json delete mode 100644 assets/base_game/shared/weeks/week2.json delete mode 100644 assets/base_game/shared/weeks/week3.json delete mode 100644 assets/base_game/shared/weeks/week4.json delete mode 100644 assets/base_game/shared/weeks/week5.json delete mode 100644 assets/base_game/shared/weeks/week6.json delete mode 100644 assets/base_game/shared/weeks/week7.json delete mode 100644 assets/base_game/shared/weeks/weekend1.json diff --git a/assets/base_game/shared/weeks/tutorial.json b/assets/base_game/shared/weeks/tutorial.json deleted file mode 100644 index 6ac6083f..00000000 --- a/assets/base_game/shared/weeks/tutorial.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "songs": [ - ["Tutorial", "gf", [165, 0, 77]] - ], - - "weekCharacters": [ - "", - "bf", - "gf" - ], - "weekBackground": "stage", - - "storyName": "", - "weekBefore": "tutorial", - "weekName": "Tutorial", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false -} diff --git a/assets/base_game/shared/weeks/week1.json b/assets/base_game/shared/weeks/week1.json deleted file mode 100644 index 1ff2b009..00000000 --- a/assets/base_game/shared/weeks/week1.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "songs": [ - ["Bopeebo", "dad", [146, 113, 253]], - ["Fresh", "dad", [146, 113, 253]], - ["Dad Battle", "dad", [146, 113, 253]] - ], - - "weekCharacters": [ - "dad", - "bf", - "gf" - ], - "weekBackground": "stage", - - "storyName": "Daddy Dearest", - "weekBefore": "tutorial", - "weekName": "Week 1", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false -} \ No newline at end of file diff --git a/assets/base_game/shared/weeks/week2.json b/assets/base_game/shared/weeks/week2.json deleted file mode 100644 index 54f06390..00000000 --- a/assets/base_game/shared/weeks/week2.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "songs": [ - ["Spookeez", "spooky", [34, 51, 68]], - ["South", "spooky", [34, 51, 68]], - ["Monster", "monster", [34, 51, 68]] - ], - - "weekCharacters": [ - "spooky", - "bf", - "gf" - ], - "weekBackground": "halloween", - - "storyName": "Spooky Month", - "weekBefore": "week1", - "weekName": "Week 2", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false -} \ No newline at end of file diff --git a/assets/base_game/shared/weeks/week3.json b/assets/base_game/shared/weeks/week3.json deleted file mode 100644 index 3a86b4c3..00000000 --- a/assets/base_game/shared/weeks/week3.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "songs": [ - ["Pico", "pico", [148, 22, 83]], - ["Philly Nice", "pico", [148, 22, 83]], - ["Blammed", "pico", [148, 22, 83]] - ], - - "weekCharacters": [ - "pico", - "bf", - "gf" - ], - "weekBackground": "philly", - - "storyName": "PICO", - "weekBefore": "week2", - "weekName": "Week 3", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false -} \ No newline at end of file diff --git a/assets/base_game/shared/weeks/week4.json b/assets/base_game/shared/weeks/week4.json deleted file mode 100644 index c7198563..00000000 --- a/assets/base_game/shared/weeks/week4.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "songs": [ - ["Satin Panties", "mom", [252, 150, 215]], - ["High", "mom", [252, 150, 215]], - ["Milf", "mom", [252, 150, 215]] - ], - - "weekCharacters": [ - "mom", - "bf", - "gf" - ], - "weekBackground": "limo", - - "storyName": "MOMMY MUST MURDER", - "weekBefore": "week3", - "weekName": "Week 4", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false -} \ No newline at end of file diff --git a/assets/base_game/shared/weeks/week5.json b/assets/base_game/shared/weeks/week5.json deleted file mode 100644 index 6d4102f7..00000000 --- a/assets/base_game/shared/weeks/week5.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "songs": [ - ["Cocoa", "parents", [160, 209, 255]], - ["Eggnog", "parents", [160, 209, 255]], - ["Winter Horrorland", "monster", [160, 209, 255]] - ], - - "weekCharacters": [ - "parents-christmas", - "bf", - "gf" - ], - "weekBackground": "christmas", - - "storyName": "RED SNOW", - "weekBefore": "week4", - "weekName": "Week 5", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false -} \ No newline at end of file diff --git a/assets/base_game/shared/weeks/week6.json b/assets/base_game/shared/weeks/week6.json deleted file mode 100644 index 95c735d6..00000000 --- a/assets/base_game/shared/weeks/week6.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "songs": [ - ["Senpai", "senpai-pixel", [255, 120, 191]], - ["Roses", "senpai-pixel", [255, 120, 191]], - ["Thorns", "spirit-pixel", [255, 120, 191]] - ], - - "weekCharacters": [ - "senpai", - "bf", - "gf" - ], - "weekBackground": "school", - - "storyName": "hating simulator ft. moawling", - "weekBefore": "week5", - "weekName": "Week 6", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false -} \ No newline at end of file diff --git a/assets/base_game/shared/weeks/week7.json b/assets/base_game/shared/weeks/week7.json deleted file mode 100644 index c0f69205..00000000 --- a/assets/base_game/shared/weeks/week7.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "songs": [ - [ - "Ugh", - "tankman", - [ - 246, - 182, - 4 - ] - ], - [ - "Guns", - "tankman", - [ - 246, - 182, - 4 - ] - ], - [ - "Stress", - "tankman", - [ - 246, - 182, - 4 - ] - ] - ], - "hideFreeplay": false, - "weekBackground": "tank", - "weekCharacters": [ - "tankman", - "bf", - "gf" - ], - "storyName": "Tankman", - "weekName": "Week 7", - "freeplayColor": [ - 146, - 113, - 253 - ], - "hideStoryMode": false, - "weekBefore": "week6", - "startUnlocked": true -} \ No newline at end of file diff --git a/assets/base_game/shared/weeks/weekend1.json b/assets/base_game/shared/weeks/weekend1.json deleted file mode 100644 index 856d66e8..00000000 --- a/assets/base_game/shared/weeks/weekend1.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "songs": [ - ["Darnell", "darnell", [65, 60, 174]], - ["Lit Up", "darnell", [65, 60, 174]], - ["2Hot", "darnell", [65, 60, 174]], - ["Blazin", "darnell", [65, 60, 174]] - ], - - "weekCharacters": [ - "darnell", - "pico-player", - "nene" - ], - "weekBackground": "phillystreets", - - "storyName": "Due Debts", - "weekBefore": "", - "weekName": "Weekend 1", - "startUnlocked": true, - - "hideStoryMode": false, - "hideFreeplay": false, - "difficulties": "Easy, Normal, Hard" -} \ No newline at end of file From 37236edc5fd9e45c0194195f92ba4dfe970d8e4f Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Fri, 9 Jan 2026 22:22:22 -0300 Subject: [PATCH 04/11] Add VideoRenderState class for frame rendering --- source/render/VideoRenderState.hx | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 source/render/VideoRenderState.hx diff --git a/source/render/VideoRenderState.hx b/source/render/VideoRenderState.hx new file mode 100644 index 00000000..c3c5f9b7 --- /dev/null +++ b/source/render/VideoRenderState.hx @@ -0,0 +1,67 @@ +package render; + +import flixel.FlxG; +import flixel.FlxState; +import openfl.display.BitmapData; +import openfl.display.PNGEncoderOptions; +import sys.io.File; +import sys.FileSystem; +import openfl.utils.ByteArray; + +class VideoRenderState extends FlxState +{ + public static var enabled:Bool = false; + public static var fps:Int = 60; + public static var frameCount:Int = 0; + + override public function create() + { + super.create(); + + if (enabled) + { + FlxG.updateFramerate = fps; + FlxG.drawFramerate = fps; + + if (!FileSystem.exists("gameRenders")) + FileSystem.createDirectory("gameRenders"); + } + } + + override public function draw() + { + super.draw(); + + if (enabled) + { + saveFrame(); + } + } + + static function saveFrame() + { + var bmp:BitmapData = new BitmapData( + FlxG.width, + FlxG.height, + false, + 0xFF000000 + ); + + bmp.draw(FlxG.stage); + + var bytes:ByteArray = bmp.encode( + bmp.rect, + new PNGEncoderOptions() + ); + + var name:String = StringTools.lpad( + Std.string(frameCount), + "0", + 6 + ); + + File.saveBytes("gameRenders/frame_" + name + ".png", bytes); + frameCount++; + bmp.dispose(); + } +} From 14c2bbba7e0d3f2b25511862b1e067d27a3bddd5 Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Sat, 10 Jan 2026 11:16:41 -0300 Subject: [PATCH 05/11] Refactor Android.yml for Psych Engine 1.0.4 build Updated Android workflow for building Psych Engine 1.0.4 APK with new dependencies and configurations. --- .github/workflows/Android.yml | 128 ++++++++++++++++++++++++++++------ 1 file changed, 105 insertions(+), 23 deletions(-) diff --git a/.github/workflows/Android.yml b/.github/workflows/Android.yml index c4a97ebe..90851cfd 100644 --- a/.github/workflows/Android.yml +++ b/.github/workflows/Android.yml @@ -24,29 +24,111 @@ jobs: haxe-version: 4.3.5 - name: Haxelib - run: | - haxelib setup ~/haxelib - haxelib install lime - haxelib install openfl - haxelib install flixel - haxelib install flixel-addons - haxelib install flixel-ui - haxelib install hscript - haxelib install newgrounds - haxelib install actuate - haxelib install hxCodec - haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc.git - haxelib git extension-webm https://github.com/KadeDev/extension-webm.git - haxelib run lime setup -y - haxelib run openfl setup -y - - - name: Android SDK - uses: android-actions/setup-android@v3 - - - name: Android 12 SDK + NDK - run: | - yes | sdkmanager --licenses - sdkmanager "platforms;android-31" \ +name: Build Psych Engine 1.0.4 Android APK + +on: + push: + branches: [ 1.0.4 ] + workflow_dispatch: # permite rodar manual + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: 1.0.4 + fetch-depth: 0 + + - name: Install Haxe 4.3.2 + uses: funkincrew/ci-haxe@v3.1.0 + with: + haxe-version: 4.3.2 + + - name: Setup Haxelib + run: | + mkdir ~/haxelib + haxelib setup ~/haxelib + + - name: Install System Dependencies + run: | + sudo apt update + sudo apt install -y clang build-essential libc6-dev g++ make libssl-dev git cmake pkg-config libboost-all-dev libstdc++6 libc++-dev libc++abi-dev + + - name: Install Haxe Libs (Psych 1.0.4) + run: | + haxelib install hxcpp 4.3.2 + haxelib set hxcpp 4.3.2 + haxelib install lime openfl flixel flixel-addons flixel-ui hscript newgrounds hxCodec Brewscript + haxelib run lime setup flixel + haxelib install flixel-tools + haxelib run flixel-tools setup + # Git libs exatas pro 1.0.4 + haxelib git polymod https://github.com/larsiusprime/polymod.git + haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc + haxelib git flixel-addons https://github.com/HaxeFlixel/flixel-addons + haxelib git linc_luajit https://github.com/superpowers04/linc_luajit + haxelib git hxCodec https://github.com/polybiusproxy/hxCodec.git + haxelib git flxanimate https://github.com/ShadowMario/flxanimate dev + haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e + haxelib git linc_luajit https://github.com/superpowers04/linc_luajit.git + haxelib git funkin.vis https://github.com/FunkinCrew/funkVis 22b1ce089dd924f15cdc4632397ef3504d464e90 + haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 + # Sets exatos + haxelib set flixel 5.6.1 + haxelib set flixel-addons 3.2.2 + haxelib set flixel-tools 1.5.1 + haxelib set hxvlc 2.0.1 + haxelib set lime 8.1.2 + haxelib set openfl 9.3.3 + haxelib set tjson 1.4.0 + haxelib set hxdiscord_rpc 1.2.4 + haxelib set hxcpp-debug-server 1.2.4 + + - name: Run Psych Setup + run: bash setup/unix.sh + + - name: Setup JDK 11 + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: 11 + + - name: Setup Android SDK/NDK (compatível com Psych) + uses: android-actions/setup-android@v3 + with: + api-level: 31 + ndk-version: r21e # Essencial pro hxcpp 4.3.2! + components: build-tools-31.0.0 + + - name: Configure Android Paths + run: | + mkdir -p $HOME/.android + echo 'sdk.dir=$ANDROID_SDK_ROOT' > $HOME/.android/repositories.cfg + echo 'ndk.dir=$ANDROID_NDK_ROOT' >> $HOME/.android/repositories.cfg + export ANDROID_HOME=$ANDROID_SDK_ROOT + export ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT + export JAVA_HOME=$JAVA_HOME + export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_NDK_ROOT + + - name: Lime Setup Android + run: | + haxelib run lime setup android -- --ANDROID_SDK=$ANDROID_SDK_ROOT --ANDROID_NDK_DIR=$ANDROID_NDK_ROOT --JAVA_HOME=$JAVA_HOME + haxelib run lime config ANDROID_SETUP true + + - name: Build APK Release + run: | + haxelib run lime build android -release + + - name: Upload APK Artifact + uses: actions/upload-artifact@v4 + with: + name: psych-engine-1.0.4-apk + path: export/android/bin/*.apk + retention-days: 30 + sdkmanager "platforms;android-31" \ "build-tools;31.0.0" \ "ndk;23.2.8568313" From 3d0d6319c411d3ac9520d9b1d8ec885fcab911a4 Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Sat, 10 Jan 2026 11:17:50 -0300 Subject: [PATCH 06/11] Add GitHub Actions workflow for building Android APK This workflow builds the Psych Engine 1.0.4 Android APK, installs necessary dependencies, and uploads the APK as an artifact. --- .github/workflows/APK.yml | 104 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 .github/workflows/APK.yml diff --git a/.github/workflows/APK.yml b/.github/workflows/APK.yml new file mode 100644 index 00000000..8503d3b3 --- /dev/null +++ b/.github/workflows/APK.yml @@ -0,0 +1,104 @@ +name: Build Psych Engine 1.0.4 Android APK + +on: + push: + branches: [ 1.0.4 ] + workflow_dispatch: # permite rodar manual + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: 1.0.4 + fetch-depth: 0 + + - name: Install Haxe 4.3.2 + uses: funkincrew/ci-haxe@v3.1.0 + with: + haxe-version: 4.3.2 + + - name: Setup Haxelib + run: | + mkdir ~/haxelib + haxelib setup ~/haxelib + + - name: Install System Dependencies + run: | + sudo apt update + sudo apt install -y clang build-essential libc6-dev g++ make libssl-dev git cmake pkg-config libboost-all-dev libstdc++6 libc++-dev libc++abi-dev + + - name: Install Haxe Libs (Psych 1.0.4) + run: | + haxelib install hxcpp 4.3.2 + haxelib set hxcpp 4.3.2 + haxelib install lime openfl flixel flixel-addons flixel-ui hscript newgrounds hxCodec Brewscript + haxelib run lime setup flixel + haxelib install flixel-tools + haxelib run flixel-tools setup + # Git libs exatas pro 1.0.4 + haxelib git polymod https://github.com/larsiusprime/polymod.git + haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc + haxelib git flixel-addons https://github.com/HaxeFlixel/flixel-addons + haxelib git linc_luajit https://github.com/superpowers04/linc_luajit + haxelib git hxCodec https://github.com/polybiusproxy/hxCodec.git + haxelib git flxanimate https://github.com/ShadowMario/flxanimate dev + haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e + haxelib git linc_luajit https://github.com/superpowers04/linc_luajit.git + haxelib git funkin.vis https://github.com/FunkinCrew/funkVis 22b1ce089dd924f15cdc4632397ef3504d464e90 + haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 + # Sets exatos + haxelib set flixel 5.6.1 + haxelib set flixel-addons 3.2.2 + haxelib set flixel-tools 1.5.1 + haxelib set hxvlc 2.0.1 + haxelib set lime 8.1.2 + haxelib set openfl 9.3.3 + haxelib set tjson 1.4.0 + haxelib set hxdiscord_rpc 1.2.4 + haxelib set hxcpp-debug-server 1.2.4 + + - name: Run Psych Setup + run: bash setup/unix.sh + + - name: Setup JDK 11 + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: 11 + + - name: Setup Android SDK/NDK (compatível com Psych) + uses: android-actions/setup-android@v3 + with: + api-level: 31 + ndk-version: r21e # Essencial pro hxcpp 4.3.2! + components: build-tools-31.0.0 + + - name: Configure Android Paths + run: | + mkdir -p $HOME/.android + echo 'sdk.dir=$ANDROID_SDK_ROOT' > $HOME/.android/repositories.cfg + echo 'ndk.dir=$ANDROID_NDK_ROOT' >> $HOME/.android/repositories.cfg + export ANDROID_HOME=$ANDROID_SDK_ROOT + export ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT + export JAVA_HOME=$JAVA_HOME + export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_NDK_ROOT + + - name: Lime Setup Android + run: | + haxelib run lime setup android -- --ANDROID_SDK=$ANDROID_SDK_ROOT --ANDROID_NDK_DIR=$ANDROID_NDK_ROOT --JAVA_HOME=$JAVA_HOME + haxelib run lime config ANDROID_SETUP true + + - name: Build APK Release + run: | + haxelib run lime build android -release + + - name: Upload APK Artifact + uses: actions/upload-artifact@v4 + with: + name: psych-engine-1.0.4-apk + path: export/android/bin/*.apk + retention-days: 30 From e08b3d18f66c78962e407b5c0f7e880e97eb5918 Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Sat, 10 Jan 2026 11:19:47 -0300 Subject: [PATCH 07/11] Change trigger branch for APK build workflow --- .github/workflows/APK.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/APK.yml b/.github/workflows/APK.yml index 8503d3b3..7200ee26 100644 --- a/.github/workflows/APK.yml +++ b/.github/workflows/APK.yml @@ -2,7 +2,7 @@ name: Build Psych Engine 1.0.4 Android APK on: push: - branches: [ 1.0.4 ] + branches: [ main ] workflow_dispatch: # permite rodar manual jobs: From f8ad44889167ca56654bf0874def773e8bbd545d Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Sat, 10 Jan 2026 11:21:21 -0300 Subject: [PATCH 08/11] Add 'experimental' branch to APK build workflow --- .github/workflows/APK.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/APK.yml b/.github/workflows/APK.yml index 7200ee26..dfb8e3ae 100644 --- a/.github/workflows/APK.yml +++ b/.github/workflows/APK.yml @@ -2,7 +2,7 @@ name: Build Psych Engine 1.0.4 Android APK on: push: - branches: [ main ] + branches: [ main, experimental ] workflow_dispatch: # permite rodar manual jobs: From c68cdbaf778ce9e8b987f15dd3ab9656310d7c4c Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Sat, 10 Jan 2026 11:22:43 -0300 Subject: [PATCH 09/11] Update checkout reference to main branch --- .github/workflows/APK.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/APK.yml b/.github/workflows/APK.yml index dfb8e3ae..57ef87a7 100644 --- a/.github/workflows/APK.yml +++ b/.github/workflows/APK.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: - ref: 1.0.4 + ref: main fetch-depth: 0 - name: Install Haxe 4.3.2 From b35d4696ecd345666025d1ac1dc583ef5eea8deb Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Sat, 10 Jan 2026 16:01:07 -0300 Subject: [PATCH 10/11] Refactor APK workflow for mobile releases --- .github/workflows/APK.yml | 159 ++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 94 deletions(-) diff --git a/.github/workflows/APK.yml b/.github/workflows/APK.yml index 57ef87a7..932f63cb 100644 --- a/.github/workflows/APK.yml +++ b/.github/workflows/APK.yml @@ -1,104 +1,75 @@ -name: Build Psych Engine 1.0.4 Android APK +name: Mobile Release on: - push: - branches: [ main, experimental ] - workflow_dispatch: # permite rodar manual + workflow_dispatch: + inputs: + tag_name: + description: "Release tag (e.g. `v0.0.3 or bugfix`)" + required: true + prerelease: + description: 'Mark as a pre-release? (true/false)' + default: 'false' + required: false + +permissions: + contents: write + +env: + TAG_NAME: ${{ github.event.inputs.tag_name }} jobs: - build: + create-nightly-tag: runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: main - fetch-depth: 0 - - - name: Install Haxe 4.3.2 - uses: funkincrew/ci-haxe@v3.1.0 - with: - haxe-version: 4.3.2 - - - name: Setup Haxelib - run: | - mkdir ~/haxelib - haxelib setup ~/haxelib - - - name: Install System Dependencies - run: | - sudo apt update - sudo apt install -y clang build-essential libc6-dev g++ make libssl-dev git cmake pkg-config libboost-all-dev libstdc++6 libc++-dev libc++abi-dev - - - name: Install Haxe Libs (Psych 1.0.4) - run: | - haxelib install hxcpp 4.3.2 - haxelib set hxcpp 4.3.2 - haxelib install lime openfl flixel flixel-addons flixel-ui hscript newgrounds hxCodec Brewscript - haxelib run lime setup flixel - haxelib install flixel-tools - haxelib run flixel-tools setup - # Git libs exatas pro 1.0.4 - haxelib git polymod https://github.com/larsiusprime/polymod.git - haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc - haxelib git flixel-addons https://github.com/HaxeFlixel/flixel-addons - haxelib git linc_luajit https://github.com/superpowers04/linc_luajit - haxelib git hxCodec https://github.com/polybiusproxy/hxCodec.git - haxelib git flxanimate https://github.com/ShadowMario/flxanimate dev - haxelib git flxanimate https://github.com/Dot-Stuff/flxanimate 768740a56b26aa0c072720e0d1236b94afe68e3e - haxelib git linc_luajit https://github.com/superpowers04/linc_luajit.git - haxelib git funkin.vis https://github.com/FunkinCrew/funkVis 22b1ce089dd924f15cdc4632397ef3504d464e90 - haxelib git grig.audio https://gitlab.com/haxe-grig/grig.audio.git cbf91e2180fd2e374924fe74844086aab7891666 - # Sets exatos - haxelib set flixel 5.6.1 - haxelib set flixel-addons 3.2.2 - haxelib set flixel-tools 1.5.1 - haxelib set hxvlc 2.0.1 - haxelib set lime 8.1.2 - haxelib set openfl 9.3.3 - haxelib set tjson 1.4.0 - haxelib set hxdiscord_rpc 1.2.4 - haxelib set hxcpp-debug-server 1.2.4 + - name: Checkout repo + uses: actions/checkout@v4 - - name: Run Psych Setup - run: bash setup/unix.sh + - name: Create and push tag + run: | + git config --global user.name "${{ github.actor }}" + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + git tag ${{ env.TAG_NAME }} + git push origin ${{ env.TAG_NAME }} - - name: Setup JDK 11 - uses: actions/setup-java@v4 - with: - distribution: zulu - java-version: 11 - - - name: Setup Android SDK/NDK (compatível com Psych) - uses: android-actions/setup-android@v3 - with: - api-level: 31 - ndk-version: r21e # Essencial pro hxcpp 4.3.2! - components: build-tools-31.0.0 - - - name: Configure Android Paths - run: | - mkdir -p $HOME/.android - echo 'sdk.dir=$ANDROID_SDK_ROOT' > $HOME/.android/repositories.cfg - echo 'ndk.dir=$ANDROID_NDK_ROOT' >> $HOME/.android/repositories.cfg - export ANDROID_HOME=$ANDROID_SDK_ROOT - export ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT - export JAVA_HOME=$JAVA_HOME - export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_NDK_ROOT - - - name: Lime Setup Android - run: | - haxelib run lime setup android -- --ANDROID_SDK=$ANDROID_SDK_ROOT --ANDROID_NDK_DIR=$ANDROID_NDK_ROOT --JAVA_HOME=$JAVA_HOME - haxelib run lime config ANDROID_SETUP true + build: + name: Build + needs: create-nightly-tag + uses: ./.github/workflows/mobile.yml + with: + buildFlags: officialBuild - - name: Build APK Release - run: | - haxelib run lime build android -release + release-android: + name: Release Android Build + needs: [build] + runs-on: ubuntu-latest + steps: + - name: Download Android artifact + uses: actions/download-artifact@main + with: + name: androidBuild + - name: Upload Android Build to Release + uses: svenstaro/upload-release-action@2.5.0 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ env.TAG_NAME }} + file: Expung-engine-release.apk + asset_name: FNF-expunged-Engine.apk + overwrite: false - - name: Upload APK Artifact - uses: actions/upload-artifact@v4 - with: - name: psych-engine-1.0.4-apk - path: export/android/bin/*.apk - retention-days: 30 + release-ios: + name: Release iOS Build + needs: [build] + runs-on: ubuntu-latest + steps: + - name: Download iOS artifact + uses: actions/download-artifact@main + with: + name: iOSBuild + - name: Upload iOS Build to Release + uses: svenstaro/upload-release-action@2.5.0 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ env.TAG_NAME }} + file: JSEngine.ipa + asset_name: FNF-expungeg-engine.ipa + overwrite: false From 66198aab407c440b73584e344b8ca2830a9a092b Mon Sep 17 00:00:00 2001 From: alana2017para-spec Date: Sat, 10 Jan 2026 16:02:53 -0300 Subject: [PATCH 11/11] Fix workflow reference in APK.yml --- .github/workflows/APK.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/APK.yml b/.github/workflows/APK.yml index 932f63cb..9eb657c0 100644 --- a/.github/workflows/APK.yml +++ b/.github/workflows/APK.yml @@ -34,7 +34,7 @@ jobs: build: name: Build needs: create-nightly-tag - uses: ./.github/workflows/mobile.yml + uses: ./.github/workflows/APK.yml with: buildFlags: officialBuild