Compare commits

...

69 Commits

Author SHA1 Message Date
MrZ_26
bb89665fff 版本推进 2022-09-10 19:11:35 +08:00
MrZ_26
eca1f00549 框架跟进(修复触屏弹不出键盘问题) 2022-09-10 19:01:04 +08:00
MrZ_26
ca20b93632 调整一些语言相关文本
整理代码
2022-09-10 03:16:08 +08:00
MrZ_26
f3d08bae1a 整理代码,大规模整理(展开)使用次数不多的局部变量名
框架跟进
2022-09-10 03:02:00 +08:00
MrZ_26
ad4365faab 版本推进 2022-09-07 02:35:23 +08:00
MrZ_26
e8c69f7c03 删除那个没用过的c2限速式图片,不打算用了 close #735 2022-09-07 01:59:41 +08:00
MrZ_26
f4267cfe2a 行号不再只在场地高度大于20的时候显示,只要开了就常驻 close #748 2022-09-07 01:32:18 +08:00
MrZ_26
ce178d5b2b 框架跟进,修复键盘不能和按钮交互 close #745 2022-09-07 01:25:07 +08:00
MrZ_26
07eb296956 框架跟进,修复自定义场地界面按任何颜色按钮报错 close #743 2022-09-07 01:21:13 +08:00
MrZ_26
3eb982d00c 部分模式在游戏过程中就可以看到当前评级 close #747 2022-09-07 01:16:55 +08:00
MrZ_26
c52d2d0cd0 调整defender_n难度曲线(会损坏之前录像) close #739 2022-09-07 00:09:00 +08:00
MrZ_26
f6c00ec8fb 把miya语音包的b3b也换新,虽然读得不太一样 2022-09-06 22:13:11 +08:00
MrZ_26
70d5be3613 调整一些tip相关 2022-09-02 01:28:44 +08:00
ParticleG
1cedf7000f - Fix other names 2022-08-31 21:17:20 +08:00
ParticleG
0aaa5d2193 - Rename core artifact & release 2022-08-31 21:13:35 +08:00
ParticleG
8203f882b9 - Add ColdClear wrapper to Windows 2022-08-30 17:23:59 +08:00
MrZ_26
e1885bdb60 miya语音包重录 2022-08-29 14:49:53 +08:00
Richard969
21c8355340 add AUR(techmino-git) badge (#742)
renamed AUR version to AUR techmino-client
renamed AUR techmino-client's label from 'AUR' to 'techmino-client'
2022-08-27 02:45:56 +08:00
NOT_A_ROBOT
1db65c6d03 fix error message (#738) 2022-08-27 02:44:39 +08:00
MrZ_26
608d6464d9 修改更新日志 2022-08-27 02:35:18 +08:00
MrZ_26
89358c2259 没应用语音包的时候不再能点击交互了
微调俩v家语音包立绘尺寸和位置
2022-08-27 02:25:57 +08:00
MrZ_26
76073dffb1 mono语音包重录 2022-08-27 02:11:24 +08:00
MrZ_26
a3f2da5b3d 添加一个词条(日英待翻译) 2022-08-27 00:36:25 +08:00
MrZ_26
4037bd08ce 微调中文词典一个词条 2022-08-26 22:23:26 +08:00
MrZ_26
a17947006b 更新赞助名单和研究群号 2022-08-22 17:16:38 +08:00
ParticleG
c2f1e9d8af - Update action 2022-08-09 12:59:04 +08:00
Particle_G
d39bad76c9 Update readme.md 2022-08-08 07:50:28 +08:00
MrZ_26
8101a1dc51 修改版本号 2022-08-08 00:28:46 +08:00
MrZ_26
5539e967a5 新语音包rin
更换miku立绘
2022-08-05 17:40:46 +08:00
MrZ_26
d864802bba 框架跟进,按钮改为松开触发,修复音量设置导致的一些bgm不循环问题 2022-08-05 17:13:24 +08:00
ParticleG
e2d7574d7c - Skip update-version on release
- Add new lines between jobs
2022-08-05 02:43:09 +08:00
ParticleG
ed03e1dbe7 - Bump run_number 2022-08-05 02:22:39 +08:00
ParticleG
f6f3a59692 - Bump run_number 2022-08-05 02:22:13 +08:00
ParticleG
a96ea88e34 - Unify workflow 2022-08-05 02:06:49 +08:00
ParticleG
c1831f7945 - Try external tests 2022-08-05 01:08:53 +08:00
ParticleG
b2a8e9157b - Fix duplicate macos portable artifact names 2022-08-05 00:15:30 +08:00
ParticleG
d7c2227fb3 - Try upload with separate packages
- Display download links
2022-08-04 23:09:49 +08:00
ParticleG
ea16383231 - Try display download links
- Initialize test CI
2022-08-04 21:58:15 +08:00
ParticleG
2462c32fa5 - Fix android icons
- Fix android package name and product name
2022-08-04 21:34:00 +08:00
sakurw
f884a92d64 Update manual_ja.txt (#730) 2022-07-30 15:34:10 +08:00
MrZ_26
09d3202bb2 调整音乐empty的长度 2022-07-30 15:09:22 +08:00
Particle_G
aedb541f68 Use new CI system (#732)
* - Init new CI/CD system

* - Update resources

* - Update android assets

* - Update iOS assets

* - Use stable version

* - Fix apple bundle id

* - Use libs-path

* - Try modify iOS love source codes

* - Update patch

* - Try add ColdClear to macOS

* - Try add Cold Clear to Linux

* - Fix download ColdClear

* - Change inputs order

* - Try new get-CC

* - Fix iOS
2022-07-29 18:21:46 +08:00
MrZ_26
b111e67077 修改中文词典的极简词条 2022-07-27 02:28:55 +08:00
MrZ_26
946d2012c7 修复cc落块与期望不符的时候有个调试用print会报错 2022-07-24 02:08:49 +08:00
Imple Lee
ecb64a112f fix release.yml (#728) 2022-07-18 00:12:25 +08:00
MrZ_26
deb8c09c22 版本推进 2022-07-18 00:01:16 +08:00
MrZ_26
9606cb2dc9 修正堆叠模式超额消除奖励 2022-07-17 23:58:59 +08:00
NOT_A_ROBOT
a4d6585e9c Add ability to remove garbage by clearing [height+2] lines or more (#714)
* Resolve #684

* oh right almost forgor stack_u 💀
2022-07-17 23:23:46 +08:00
XMiao
e161e39b66 Add a language zh_code & Adjust languages (#725)
* Add language zh_code & Adjust some language

* Update lang_pt.lua
2022-07-17 23:20:41 +08:00
NOT_A_ROBOT
8d61759d4c Secret grade mode improvements (#726)
* Fix crash when getting TM+6 and above

* Add line counter to secret grade
2022-07-17 22:58:18 +08:00
MrZ_26
5a004bcfa7 修正lang_ja一处语法错误 2022-07-17 22:58:15 +08:00
sakurw
52f16c2fb4 Update lang_ja.lua (#727) 2022-07-17 22:57:56 +08:00
MrZ_26
d993810269 主菜单ai不再会因为失焦而md致死 2022-07-17 22:39:27 +08:00
MrZ_26
a9ad95f0c8 回放菜单按钮位置微调 2022-07-17 22:35:54 +08:00
C₂₉H₂₅N₃O₅
0ed475c994 Updated Skins (#723)
* Three new skins: pastel, letters, kanji;
* Updated the minoes skin to match the color-block schemes
2022-07-04 01:16:39 +08:00
MrZ_26
f5e889214e 过期的域名暂时先换成云服务器ip 2022-07-01 10:24:09 +08:00
MrZ_26
ee658d34c5 修正中文词典几个关键字 2022-07-01 09:37:49 +08:00
渣渣120
87cf4ee5c7 Update .gitmodules (#722) 2022-06-30 10:29:35 +08:00
Particle_G
0771dd5159 Merge pull request #702 from 26F-Studio/imple/embed-lua-into-yml
actions: embed lua into yaml
2022-06-26 21:02:17 +08:00
MrZ_26
ef16ae9aec 更新赞助列表 2022-06-18 23:06:36 +08:00
MrZ_26
1a595a38f8 在音乐室场景失去焦点不会自动静音 close #710 2022-06-16 21:50:22 +08:00
NOT_A_ROBOT
9cb5b15c8f Update Indonesian translation again (#716) 2022-06-16 21:45:00 +08:00
NOT_A_ROBOT
ccc41d6b57 Update 40L WR tip (#715) 2022-06-16 21:44:39 +08:00
MrZ_26
ab48bec472 调整雷达图三个轴的比例 2022-06-16 21:44:09 +08:00
MrZ_26
f3f2f4dd95 忘改版本名 2022-06-11 13:38:36 +08:00
MrZ_26
6e37113b34 再更新字体文件 2022-06-09 02:12:30 +08:00
MrZ_26
a516cdb228 修改一个赞助id 2022-06-04 22:31:07 +08:00
Imple Lee
362cc506c5 fix yaml syntax error 2022-05-05 22:32:09 +08:00
Imple Lee
20351391ed actions: embed lua into yaml 2022-05-05 22:30:26 +08:00
530 changed files with 2568 additions and 2024 deletions

View File

@@ -1,75 +0,0 @@
name: 'Automatic Test'
description: 'Check for obvious errors.'
runs:
using: "composite"
steps:
- name: Install lua
shell: bash
run: |
sudo apt-get install lua5.3 -y
- name: Check all lua files are valid
shell: lua {0}
run: |
local files = assert(io.popen "find . -name '*.lua' -not -path '*/.git/*'")
local errors = 0
for file in files:lines() do
local f, error = loadfile(file)
if not f then
print(error)
errors = errors + 1
end
end
files:close()
if errors > 0 then
print(('%d syntax error(s) found.'):format(errors))
os.exit(1)
else
print('No syntax error found.')
end
- name: Prepare FontTools
shell: bash
run: |
pip install fonttools
- name: Check all characters are in the font
shell: python
run: |
from fontTools.ttLib import TTFont
from pathlib import Path
font = TTFont('parts/fonts/proportional.otf')
keys = set(font.getBestCmap().keys())
missing = []
for file in Path('parts/language').glob('*.lua'):
for i, line in enumerate(file.read_text().splitlines()):
for char in line:
if ord(char) not in keys:
missing.append((char, file, i+1))
if missing:
print('Missing characters:')
for char, file, i in missing:
print(f"'{char}'({ord(char):x}) in {file} at line {i} " \
f"(${{ github.server_url }}/${{ github.repository }}/blob/${{ github.sha }}/{file}#L{i})")
exit(1)
else:
print('All characters are present in the font.')
- uses: ./.github/actions/build-love
with:
file-path: Techmino.love
- name: Download love
shell: bash
run: |
curl -L https://github.com/love2d/love/releases/download/11.3/love-11.3-linux-x86_64.tar.gz | tar xz
- name: Prepare PulseAudio
shell: bash
run: |
sudo apt-get update
sudo apt-get install pulseaudio pulseaudio-utils pavucontrol alsa-oss alsa-utils -y
- name: Run automated test
uses: GabrielBB/xvfb-action@v1
with:
run: |
./dest/love Techmino.love --test

View File

@@ -1,102 +0,0 @@
name: 'build Android'
description: 'build Android package'
inputs:
type:
required: true
apkCode:
required: true
name:
required: true
file-path:
required: true
SIGNING_KEY:
required: true
KEY_STORE_PASSWORD:
required: true
ALIAS:
required: true
KEY_PASSWORD:
required: true
runs:
using: "composite"
steps:
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: Clone love-android
shell: bash
run: |
git clone --recurse-submodules https://github.com/26F-Studio/love-android -b CI --depth 1 --shallow-submodules
- uses: ./.github/actions/build-love
with:
file-path: love-android/app/src/main/assets/game.love
- name: Download ColdClear arm64-v8a
uses: ./.github/actions/get-cc
with:
arch: android_aarch64
dir: ColdClear/arm64-v8a
- name: Process ColdClear arm64-v8a
shell: bash
run: |
mkdir -p love-android/app/libs/arm64-v8a
mv ColdClear/arm64-v8a/love-11.3-android/lib/arm64-v8a/libcold_clear.so love-android/app/libs/arm64-v8a
mkdir -p libAndroid/arm64-v8a
mv ColdClear/arm64-v8a/libs/arm64-v8a/libCCloader.so libAndroid/arm64-v8a
- name: Download ColdClear armeabi-v7a
uses: ./.github/actions/get-cc
with:
arch: android_armv7
dir: ColdClear/armeabi-v7a
- name: Process ColdClear armeabi-v7a
shell: bash
run: |
mkdir -p love-android/app/libs/armeabi-v7a
mv ColdClear/armeabi-v7a/love-11.3-android/lib/armeabi-v7a/libcold_clear.so love-android/app/libs/armeabi-v7a
mkdir -p libAndroid/armeabi-v7a
mv ColdClear/armeabi-v7a/libs/armeabi-v7a/libCCloader.so libAndroid/armeabi-v7a
- name: Pack ColdClear
shell: bash
run: |
7z a -tzip love-android/app/src/main/assets/game.love libAndroid
- name: update Android information
shell: python
run: |
if '${{ inputs.type }}' == 'Release':
appName = 'Techmino'
packageName = 'org.love2d.MrZ.Techmino'
edition = 'release'
elif '${{ inputs.type }}' == 'Snapshot':
appName = 'Techmino_Snapshot'
packageName = 'org.love2d.MrZ.Techmino.Snapshot'
edition = 'snapshot'
with open('./love-android/app/src/main/AndroidManifest.xml', "r+", encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@appName', appName)\
.replace('@edition', edition)
file.seek(0)
file.truncate()
file.write(data)
with open("./love-android/app/build.gradle", "r+", encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@packageName', packageName)\
.replace('@versionCode', '${{ inputs.apkCode }}')\
.replace('@versionName', '${{ inputs.name }}')\
.replace('@storePassword', '${{ inputs.KEY_STORE_PASSWORD }}')\
.replace('@keyAlias', '${{ inputs.ALIAS }}')\
.replace('@keyPassword', '${{ inputs.KEY_PASSWORD }}')
file.seek(0)
file.truncate()
file.write(data)
- name: Build Techmino
shell: bash
run: |
echo "${{ inputs.SIGNING_KEY }}" | base64 -d > love-android/app/android.keystore
chmod 777 love-android/gradlew
cd love-android/
./gradlew assembleRelease
- name: rename apk
shell: bash
run: mv love-android/app/build/outputs/apk/release/app-release.apk ${{ inputs.file-path }}

View File

@@ -1,96 +0,0 @@
name: 'build iOS'
description: 'build iOS package'
inputs:
name:
required: true
description: "Version name"
type:
required: true
description: "Build type"
APPLE_API_ID:
required: true
description: "API key ID"
APPLE_API_ISSUER:
required: true
description: "API issuer ID"
APPLE_API_KEY:
required: true
description: "API key content"
APPLE_APP_BUILD:
required: true
description: "Build number"
APPLE_APP_CHANGELOG:
required: true
description: "Changelog"
APPLE_APP_ID:
required: true
description: "AppStore Apple ID"
APPLE_APP_IDENTIFIER:
required: true
description: "Bundle ID"
APPLE_APP_PROFILE:
required: true
description: "Provisioning Profile specifer"
APPLE_KEYCHAIN_NAME:
required: true
description: "Temporary keychain name"
APPLE_KEYCHAIN_PWD:
required: true
description: "Temporary keychain password"
FASTLANE_DISCORD_WEBHOOK:
required: true
description: "Fastlane Discord webhook"
FASTLANE_ACTION_ID:
required: true
description: "Fastlane Action ID"
FASTLANE_MATCH_PWD:
required: true
description: "Fastlane Match description password"
FASTLANE_MATCH_TOKEN:
required: true
description: "Fastlane Match Github token"
runs:
using: "composite"
steps:
- uses: ./.github/actions/build-love
- name: Checkout source codes
uses: actions/checkout@v2
with:
repository: '26F-Studio/Techmino-iOS'
path: 'Techmino-iOS'
- name: Download CCloader
uses: ./.github/actions/get-cc
with:
arch: iOS
- name: Update source codes
shell: bash
run: |
mv Techmino.love Techmino-iOS/platform/xcode
mv libcold_clear.a Techmino-iOS/platform/xcode
mv libCCloader.a Techmino-iOS/platform/xcode
- name: Run fastlane
uses: maierj/fastlane-action@v2.0.1
with:
lane: '${{ inputs.type }}'
subdirectory: 'Techmino-iOS/platform/xcode'
env:
ACTION_ID: '${{ inputs.FASTLANE_ACTION_ID }}'
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_BUILD: '${{ inputs.APPLE_APP_BUILD }}'
APP_CHANGELOG: '${{ inputs.APPLE_APP_CHANGELOG }}'
APP_ID: '${{ inputs.APPLE_APP_ID }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
APP_PROFILE: '${{ inputs.APPLE_APP_PROFILE }}'
APP_VERSION: '${{ inputs.name }}'
DISCORD_WEBHOOK: '${{ inputs.FASTLANE_DISCORD_WEBHOOK }}'
KEYCHAIN_NAME: '${{ inputs.APPLE_KEYCHAIN_NAME }}'
KEYCHAIN_PWD: '${{ inputs.APPLE_KEYCHAIN_PWD }}'
MATCH_PASSWORD: '${{ inputs.FASTLANE_MATCH_PWD }}'
MATCH_TOKEN: '${{ inputs.FASTLANE_MATCH_TOKEN }}'
- name: Move ipa
shell: bash
run: |
mv Techmino-iOS/platform/xcode/Techmino.ipa Techmino.ipa

View File

@@ -1,40 +0,0 @@
name: 'build Linux'
description: 'build Linux package'
inputs:
file-path:
required: false
default: Techmino.AppImage
icon:
required: true
runs:
using: "composite"
steps:
- name: Download AppImageKit
shell: bash
run: |
curl -OL https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
- name: Download love
shell: bash
run: |
curl -OL https://github.com/love2d/love/releases/download/11.3/love-11.3-x86_64.AppImage
chmod 777 love-11.3-x86_64.AppImage
./love-11.3-x86_64.AppImage --appimage-extract
- name: Download ColdClear
uses: ./.github/actions/get-cc
with:
arch: linux
- name: Pack Techmino
shell: bash
run: |
rm -rf squashfs-root/love squashfs-root/love.desktop squashfs-root/love.svg squashfs-root/.DirIcon
mv .github/build/Linux/love.template squashfs-root/love
mv .github/build/Linux/Techmino.desktop.template squashfs-root/Techmino.desktop
mv ${{ inputs.icon }} squashfs-root/icon.png
cp squashfs-root/icon.png squashfs-root/.DirIcon
chmod 777 squashfs-root/love
mkdir -p squashfs-root/usr/share/Techmino
mv media parts Zframework conf.lua main.lua version.lua legals.md license.txt squashfs-root/usr/share/Techmino
mv CCloader.so squashfs-root/usr/share/Techmino
mv libcold_clear.so squashfs-root/usr/lib
chmod 777 appimagetool-x86_64.AppImage
./appimagetool-x86_64.AppImage squashfs-root ${{ inputs.file-path }}

View File

@@ -1,11 +0,0 @@
name: 'build love'
description: 'build love file'
inputs:
file-path:
required: true
default: Techmino.love
runs:
using: "composite"
steps:
- run: 7z a -tzip ${{ inputs.file-path }} media parts Zframework conf.lua main.lua version.lua legals.md license.txt
shell: bash

View File

@@ -1,152 +0,0 @@
name: 'build Mac OS'
description: 'build Mac OS package'
inputs:
name:
required: true
description: "Version name"
icon:
required: true
description: "App icons (.icns)"
APPLE_API_ID:
required: true
description: "API key ID"
APPLE_API_ISSUER:
required: true
description: "API issuer ID"
APPLE_API_KEY:
required: true
description: "API key content"
APPLE_APP_IDENTIFIER:
required: true
description: "Bundle ID"
APPLE_KEYCHAIN_NAME:
required: true
description: "Temporary keychain name"
APPLE_KEYCHAIN_PWD:
required: true
description: "Temporary keychain password"
FASTLANE_MATCH_PWD:
required: true
description: "Fastlane Match description password"
FASTLANE_MATCH_TOKEN:
required: true
description: "Fastlane Match Github token"
runs:
using: "composite"
steps:
- uses: ./.github/actions/build-love
- name: Checkout template
uses: actions/checkout@v2
with:
repository: '26F-Studio/Techmino-macOS'
path: 'Techmino-macOS'
- name: Download ColdClear
uses: ./.github/actions/get-cc
with:
arch: macOS
- name: Fastlane match
uses: maierj/fastlane-action@v2.0.1
with:
lane: 'get_cert'
subdirectory: 'Techmino-macOS'
env:
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
KEYCHAIN_NAME: '${{ inputs.APPLE_KEYCHAIN_NAME }}'
KEYCHAIN_PWD: '${{ inputs.APPLE_KEYCHAIN_PWD }}'
MATCH_PASSWORD: '${{ inputs.FASTLANE_MATCH_PWD }}'
MATCH_TOKEN: '${{ inputs.FASTLANE_MATCH_TOKEN }}'
- name: Modify template
shell: python
run: |
import datetime
from io import open
thisYear = str(datetime.datetime.today().year)
with open('./.github/build/macOS/info.plist.template', 'r', encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@versionName', '${{ inputs.name }}'[1:])\
.replace('@thisYear', thisYear)\
.replace('@bundleId', '${{ inputs.APPLE_APP_IDENTIFIER }}')
with open('./Techmino-macOS/Techmino.app/Contents/info.plist', 'w+', encoding='utf-8') as file:
file.write(data)
- name: Pack
shell: bash
run: |
mv Techmino.love Techmino-macOS/Techmino.app/Contents/Resources
mv CCloader.dylib Techmino-macOS/Techmino.app/Contents/Frameworks
mv ${{ inputs.icon }} Techmino-macOS/Techmino.app/Contents/Resources/iconfile.icns
chmod +x Techmino-macOS/Techmino.app/Contents/Frameworks/CCloader.dylib
chmod +x Techmino-macOS/Techmino.app/Contents/MacOS/love
- name: Codesign executable
shell: bash
run: |
security unlock-keychain -p ${{ inputs.TEMP_KEYCHAIN_PASSWORD }} \
~/Library/Keychains/${{ inputs.TEMP_KEYCHAIN_USER }}-db
[[ $(security find-identity) =~ ([0-9A-F]{40}) ]]
codesign --timestamp --force --strict --deep -v \
--options runtime \
-s ${BASH_REMATCH[1]} \
--entitlements Techmino-macOS/love.entitlements \
Techmino-macOS/Techmino.app
- name: Fastlane notarize
uses: maierj/fastlane-action@v2.0.1
with:
lane: 'make_safe'
subdirectory: 'Techmino-macOS'
env:
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
NOTARIZE_OBJECT: 'Techmino.app'
- name: Create DMG file
shell: bash
run: |
brew install create-dmg
create-dmg \
--volname "Techmino for MacOS" \
--volicon "./.github/build/macOS/Techminodisk.icns" \
--window-pos 200 120 \
--window-size 800 500 \
--icon-size 100 \
--icon "Techmino.app" 239 203 \
--background ".github/build/macOS/backgroundImage.tiff" \
--hide-extension "Techmino.app" \
--app-drop-link 565 203 \
"Techmino-macOS/Techmino-macOS.dmg" \
"Techmino-macOS/Techmino.app/"
- name: Codesign DMG
shell: bash
run: |
security unlock-keychain -p ${{ inputs.TEMP_KEYCHAIN_PASSWORD }} \
~/Library/Keychains/${{ inputs.TEMP_KEYCHAIN_USER }}-db
[[ $(security find-identity) =~ ([0-9A-F]{40}) ]]
codesign --timestamp --force --strict --deep -v \
--options runtime \
-s ${BASH_REMATCH[1]} \
--entitlements Techmino-macOS/love.entitlements \
Techmino-macOS/Techmino-macOS.dmg
- name: Fastlane notarize
uses: maierj/fastlane-action@v2.0.1
with:
lane: 'make_safe'
subdirectory: 'Techmino-macOS'
env:
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
NOTARIZE_OBJECT: 'Techmino-macOS.dmg'
- name: Finalize
shell: bash
run: |
mv Techmino-macOS/Techmino-macOS.dmg Techmino.dmg
spctl -a -t open --context context:primary-signature -vv Techmino.dmg

View File

@@ -1,60 +0,0 @@
name: 'build Windows'
description: 'build Windows package'
inputs:
love-url:
required: true
love-dir:
required: true
arch:
required: true
version:
required: true
icon:
required: true
runs:
using: "composite"
steps:
- name: Download love
uses: ./.github/actions/get-unzip
with:
url: ${{ inputs.love-url }}
- name: move love
shell: bash
run: mv ${{ inputs.love-dir }} love
- name: Download ColdClear
uses: ./.github/actions/get-cc
with:
arch: ${{ inputs.arch }}
- name: Download ResourceHacker
uses: ./.github/actions/get-unzip
with:
url: http://www.angusj.com/resourcehacker/resource_hacker.zip
- uses: ./.github/actions/build-love
- name: update Windows template
shell: python
run: |
Version = '${{ inputs.version }}'.replace('V', '')
FileVersion = (f"{Version.replace('.', ',')},0")
with open('./.github/build/Windows/Techmino.rc.template', 'r', encoding='utf8') as file:
data = file.read()
data = data\
.replace('@FileVersion', FileVersion)\
.replace('@Version', Version)
with open('Techmino.rc', 'w+', encoding='utf8') as file:
file.write(data)
- name: Pack Techmino
shell: pwsh
run: |
cmd /c copy /b .\love\love.exe + .\Techmino.love .\love\Techmino.exe
del .\love\love.exe
del .\love\lovec.exe
del .\love\game.ico
del .\love\love.ico
del .\love\changes.txt
del .\love\readme.txt
move .\cold_clear.dll .\love
move .\CCloader.dll .\love
cmd /c '.\ResourceHacker.exe -open .\love\Techmino.exe -save .\love\Techmino.exe -action delete -mask ICONGROUP,,'
cmd /c '.\ResourceHacker.exe -open .\Techmino.rc -save .\Techmino.res -action compile'
cmd /c '.\ResourceHacker.exe -open .\love\Techmino.exe -save .\love\Techmino.exe -action addoverwrite -res "${{ inputs.icon }}" -mask ICONGROUP,1,'
cmd /c '.\ResourceHacker.exe -open .\love\Techmino.exe -save .\love\Techmino.exe -action addoverwrite -res ".\Techmino.res" -mask VERSIONINFO,1,'

View File

@@ -3,8 +3,8 @@ description: 'download cc into specific dir'
inputs:
tag:
required: false
default: techmino-alize-2
arch:
default: "11.4"
platform:
required: true
dir:
required: false
@@ -27,6 +27,6 @@ runs:
shell: bash
- uses: ./.github/actions/get-unzip
with:
url: https://github.com/${{ inputs.repo }}/releases/download/${{ steps.get-tag.outputs.tag }}/${{ inputs.arch }}.zip
url: https://github.com/${{ inputs.repo }}/releases/download/${{ steps.get-tag.outputs.tag }}/${{ inputs.platform }}.zip
dir: ${{ inputs.dir }}
temp-file: ${{ inputs.temp-file }}

View File

@@ -1,5 +0,0 @@
#!/bin/sh
export LOVE_LAUNCHER_LOCATION="$(dirname "$(which "$0")")"
export LD_LIBRARY_PATH="${LOVE_LAUNCHER_LOCATION}/lib/x86_64-linux-gnu:${LOVE_LAUNCHER_LOCATION}/usr/bin:${LOVE_LAUNCHER_LOCATION}/usr/lib:${LOVE_LAUNCHER_LOCATION}/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
/sbin/ldconfig -p | grep -q libstdc++ || export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${LOVE_LAUNCHER_LOCATION}/libstdc++/"
exec ${LOVE_BIN_WRAPPER} "${LOVE_LAUNCHER_LOCATION}/usr/bin/love" "${LOVE_LAUNCHER_LOCATION}/usr/share/Techmino"

View File

@@ -1 +0,0 @@
*.template text eol=crlf

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/icon_background"/>
<foreground android:drawable="@mipmap/icon_foreground"/>
</adaptive-icon>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/icon_background"/>
<foreground android:drawable="@mipmap/icon_foreground"/>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/icon_background"/>
<foreground android:drawable="@mipmap/icon_foreground"/>
</adaptive-icon>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/icon_background"/>
<foreground android:drawable="@mipmap/icon_foreground"/>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

106
.github/build/iOS/love.patch vendored Normal file
View File

@@ -0,0 +1,106 @@
diff --git a/src/common/ios.h b/src/common/ios.h
index c1932555..552e432e 100644
--- a/src/common/ios.h
+++ b/src/common/ios.h
@@ -66,7 +66,7 @@ std::string getExecutablePath();
/**
* Causes devices with vibration support to vibrate for about 0.5 seconds.
**/
-void vibrate();
+void vibrate(const double seconds);
/**
* Enable mix mode (e.g. with background music apps) and playback with a muted device.
diff --git a/src/common/ios.mm b/src/common/ios.mm
index 7730991e..4ba8e708 100644
--- a/src/common/ios.mm
+++ b/src/common/ios.mm
@@ -36,6 +36,8 @@
#include <SDL_video.h>
#include <SDL_syswm.h>
+#include <sys/utsname.h>
+
static NSArray *getLovesInDocuments();
static bool deleteFileInDocuments(NSString *filename);
@@ -391,10 +393,40 @@ std::string getExecutablePath()
}
}
-void vibrate()
+void vibrate(const double seconds)
{
@autoreleasepool
{
+ struct utsname systemInfo;
+ uname(&systemInfo);
+ NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
+ NSRange iPhoneRange = [deviceString rangeOfString:@"iPhone"];
+ if (iPhoneRange.length == 6) {
+ NSRange commaRange = [deviceString rangeOfString:@","];
+ NSString *iPhone = [deviceString substringWithRange:iPhoneRange];
+ NSRange numRange = NSMakeRange(iPhoneRange.location + iPhoneRange.length, commaRange.location - iPhoneRange.location - iPhoneRange.length);
+ NSString *num = [deviceString substringWithRange:numRange];
+
+ if ([num intValue] >= 9) {
+ // iPhone 7 and above, see: https://gist.github.com/adamawolf/3048717#file-apple_mobile_device_types-txt-L22
+
+ if (@available(iOS 10.0, *)) {
+ // iOS 10.0 and above
+ UIImpactFeedbackGenerator *impact = nil;
+ if (seconds >= 0.5 && seconds < 1.5) {
+ impact = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight]; // 轻
+ } else if (seconds >= 1.5 && seconds < 2.5) {
+ impact = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleMedium]; // 中
+ } else if (seconds >= 2.5) {
+ impact = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleHeavy]; // 重
+ } else {
+ return;
+ }
+ [impact impactOccurred];
+ return;
+ }
+ }
+ }
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
}
diff --git a/src/love.cpp b/src/love.cpp
index c8af8596..ae7a5e32 100644
--- a/src/love.cpp
+++ b/src/love.cpp
@@ -140,6 +140,10 @@ enum DoneAction
DONE_RESTART,
};
+extern "C" {
+ int luaopen_CCloader(lua_State *L);
+}
+
static DoneAction runlove(int argc, char **argv, int &retval)
{
// Oh, you just want the version? Okay!
@@ -158,6 +162,9 @@ static DoneAction runlove(int argc, char **argv, int &retval)
lua_State *L = luaL_newstate();
luaL_openlibs(L);
+ // Init CCloader
+ luaopen_CCloader(L);
+
// LuaJIT-specific setup needs to be done as early as possible - before
// get_app_arguments because that loads external library code. This is also
// loaded inside require("love"). Note that it doesn't use the love table.
diff --git a/src/modules/system/System.cpp b/src/modules/system/System.cpp
index e1de16d5..e0f03557 100644
--- a/src/modules/system/System.cpp
+++ b/src/modules/system/System.cpp
@@ -174,7 +174,7 @@ void System::vibrate(double seconds) const
#ifdef LOVE_ANDROID
love::android::vibrate(seconds);
#elif defined(LOVE_IOS)
- love::ios::vibrate();
+ love::ios::vibrate(seconds);
#else
LOVE_UNUSED(seconds);
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Techmino Development
Comment=Techmino is fun!
MimeType=application/x-love-game;
Exec=app %f
Type=Application
Categories=Game;
Terminal=false
Icon=icon
NoDisplay=false

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -1,8 +1,10 @@
[Desktop Entry]
Name=Techmino Alpha
Name=Techmino
Comment=Techmino is fun!
Exec=wrapper-love %f
MimeType=application/x-love-game;
Exec=app %f
Type=Application
Categories=Game;
Terminal=false
Icon=icon
NoDisplay=false

View File

@@ -1 +0,0 @@
*.template text eol=lf

View File

@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19B88</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>love</string>
<key>CFBundleIconFile</key>
<string>iconfile</string>
<key>CFBundleIdentifier</key>
<string>@bundleId</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Techmino</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>@versionName</string>
<key>CFBundleSignature</key>
<string>LoVe</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>11C504</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>19B90</string>
<key>DTSDKName</key>
<string>macosx10.15</string>
<key>DTXcode</key>
<string>1130</string>
<key>DTXcodeBuild</key>
<string>11C504</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>LSMinimumSystemVersion</key>
<string>10.7</string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>©2020-@thisYear 26F Studio, GNU LGPLv3.0</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<false/>
</dict>
</plist>

BIN
.github/build/macOS/release/dmg.icns vendored Normal file

Binary file not shown.

BIN
.github/build/macOS/release/dmg.png vendored Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More