Compare commits
12 Commits
pre0.16.3-
...
pre0.16.4-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
457681e6ec | ||
|
|
904bcf6852 | ||
|
|
e21e57ff84 | ||
|
|
562a69831a | ||
|
|
706a683540 | ||
|
|
8e2aee5e84 | ||
|
|
f68facbe0e | ||
|
|
5535366bb1 | ||
|
|
d75b709f23 | ||
|
|
0a15011ec7 | ||
|
|
f7dfe1d869 | ||
|
|
5e9c9cb5fa |
32
.github/actions/build-android/action.yml
vendored
32
.github/actions/build-android/action.yml
vendored
@@ -59,11 +59,41 @@ runs:
|
||||
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
|
||||
python3 .github/workflows/updateVersion.py -T Android${{ inputs.type }} -C ${{ inputs.apkCode }} -N ${{ inputs.name }} -S ${{ inputs.KEY_STORE_PASSWORD }} -A ${{ inputs.ALIAS }} -K ${{ inputs.KEY_PASSWORD }}
|
||||
chmod 777 love-android/gradlew
|
||||
cd love-android/
|
||||
./gradlew assembleRelease
|
||||
|
||||
4
.github/actions/build-ios/action.yml
vendored
4
.github/actions/build-ios/action.yml
vendored
@@ -40,6 +40,9 @@ inputs:
|
||||
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"
|
||||
@@ -71,6 +74,7 @@ runs:
|
||||
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 }}'
|
||||
|
||||
18
.github/actions/build-macos/action.yml
vendored
18
.github/actions/build-macos/action.yml
vendored
@@ -59,12 +59,22 @@ runs:
|
||||
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: |
|
||||
python3 .github/workflows/updateVersion.py -T macOS \
|
||||
-N ${{ inputs.name }} \
|
||||
-B ${{ inputs.APPLE_APP_IDENTIFIER }}
|
||||
|
||||
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
|
||||
|
||||
13
.github/actions/build-windows/action.yml
vendored
13
.github/actions/build-windows/action.yml
vendored
@@ -30,6 +30,18 @@ runs:
|
||||
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: |
|
||||
@@ -42,7 +54,6 @@ runs:
|
||||
del .\love\readme.txt
|
||||
move .\cold_clear.dll .\love
|
||||
move .\CCloader.dll .\love
|
||||
python .\.github\workflows\updateVersion.py -T Windows -N ${{ inputs.version }}
|
||||
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,'
|
||||
|
||||
12
.github/actions/snapshot-update/action.yml
vendored
12
.github/actions/snapshot-update/action.yml
vendored
@@ -1,12 +0,0 @@
|
||||
name: 'update for a snapshot'
|
||||
description: 'common update logic for snapshot'
|
||||
inputs:
|
||||
commit:
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- shell: bash
|
||||
run: |
|
||||
python3 .github/workflows/updateVersion.py -T Conf
|
||||
python3 .github/workflows/updateVersion.py -T Version -H ${{ inputs.commit }}
|
||||
36
.github/actions/update-version/action.yml
vendored
Normal file
36
.github/actions/update-version/action.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
name: 'update version'
|
||||
description: 'common update logic for snapshot and release'
|
||||
inputs:
|
||||
commit:
|
||||
required: false
|
||||
type:
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- shell: python
|
||||
name: update snapshot saving folder
|
||||
run: |
|
||||
from io import open
|
||||
if '${{ inputs.type }}'.lower() != 'snapshot':
|
||||
exit(0)
|
||||
with open('conf.lua', 'r+', encoding='utf-8') as file:
|
||||
data = file.read()
|
||||
data = data.replace("t.identity='Techmino'--Saving folder", "t.identity='Techmino_Snapshot'--Saving folder")
|
||||
file.seek(0)
|
||||
file.truncate()
|
||||
file.flush()
|
||||
file.write(data)
|
||||
- shell: python
|
||||
run: |
|
||||
from io import open
|
||||
import re
|
||||
with open('version.lua', 'r+', encoding='utf-8') as file:
|
||||
commitHash = '${{ inputs.commit }}'
|
||||
commitHash = commitHash[0:4] if commitHash != '' else '????'
|
||||
data = file.read()
|
||||
data = re.sub('(\d)"', r'\1@' + commitHash + '"', data)
|
||||
file.seek(0)
|
||||
file.truncate()
|
||||
file.flush()
|
||||
file.write(data)
|
||||
16
.github/workflows/dev.yml
vendored
16
.github/workflows/dev.yml
vendored
@@ -32,9 +32,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-windows
|
||||
with:
|
||||
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
|
||||
@@ -53,9 +54,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-linux
|
||||
with:
|
||||
icon: .github/build/Linux/icon_snapshot.png
|
||||
@@ -70,9 +72,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-android
|
||||
with:
|
||||
type: Snapshot
|
||||
@@ -94,9 +97,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-macos
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
@@ -120,9 +124,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-ios
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
@@ -137,6 +142,7 @@ jobs:
|
||||
APPLE_APP_PROFILE: '${{ secrets.APPLE_APP_PROFILE }}'
|
||||
APPLE_KEYCHAIN_NAME: '${{ secrets.APPLE_KEYCHAIN_NAME }}'
|
||||
APPLE_KEYCHAIN_PWD: '${{ secrets.APPLE_KEYCHAIN_PWD }}'
|
||||
FASTLANE_ACTION_ID: '${{ github.run_id }}'
|
||||
FASTLANE_DISCORD_WEBHOOK: '${{ secrets.FASTLANE_DISCORD_WEBHOOK }}'
|
||||
FASTLANE_MATCH_PWD: '${{ secrets.FASTLANE_MATCH_PWD }}'
|
||||
FASTLANE_MATCH_TOKEN: '${{ secrets.FASTLANE_MATCH_TOKEN }}'
|
||||
|
||||
4
.github/workflows/getVersion.lua
vendored
4
.github/workflows/getVersion.lua
vendored
@@ -5,10 +5,10 @@ elseif arg[1]=="-code"then
|
||||
local str=require"version".code
|
||||
print(str)
|
||||
elseif arg[1]=="-name"then
|
||||
local str=require"version".string:gsub("@DEV","")
|
||||
local str=require"version".string
|
||||
print(str)
|
||||
elseif arg[1]=="-release"then
|
||||
local str=require"version".string:gsub("V","",1):gsub("@DEV","")
|
||||
local str=require"version".string:gsub("V","",1)
|
||||
print(str)
|
||||
elseif arg[1]=="-updateTitle"then
|
||||
local note=require"parts.updateLog"
|
||||
|
||||
33
.github/workflows/release.yml
vendored
33
.github/workflows/release.yml
vendored
@@ -35,9 +35,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update Version
|
||||
run: |
|
||||
python .\.github\workflows\updateVersion.py -T Version
|
||||
- uses: ./.github/actions/update-version
|
||||
- uses: ./.github/actions/build-windows
|
||||
with:
|
||||
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
|
||||
@@ -58,9 +56,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update Version
|
||||
run: |
|
||||
python .\.github\workflows\updateVersion.py -T Version
|
||||
- uses: ./.github/actions/update-version
|
||||
- uses: ./.github/actions/build-windows
|
||||
with:
|
||||
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win32.zip
|
||||
@@ -81,9 +77,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update Version
|
||||
run: |
|
||||
python3 .github/workflows/updateVersion.py -T Version
|
||||
- uses: ./.github/actions/update-version
|
||||
- uses: ./.github/actions/build-linux
|
||||
with:
|
||||
file-path: Techmino.a${{ needs.get-info.outputs.release }}.AppImage
|
||||
@@ -99,9 +93,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update Version
|
||||
run: |
|
||||
python3 .github/workflows/updateVersion.py -T Version
|
||||
- uses: ./.github/actions/update-version
|
||||
- uses: ./.github/actions/build-android
|
||||
with:
|
||||
type: Release
|
||||
@@ -123,9 +115,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update Version
|
||||
run: |
|
||||
python3 .github/workflows/updateVersion.py -T Version
|
||||
- uses: ./.github/actions/update-version
|
||||
- name: remove media
|
||||
run: |
|
||||
rm -rf media/music media/effect media/vocal
|
||||
@@ -150,9 +140,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update Version
|
||||
run: |
|
||||
python3 .github/workflows/updateVersion.py -T Version
|
||||
- uses: ./.github/actions/update-version
|
||||
- uses: ./.github/actions/build-macos
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
@@ -179,9 +167,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
- uses: ./.github/actions/update-version
|
||||
- uses: ./.github/actions/build-ios
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
@@ -196,6 +182,7 @@ jobs:
|
||||
APPLE_APP_PROFILE: '${{ secrets.APPLE_APP_PROFILE }}'
|
||||
APPLE_KEYCHAIN_NAME: '${{ secrets.APPLE_KEYCHAIN_NAME }}'
|
||||
APPLE_KEYCHAIN_PWD: '${{ secrets.APPLE_KEYCHAIN_PWD }}'
|
||||
FASTLANE_ACTION_ID: '${{ github.run_id }}'
|
||||
FASTLANE_DISCORD_WEBHOOK: '${{ secrets.FASTLANE_DISCORD_WEBHOOK }}'
|
||||
FASTLANE_MATCH_PWD: '${{ secrets.FASTLANE_MATCH_PWD }}'
|
||||
FASTLANE_MATCH_TOKEN: '${{ secrets.FASTLANE_MATCH_TOKEN }}'
|
||||
@@ -214,9 +201,7 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Update Version
|
||||
run: |
|
||||
python3 .github/workflows/updateVersion.py -T Version
|
||||
- uses: ./.github/actions/update-version
|
||||
- uses: ./.github/actions/build-love
|
||||
with:
|
||||
file-path: Techmino.a${{ needs.get-info.outputs.release }}.love
|
||||
|
||||
16
.github/workflows/test.yml
vendored
16
.github/workflows/test.yml
vendored
@@ -33,9 +33,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-windows
|
||||
with:
|
||||
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
|
||||
@@ -54,9 +55,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-linux
|
||||
with:
|
||||
icon: .github/build/Linux/icon_snapshot.png
|
||||
@@ -71,9 +73,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-android
|
||||
with:
|
||||
type: Snapshot
|
||||
@@ -95,9 +98,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-macos
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
@@ -121,9 +125,10 @@ jobs:
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
- uses: ./.github/actions/update-version
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
type: snapshot
|
||||
- uses: ./.github/actions/build-ios
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
@@ -138,6 +143,7 @@ jobs:
|
||||
APPLE_APP_PROFILE: '${{ secrets.APPLE_APP_PROFILE }}'
|
||||
APPLE_KEYCHAIN_NAME: '${{ secrets.APPLE_KEYCHAIN_NAME }}'
|
||||
APPLE_KEYCHAIN_PWD: '${{ secrets.APPLE_KEYCHAIN_PWD }}'
|
||||
FASTLANE_ACTION_ID: '${{ github.run_id }}'
|
||||
FASTLANE_DISCORD_WEBHOOK: '${{ secrets.FASTLANE_DISCORD_WEBHOOK }}'
|
||||
FASTLANE_MATCH_PWD: '${{ secrets.FASTLANE_MATCH_PWD }}'
|
||||
FASTLANE_MATCH_TOKEN: '${{ secrets.FASTLANE_MATCH_TOKEN }}'
|
||||
|
||||
100
.github/workflows/updateVersion.py
vendored
100
.github/workflows/updateVersion.py
vendored
@@ -1,100 +0,0 @@
|
||||
import argparse
|
||||
import re
|
||||
|
||||
def updateConf(): #更新存档位置
|
||||
with open('conf.lua', 'r+', encoding='utf-8') as file:
|
||||
data = file.read()
|
||||
data = data.replace("t.identity='Techmino'--Saving folder", "t.identity='Techmino_Snapshot'--Saving folder")
|
||||
file.seek(0)
|
||||
file.truncate()
|
||||
file.flush()
|
||||
file.write(data)
|
||||
|
||||
def updateVersion(args): #更新版本号
|
||||
with open('version.lua', 'r+', encoding='utf-8') as file:
|
||||
data = file.read()
|
||||
if args.Hash != False:
|
||||
data = data.replace('@DEV', f'@{args.Hash[0:4]}')
|
||||
else:
|
||||
data = data.replace('@DEV', '')
|
||||
file.seek(0)
|
||||
file.truncate()
|
||||
file.flush()
|
||||
file.write(data)
|
||||
|
||||
def updateMacOS(args): #更新macOS打包信息
|
||||
import datetime
|
||||
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', args.Name[1:])\
|
||||
.replace('@thisYear', thisYear)\
|
||||
.replace('@bundleId', args.Bundle)
|
||||
with open('./Techmino-macOS/Techmino.app/Contents/info.plist', 'w+', encoding='utf-8') as file:
|
||||
file.write(data)
|
||||
|
||||
def updateWindows(args): #更新Windows打包信息
|
||||
Version = (args.Name).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)
|
||||
|
||||
def updateAndroid(args, edition): #更新Android打包信息
|
||||
if edition == 'Release':
|
||||
appName = 'Techmino'
|
||||
packageName = 'org.love2d.MrZ.Techmino'
|
||||
edition = 'release'
|
||||
elif edition == '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', args.Code)\
|
||||
.replace('@versionName', args.Name)\
|
||||
.replace('@storePassword', args.Store)\
|
||||
.replace('@keyAlias', args.Alias)\
|
||||
.replace('@keyPassword', args.Key)
|
||||
file.seek(0)
|
||||
file.truncate()
|
||||
file.write(data)
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='用于CI更新程序各类信息')
|
||||
parser.add_argument('-T', '--Type', type=str, help = '更新的种类')
|
||||
parser.add_argument('-B', '--Bundle', type=str, help = '应用包名')
|
||||
parser.add_argument('-H', '--Hash', type=str, default = False, help = 'Github提交Hash')
|
||||
parser.add_argument('-C', '--Code', type=str, default = False, help = 'versionCode')
|
||||
parser.add_argument('-N', '--Name', type=str, default = False, help = 'versionName')
|
||||
parser.add_argument('-S', '--Store', type=str, default = False, help = 'storePassword')
|
||||
parser.add_argument('-A', '--Alias', type=str, default = False, help = 'keyAlias')
|
||||
parser.add_argument('-K', '--Key', type=str, default = False, help = 'keyPassword')
|
||||
args = parser.parse_args()
|
||||
if args.Type == 'Conf':
|
||||
updateConf()
|
||||
elif args.Type == 'Version':
|
||||
updateVersion(args)
|
||||
elif args.Type == 'Windows':
|
||||
updateWindows(args)
|
||||
elif args.Type == 'macOS':
|
||||
updateMacOS(args)
|
||||
elif args.Type == 'AndroidRelease':
|
||||
updateAndroid(args, 'Release')
|
||||
elif args.Type == 'AndroidSnapshot':
|
||||
updateAndroid(args, 'Snapshot')
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,3 +1,8 @@
|
||||
.vscode
|
||||
libAndroid
|
||||
*.ini
|
||||
*.ini
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
Icon?
|
||||
.Trash
|
||||
.file
|
||||
|
||||
@@ -23,7 +23,7 @@ function TASK.update(dt)
|
||||
end
|
||||
function TASK.new(code,...)
|
||||
local thread=coroutine.create(code)
|
||||
resume(thread,...)
|
||||
assert(resume(thread,...))
|
||||
if status(thread)~='dead'then
|
||||
tasks[#tasks+1]={
|
||||
thread=thread,
|
||||
|
||||
40
main.lua
40
main.lua
@@ -382,8 +382,11 @@ end
|
||||
for _,v in next,fs.getDirectoryItems('parts/modes')do
|
||||
if isSafeFile('parts/modes/'..v)and not MODES[v:sub(1,-5)]then
|
||||
local M={name=v:sub(1,-5)}
|
||||
TABLE.complete(require('parts.modes.'..M.name),M)
|
||||
MODES[M.name]=M
|
||||
local modeData=require('parts.modes.'..M.name)
|
||||
if modeData.env then
|
||||
TABLE.complete(modeData,M)
|
||||
MODES[M.name]=M
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -576,3 +579,36 @@ table.sort(REPLAY,function(a,b)return a.fileName>b.fileName end)
|
||||
table.insert(_LOADTIMELIST_,("Initialize Data: %.3fs"):format(TIME()-_LOADTIME_))
|
||||
|
||||
for i=1,#_LOADTIMELIST_ do LOG(_LOADTIMELIST_[i])end
|
||||
|
||||
if TABLE.find(arg,'--test')then
|
||||
TASK.new(function()
|
||||
while not LOADED do YIELD()end
|
||||
|
||||
print("\27[92m\27[1mAutomatic Test Started\27[0m")
|
||||
BGM.setVol(0)SFX.setVol(0)
|
||||
love.keypressed('space')
|
||||
while SCN.swapping do YIELD()end
|
||||
|
||||
for k,mode in next,MODES do
|
||||
if k~='netBattle'then
|
||||
print("Scanning mode: "..mode.name)
|
||||
loadGame(mode.name.."a",true)
|
||||
while SCN.swapping do YIELD()end
|
||||
SCN.back()
|
||||
while SCN.swapping do YIELD()end
|
||||
end
|
||||
end
|
||||
print("\27[92m\27[1mAutomatic Test Passed :)\27[0m")
|
||||
for _=1,60 do YIELD()end
|
||||
love.event.quit(0)
|
||||
end)
|
||||
TASK.new(function()
|
||||
while true do
|
||||
YIELD()
|
||||
if ERRDATA[1]then break end
|
||||
end
|
||||
print("\27[91m\27[1mAutomatic Test Failed :(\27[0m\nThe error message is:\n"..table.concat(ERRDATA[1].mes,"\n").."\27[91m\nAborting\27[0m")
|
||||
for _=1,60 do YIELD()end
|
||||
love.event.quit(1)
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -405,10 +405,10 @@ return{
|
||||
"term",
|
||||
"In most cases, it's a meme.\nThe shape and position of the O Tetromino (a.k.a. the Square) does not change upon rotation, thus making it lack interesting spins/kicks that other Tetrominoes have, or be stuck in a place unable to get out.\nAs a joke, some people have made heavily edited videos or even programmed games where the O pieces can change shape and \"spin\" into different positions.\nTechmino also supports O-Spin in most modes.",
|
||||
},
|
||||
{"Rotation Systems",--Editted
|
||||
{"Rotation Systems",
|
||||
"wallkick rotationsystem",
|
||||
"term",
|
||||
"Systems that determine how pieces rotate.\n\nRotation systems usually handle two things: basic rotation and kicks.\n\nBasic rotation refers to how pieces rotate in an open area. Because rotating pieces on their geometric center will usually cause the piece to be misaligned from the grid, rotation systems need to specify alternative rotation centers or rotation offsets to align rotated pieces back to the grid.\n\nKicks refer to offsets applied if the rotated piece overlaps with the border of the matrix or other blocks. While older games, like the ones on NES and Gameboy, lack kicks, people soon realized that if a piece is too close to the wall, the floor or other pieces, the piece can (unintuitively) fail to rotate due to overlapping. Games started to implement systems that allow pieces close to walls/floors to rotate, and move them away from the wall/floor into a valid position (\"kicking off the wall/floor\"), and such movements, or offsets used in said movements, are referred to as (wall/floor) kicks.\n\nWhile Super Rotation System (SRS) is the current standard for modern official Tetris games, older games and unofficial games may have their own rotation systems, implementing different basic rotations and kicks.",
|
||||
"Systems that determine how the pieces rotate.\n\nIn modern Tetris games, tetrominoes can rotate on a specfic rotation center (but this may be absent in some games). If the minoes overlap with the walls or the field, the system would attempt to perform some offsets (a process known as \"wall-kicking\"). Wall kicks allow minoes to move into in specific-shaped holes.",
|
||||
},
|
||||
{"ARS",
|
||||
"ars arikrotationsystem atarirotationsystem",
|
||||
@@ -445,10 +445,10 @@ return{
|
||||
"term",
|
||||
"Nintendo Rotation System\nThe rotation system used in the Tetris games on the NES and Game Boy.\nIt has two mirrored versions; the left-handed version is used on Game Boy, and the right-handed version on the NES.",
|
||||
},
|
||||
{"SRS",--Editted
|
||||
{"SRS",
|
||||
"srs superrotationsystem",
|
||||
"term",
|
||||
"Super Rotation System\nThe rotation system used in modern, official Tetris games.\nEach Tetromino has a rotation center for the piece to rotate around. Should a Tetromino overlap with the wall, floor or another mino on the field after rotation, a few offset positions will be checked, allowing pieces to kick off walls and floors. This also allows pieces to rotate into openings that are otherwise unreachable.\n\nMany unofficial games implement some modification of this rotation system that adds a kick for 180 spins. In Techmino, such a modification is called SRS+.",
|
||||
"Super Rotation System, the most widely used rotation system by modern Tetris games, and is the foundation of many self-made rotation systems. There are four orientations for each tetromino, and they can rotate clockwise or counterclockwise (But without 180° rotations). Should a Tetromino overlap with the wall, floor or other minoes on the field after rotation, a few offset positions will be checked, allowing pieces to kick off walls and floors. You can look up the details of the wall kick table on Tetris Wiki.",
|
||||
},
|
||||
{"TRS",
|
||||
"trs techminorotationsystem",
|
||||
|
||||
@@ -760,20 +760,20 @@ return{
|
||||
['custom_puzzle']= {"Custom", "PUZZLE"},
|
||||
},
|
||||
getTip={refuseCopy=true,
|
||||
'Free-to-play block stacking game with a Battle Royale mode!',
|
||||
'Have you noticed what "rotating" does do to a block?',
|
||||
":pog:",
|
||||
"(RUR'U')R'FR2U'R'U'(RUR'F')",
|
||||
"\"Example App\" cannot be opened because the developer cannot be verified.",
|
||||
"\"Techmino.app\" cannot be opened because the developer cannot be verified.",
|
||||
"\"Techmino.app\" will damage your computer. You should move it to the Bin.",
|
||||
"\"TechminOS\"",
|
||||
"\\jezevec/\\jezevec/\\jezevec/",
|
||||
"\\osk/\\osk/\\osk/",
|
||||
"↑↑↓↓←→←→BA",
|
||||
"$include<studio.h>",
|
||||
"0next 0hold",
|
||||
"0next 0hold.",
|
||||
"1next 0hold",
|
||||
"1next 1hold!",
|
||||
"1next 6hold!",
|
||||
"20G actually is a brand new game rule.",
|
||||
"20G actually is a brand new game rule!",
|
||||
"40-line Sprint WR: 14.915s by Reset_",
|
||||
"6next 1hold!",
|
||||
"6next 6hold?!",
|
||||
@@ -782,7 +782,6 @@ return{
|
||||
"Am G F G",
|
||||
"B2B2B???",
|
||||
"B2B2B2B does not exist.",
|
||||
"B2B2B2B exists?",
|
||||
"Back-to-Back Techrash, 10 Combo, PC!",
|
||||
"Be sure to give it your best shot again today!",
|
||||
"Bridge clear coming soon!",
|
||||
@@ -792,49 +791,60 @@ return{
|
||||
"Color clear coming soon!",
|
||||
"Decreasing DAS and ARR makes your game faster but harder to control.",
|
||||
"Did I just see a Back-to-Back-to-Back?",
|
||||
"Does B2B2B2B exists?",
|
||||
"Don't let a small glitch ruin your entire day!",
|
||||
"Don't look directly at the bugs!",
|
||||
"Enjoy the Techmino rotation system!",
|
||||
"Excellent, but let's go better next time…",
|
||||
"Find out what's in the settings!",
|
||||
"Found any bugs? Open up an issue in our GitHub page!",
|
||||
"Free-to-play block stacking game with a Battle Royale mode!",
|
||||
"git commit",
|
||||
"git push -f",
|
||||
"Got any suggestions? Post them in our Discord!",
|
||||
"Have you noticed what \"rotating\" does do to a block?",
|
||||
"Headphones recommended for a better experience.",
|
||||
"Hello world!",
|
||||
"I3 and L3 are the only two unique tetrominoes.",
|
||||
"hello world",
|
||||
"I3 and L3 are the only two unique triminoes.",
|
||||
"if a==true",
|
||||
"Increase your frame rate for a better experience.",
|
||||
"Initial [insert action] system can save you.",
|
||||
"Is B2B2B2B possible?",
|
||||
"It's possible to finish 40L without left/right button.",
|
||||
"It is loading! Not just a cutscene!",
|
||||
"It's possible to finish 40L without left/right buttons.",
|
||||
"It's possible to finish 40L without rotation buttons.",
|
||||
"Join our Discord!",
|
||||
"l-=-1",
|
||||
"Let the bass kick!",
|
||||
"Low frame rates reduce your gaming experience.",
|
||||
"LrL RlR LLr RRl RRR LLL FFF RfR RRf rFF",
|
||||
"Lua No.1",
|
||||
"Mix clear coming soon!",
|
||||
"Most of the button icons are realized by using self-drawn glyphs in the Unicode Private Use Area.",
|
||||
"Music of this game is made using Beepbox.",
|
||||
"Music too distracting? You can turn it off.",
|
||||
"No easter eggs in this menu if you have the simplistic style turned on!",
|
||||
"O-Spin Triple!",
|
||||
"OHHHHHHHHHHHHHH",
|
||||
"Online mode is planned - please be patient.",
|
||||
"Online mode is planned — please be patient.",
|
||||
"Play single-handedly!",
|
||||
"Playing good takes some time!",
|
||||
"Powered by LÖVE",
|
||||
"Powered by Un..LÖVE",
|
||||
"pps-0.01",
|
||||
"Secret number: 626",
|
||||
"Server down randomly",
|
||||
"Some requirements to achieve rank S are intentionally set to be difficult for even the best players.",
|
||||
"Soon you'll be able to play against friends and foes all over the world.",
|
||||
"Split clear coming soon!",
|
||||
"Surely loading! Not just a cutscene!",
|
||||
"sudo rm -rf /*",
|
||||
"Techmino = Technique + Tetromino",
|
||||
"Techmino has a Nspire-CX edition!",
|
||||
"Techmino is so fun!",
|
||||
"Techmino.app will damage your computer. You should move it to the Bin.",
|
||||
"TetroDictionary is now available in English.",
|
||||
"The names that appeared in the background of the Staff page is a list of our sponsors.",
|
||||
"The stacker future is yours in Techmino!",
|
||||
"There are four hidden modes in the game.",
|
||||
"There are several hidden modes in the game that cannot be entered using the map.",
|
||||
"There is a total of 18 different pentominoes.",
|
||||
"There is a total of 7 different tetrominoes.",
|
||||
"Try using multiple Hold Queues!",
|
||||
@@ -846,10 +856,12 @@ return{
|
||||
"What is this cheap UI & music smh",
|
||||
"while(false)",
|
||||
"You are a Grand Master!",
|
||||
"You can connect a keyboard to your phone or tablet!",
|
||||
"You are welcome to help us to make BGMs and SFXs!",
|
||||
"You can connect a keyboard to your phone or tablet (not functional on iOS though).",
|
||||
"You can customize the key mappings in settings!",
|
||||
"You can navigate the menu with a keyboard, but only in this screen.",
|
||||
"You can open the save directory from the Stats page.",
|
||||
"You can perform a spin with 28 of the 29 minos in this game; the exception being O1.",
|
||||
"You can perform a spin with 28 of the 29 minoes in this game; the exception being O1.",
|
||||
"You can set the spawning orientation for each tetromino.",
|
||||
"ZS JL T O I",
|
||||
{C.C,"Also try 15puzzle!"},
|
||||
@@ -858,16 +870,20 @@ return{
|
||||
{C.C,"Also try Orzmic!"},
|
||||
{C.C,"Also try osu!"},
|
||||
{C.C,"Also try Phigros!"},
|
||||
{C.C,"Also try Puyo Puyo!"},
|
||||
{C.C,"Also try Rubik's cube!"},
|
||||
{C.C,"Also try Terraria!"},
|
||||
{C.C,"Also try Touhou Project!"},
|
||||
{C.C,"Also try VVVVVV!"},
|
||||
{C.H,"REGRET!!"},
|
||||
{C.lP,"Secret number: 626"},
|
||||
{C.lR,"Z ",C.lG,"S ",C.lS,"J ",C.lO,"L ",C.lP,"T ",C.lY,"O ",C.lC,"I"},
|
||||
{C.lY,"COOL!!"},
|
||||
{C.N,"Lua",C.Z," No.1"},
|
||||
{C.P,"T-spin!"},
|
||||
{C.R,"\"DMCA abusing\""},
|
||||
{C.R,"\"Intellectual property law\""},
|
||||
{C.R,"DD",C.Z," Cannon=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"D",C.Z," Cannon"},
|
||||
{C.R,"DT",C.Z," Cannon=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"T",C.Z," Cannon"},
|
||||
{C.R,"LrL ",C.G,"RlR ",C.B,"LLr ",C.O,"RRl ",C.P,"RRR ",C.P,"LLL ",C.C,"FFF ",C.Y,"RfR ",C.Y,"RRf ",C.Y,"rFF"},
|
||||
{C.Y,"O-Spin Triple!"},
|
||||
|
||||
@@ -767,6 +767,8 @@ return{
|
||||
"……,合群了就会消失,不合群世界毁灭(指game over",
|
||||
"……,合群了就会消失,但消失不代表没有意义",
|
||||
"……,没有对比就没有伤害",
|
||||
"“Techmino.app”将对您的电脑造成伤害。您应该将它移到废纸篓。",
|
||||
"“TechminOS”",
|
||||
"(a+b)³=a³+3a²b+3ab²+b³",
|
||||
"(RUR'U')R'FR2U'R'U'(RUR'F')",
|
||||
"《按钮风格进化史》",
|
||||
@@ -778,10 +780,9 @@ return{
|
||||
"《游戏的意义》",
|
||||
"《知识的力量》",
|
||||
"《主题曲进化史》",
|
||||
"\"TechminOS\"",
|
||||
"↑↑↓↓←→←→BA",
|
||||
"$include<studio.h>",
|
||||
"0next 0hold。",
|
||||
"0next 0hold.",
|
||||
"11renPC!",
|
||||
"1next 0hold",
|
||||
"1next 1hold!",
|
||||
@@ -843,7 +844,7 @@ return{
|
||||
"多年小游戏玩家表示痛恨假加载,启动动画主要是在加载资源",
|
||||
"多hold现代块又回来了!",
|
||||
"俄罗斯方块完全可以作为电竞游戏",
|
||||
"发现有个\"隐形\"皮肤了吗",
|
||||
"发现有个“隐形”皮肤了吗",
|
||||
"发现Bug可以去GitHub上开个issue反馈",
|
||||
"方块不能吃",
|
||||
"方块不是你生活的全部,适当走出去看看",
|
||||
@@ -907,7 +908,6 @@ return{
|
||||
"每个块的颜色可以自定义",
|
||||
"每个虚拟按键都可以隐藏/显示,尺寸也可调",
|
||||
"免费吃鸡方块",
|
||||
"“Techmino.app”将对您的电脑造成伤害。您应该将它移到废纸篓。",
|
||||
"喵!",
|
||||
"魔方也是方块(确信",
|
||||
"能导致吃键的问题有很多,建议说清楚具体发生了什么并且录视频说明",
|
||||
@@ -926,7 +926,7 @@ return{
|
||||
"你知道吗:O-Spin是在0.8.20 (Fantastic Global Update II)中诞生的",
|
||||
"你知道吗:TRS旋转系统的最初形态在0.0.091726版本就存在了",
|
||||
"你准备好了吗?",
|
||||
"其实很多时候\"吃键\"是玩家对游戏机制不了解或者自己的操作问题导致的",
|
||||
"其实很多时候“吃键”是玩家对游戏机制不了解或者自己的操作问题导致的",
|
||||
"其实S和Z有四个方向(状态),虽然看起来只有两个",
|
||||
"请谨慎向没有方块经验的玩家推荐,会对本游戏的生存环境造成影响,感谢配合。",
|
||||
"请勿大力敲打设备!敲坏了就没有Techmino玩了",
|
||||
@@ -944,7 +944,7 @@ return{
|
||||
"使用固定堆叠方法达成20TSD难度很低",
|
||||
"试试用跳舞毯打块",
|
||||
"适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康生活",
|
||||
"手机玩也可以外接键盘哦",
|
||||
"手机玩也可以外接键盘哦(iOS除外)",
|
||||
"首页的机器人可能会不小心把自己给玩死",
|
||||
"术语不认识?去右边那个词典里查查吧",
|
||||
"水平是随着时间一点点提升的,不是几天几星期就能玩好的哦",
|
||||
@@ -1005,7 +1005,7 @@ return{
|
||||
"震惊,我只是一条凑数tip吗",
|
||||
"众所周知俄罗斯方块是经典编程练手游戏(?",
|
||||
"众所周知mac不能拿来玩游戏",
|
||||
"注意到方块\"旋转\"的时候到底发生了些什么吗?",
|
||||
"注意到方块“旋转”的时候到底发生了些什么吗?",
|
||||
"自定义场地可以画图实现逐页演示",
|
||||
"自己不确定的问题尽量不要教别人哦",
|
||||
"总共有400多条tip哦",
|
||||
@@ -1030,18 +1030,18 @@ return{
|
||||
"e^(πi)=-1",
|
||||
"e^(πi/2)=i",
|
||||
"e^(πi/4)=(1+i)/√2",
|
||||
"Farter:\"成天被夸赞'好玩'的\"",
|
||||
"Farter:\"可以形成方块圈子小中心话题,同作者一起衍生一些概念与梗的\"",
|
||||
"Farter:\"论方块的软工意义(就算这么小个范围内,各种取舍蒙混翻车现象都总会以很易懂的方式出现(\"",
|
||||
"Farter:\"民间微创新\"",
|
||||
"Farter:\"民间音le与图案\"",
|
||||
"Farter:\"民间游戏设计\"",
|
||||
"Farter:\"是方块爱好者研究平台\"",
|
||||
"Farter:\"是方块萌新入坑接收器\"",
|
||||
"Farter:\"是居家旅行装逼必备\"",
|
||||
"Farter:\"是民间UI动效艺术作品\"",
|
||||
"Farter:\"是一滩散乱的代码组成的蜜汁结构\"",
|
||||
"Farter:\"它是现在的techmino已发布版本\"",
|
||||
"Farter:“成天被夸赞'好玩'的”",
|
||||
"Farter:“可以形成方块圈子小中心话题,同作者一起衍生一些概念与梗的”",
|
||||
"Farter:“论方块的软工意义(就算这么小个范围内,各种取舍蒙混翻车现象都总会以很易懂的方式出现(”",
|
||||
"Farter:“民间微创新”",
|
||||
"Farter:“民间音lè与图案”",
|
||||
"Farter:“民间游戏设计”",
|
||||
"Farter:“是方块爱好者研究平台”",
|
||||
"Farter:“是方块萌新入坑接收器”",
|
||||
"Farter:“是居家旅行装逼必备”",
|
||||
"Farter:“是民间UI动效艺术作品”",
|
||||
"Farter:“是一滩散乱的代码组成的蜜汁结构”",
|
||||
"Farter:“它是现在的techmino已发布版本”",
|
||||
"fin neo iso 是满足tspin条件的特殊t2的名字",
|
||||
"git commit",
|
||||
"git push -f",
|
||||
@@ -1052,7 +1052,6 @@ return{
|
||||
"Let-The-Bass-Kick!",
|
||||
"MrZ是谁啊",
|
||||
"pps-0.01",
|
||||
"sudo rm -rf /*",
|
||||
"S△ABC=√(h(h-a)(h-b)(h-c)),h=(a+b+c)/2",
|
||||
"shutdown -h now",
|
||||
"sin(α+β)=SαCβ+SβCα",
|
||||
@@ -1062,6 +1061,7 @@ return{
|
||||
"sofunhowtoget",
|
||||
"Staff名单里飘过的是赞助榜单,喜欢本游戏的话可以给我们打赞助支持开发哦~",
|
||||
"STSD必死",
|
||||
"sudo rm -rf /*",
|
||||
"Techmino = Technique + tetromino",
|
||||
"Techmino 好玩!",
|
||||
"Techmino 濂界帺锛",
|
||||
@@ -1084,8 +1084,6 @@ return{
|
||||
"Z酱累了,Z酱不想更新",
|
||||
"Z酱只是个写代码的,懂什么方块",
|
||||
"Z块等身抱枕来一个(x",
|
||||
{C.A,"AQUA"},
|
||||
{C.B,"BLUE"},
|
||||
{C.C,"<PURE ",C.P,"MEMORY>"},
|
||||
{C.C,"15puzzle好玩!"},
|
||||
{C.C,"东方Project,好玩!"},
|
||||
@@ -1093,49 +1091,22 @@ return{
|
||||
{C.C,"噗哟噗哟好玩!"},
|
||||
{C.C,"扫雷好玩!"},
|
||||
{C.C,"Celeste好玩!"},
|
||||
{C.C,"CYAN"},
|
||||
{C.C,"Minecraft好玩!"},
|
||||
{C.C,"Orzmic好玩!"},
|
||||
{C.C,"Osu! 好玩!"},
|
||||
{C.C,"Osu! 好玩!"},
|
||||
{C.C,"Phigros好玩!"},
|
||||
{C.C,"Terraria好玩!"},
|
||||
{C.C,"VVVVVV好玩!"},
|
||||
{C.G,"GREEN"},
|
||||
{C.G,"mac快捷键: Cmd+[=返回上一级目录"},
|
||||
{C.G,"mac快捷键: Cmd+A=全选"},
|
||||
{C.G,"mac快捷键: Cmd+F=查找"},
|
||||
{C.G,"mac快捷键: Cmd+Option+Delete=永久删除文件 (技术人员别杠)"},
|
||||
{C.G,"mac快捷键: Cmd+Q=退出程序"},
|
||||
{C.G,"mac快捷键: Control+↑=打开调度中心"},
|
||||
{C.G,"mac快捷键: Cmd+Tab=切换App"},
|
||||
{C.G,"mac快捷键: Cmd+W=关闭当前窗口"},
|
||||
{C.G,"mac快捷键: Cmd+Z=撤销"},
|
||||
{C.G,"win快捷键: Alt+F4=关闭当前窗口"},
|
||||
{C.G,"win快捷键: Alt+Tab=切换窗口"},
|
||||
{C.G,"win快捷键: backspace=返回上一级目录"},
|
||||
{C.G,"win快捷键: Ctrl+鼠标滚轮=缩放"},
|
||||
{C.G,"win快捷键: Ctrl+A=全选"},
|
||||
{C.G,"win快捷键: Ctrl+Alt+Z=查看所有qq消息"},
|
||||
{C.G,"win快捷键: Ctrl+F=查找"},
|
||||
{C.G,"win快捷键: Ctrl+Tab=切换标签页"},
|
||||
{C.G,"win快捷键: Ctrl+W=关闭当前标签页"},
|
||||
{C.G,"win快捷键: shift+del=永久删除文件 (技术人员别杠)"},
|
||||
{C.H,"暂定段位:9"},
|
||||
{C.H,"REGRET!!"},
|
||||
{C.J,"JADE"},
|
||||
{C.L,"LIME"},
|
||||
{C.H,"REGRET!!"},
|
||||
{C.lC,"Xspin",C.Z,"是啥"},
|
||||
{C.lP,"口〇口",C.Z," 可爱!"},
|
||||
{C.lP,"秘密数字:626"},
|
||||
{C.lR,"Z ",C.lG,"S ",C.lS,"J ",C.lO,"L ",C.lP,"T ",C.lY,"O ",C.lC,"I"},
|
||||
{C.lS,"茶娘",C.Z," 可爱!"},
|
||||
{C.lY,"COOL!!"},
|
||||
{C.M,"MAGENTA"},
|
||||
{C.N,"Lua",C.Z,"天下第一"},
|
||||
{C.N,"NAVY"},
|
||||
{C.O,"ORANGE"},
|
||||
{C.P,"PURPLE"},
|
||||
{C.P,"T-spin!"},
|
||||
{C.P,"T-spin!"},
|
||||
{C.R,"《滥用DMCA》"},
|
||||
{C.R,"《知识产权法》"},
|
||||
{C.R,"本游戏难度上限很高,做好心理准备。"},
|
||||
@@ -1148,11 +1119,7 @@ return{
|
||||
{C.R,"DD",C.Z,"炮=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"D",C.Z,"炮"},
|
||||
{C.R,"DT",C.Z,"炮=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"T",C.Z,"炮"},
|
||||
{C.R,"LrL ",C.G,"RlR ",C.B,"LLr ",C.O,"RRl ",C.P,"RRR LLL ",C.C,"FFF ",C.Y,"RfR RRf rFF"},
|
||||
{C.R,"RED"},
|
||||
{C.S,"SEA"},
|
||||
{C.V,"VIOLET"},
|
||||
{C.W,"uid:225238922"},
|
||||
{C.W,"WINE"},
|
||||
{C.Y,"暂定段位:GM"},
|
||||
{C.Y,"暂定段位:M"},
|
||||
{C.Y,"暂定段位:MK"},
|
||||
@@ -1161,7 +1128,6 @@ return{
|
||||
{C.Y,"暂定段位:MV"},
|
||||
{C.Y,"Miya",C.Z," 可爱!"},
|
||||
{C.Y,"O-spin Triple!"},
|
||||
{C.Y,"YELLOW"},
|
||||
{C.Z,"1,2,",C.C,"⑨",C.Z,"!!!!!"},
|
||||
{C.Z,"效率药水",C.H," 效率提升 (8:00)"},
|
||||
{C.Z,"协调药水",C.H," MD减少 II(1:30)"},
|
||||
|
||||
@@ -761,15 +761,16 @@ return{
|
||||
['custom_puzzle']= {"习俗", "令人费解的"},
|
||||
},
|
||||
getTip={refuseCopy=true,
|
||||
'免费玩积木游戏与战斗皇家模式!',
|
||||
'你注意到什么了吗?"旋转的"去一个街区有什么用?',
|
||||
"免费玩积木游戏与战斗皇家模式!",
|
||||
"你注意到什么了吗?\"旋转的\"去一个街区有什么用?",
|
||||
":pog:",
|
||||
"(RUR'U')R'FR2U'R'U'(RUR'F')",
|
||||
"\"技术米诺.app\"不能打开,因为开发人员无法证实。",
|
||||
"\\jezevec/\\jezevec/\\jezevec/",
|
||||
"\\osk/\\osk/\\osk/",
|
||||
"↑↑↓↓←→←→文学士",
|
||||
"$包括<工作室.哈>",
|
||||
"0下一个0等待",
|
||||
"0下一个0等待.",
|
||||
"1下一个0等待",
|
||||
"1下一个1等待!",
|
||||
"1下一个6等待!",
|
||||
@@ -787,6 +788,7 @@ return{
|
||||
"今天一定要再次尽你最大的努力!",
|
||||
"桥很快就清了!",
|
||||
"你能熟练掌握这个现代而又熟悉的堆垛机吗?",
|
||||
"我的杰作就在这颗心里。",
|
||||
"在不谐和上可以找到英语的变更日志",
|
||||
"颜色很快就会清晰!",
|
||||
"降低直连式存储和抗共振环速度更快,但更难控制",
|
||||
@@ -796,6 +798,9 @@ return{
|
||||
"享受技术米诺旋转系统!",
|
||||
"太好了,但下次我们要做得更好",
|
||||
"找出设置中的内容!",
|
||||
"有虫子吗? 在我们的GitHub页面上打开一个问题!",
|
||||
"git提交",
|
||||
"git推-f",
|
||||
"有什么建议吗?在我们的不谐和中发布它们!",
|
||||
"建议佩戴耳机以获得更好的体验",
|
||||
"你好,世界!",
|
||||
@@ -804,34 +809,41 @@ return{
|
||||
"提高帧速率以获得更好的体验",
|
||||
"初始[插入操作]系统可以节省您的时间",
|
||||
"无需左/右按钮即可完成40升",
|
||||
"没有旋转按钮也可以完成40升",
|
||||
"它真的在加载!不仅仅是一个剪贴画!",
|
||||
"sudo rm -rf /*",
|
||||
"加入我们的纷争吧!",
|
||||
"让贝斯踢!",
|
||||
"l-=-1",
|
||||
"让贝斯来踢!",
|
||||
"LrL RlR LLr RRl RRR LLL FFF RfR RRf rFF",
|
||||
"低帧率减少你的游戏体验",
|
||||
"路亚一号",
|
||||
"快来了!",
|
||||
"大多数按钮图标是通过在Unicode私人使用地区中使用自绘制的符号来实现的",
|
||||
"这个游戏的音乐是使用Beepbox制作的",
|
||||
"音乐太让人分心了?你可以把它关掉",
|
||||
"如果您启用了简单化样式,则此菜单中没有复活节彩蛋!",
|
||||
"旋转三倍!",
|
||||
"哦哦哦哦哦哦哦哦",
|
||||
"哦哦哦哦哦哦哦哦!",
|
||||
"已计划在线模式-请耐心等待",
|
||||
"单枪匹马!",
|
||||
"玩得好需要一些时间!",
|
||||
"被爱冲昏头脑",
|
||||
"由联合国...LÖVE为动力",
|
||||
"pps-0.01",
|
||||
"秘密号码:626",
|
||||
"服务器随机停机",
|
||||
"一些达到S级的要求被故意设定为即使是最好的球员也很难达到",
|
||||
"很快,你就可以和全世界的朋友和敌人比赛了",
|
||||
"马上就来!",
|
||||
"技术米诺=技术+特特罗米诺",
|
||||
"技术米诺有一个Nspire CX版本!",
|
||||
"太有趣了!",
|
||||
"技术米诺太有趣了!",
|
||||
"\"技术米诺.app\"会损坏你的电脑。你应该把它移到垃圾桶里。",
|
||||
"\"TechminOS\"",
|
||||
"四联词典现在有英文版本",
|
||||
"在技术米诺,堆垛机的未来属于您!",
|
||||
"游戏中有四种隐藏模式",
|
||||
"出现在员工页面后台的名字是我们赞助商的名单",
|
||||
"在技术米诺,堆垛机的未来是你的!",
|
||||
"在游戏中有许多隐藏的模式, 不能使用地图进入",
|
||||
"总共有18种不同的五分音符",
|
||||
"总共有7种不同的河豚",
|
||||
"尝试使用多个等待队列!",
|
||||
@@ -843,6 +855,9 @@ return{
|
||||
"这个便宜的界面和音乐是什么",
|
||||
"当(假)",
|
||||
"你是大师!",
|
||||
"欢迎您帮助我们制作血糖监测和特效!",
|
||||
"你可以把键盘连接到你的手机或平板电脑上(虽然在iOS上没有这个功能)",
|
||||
"可以在设置中自定义键映射!",
|
||||
"您可以将键盘连接到手机或平板电脑!",
|
||||
"您可以使用键盘浏览菜单,但仅限于此屏幕",
|
||||
"您可以从统计数据页面打开保存目录",
|
||||
@@ -851,23 +866,57 @@ return{
|
||||
"ZS JL T O I",
|
||||
{C.C,"也试试15拼图!"},
|
||||
{C.C,"还试试我的世界!"},
|
||||
{C.C,"也试试噗噗噗!"},
|
||||
{C.C,"也试试扫雷艇!"},
|
||||
{C.C,"也试试奥兹米奇!"},
|
||||
{C.C,"也试试俄亥俄州立大学!"},
|
||||
{C.C,"也试试菲格罗斯!"},
|
||||
{C.C,"也试试魔方!"},
|
||||
{C.C,"也试试特拉里亚!"},
|
||||
{C.C,"也试试土后项目!"},
|
||||
{C.C,"也试试VVVVVV!"},
|
||||
{C.G,"绿色"},
|
||||
{C.G,"Mac快捷键:Cmd-A=选中所有项目"},
|
||||
{C.G,"Mac快捷键:Cmd-F=找到物品"},
|
||||
{C.G,"Mac快捷键:Cmd-Option-Delete=立即删除文件"},
|
||||
{C.G,"Mac快捷键:Cmd-Q=退出应用程序"},
|
||||
{C.G,"Mac快捷键:Control-↑=显示任务控制"},
|
||||
{C.G,"Mac快捷键:Cmd-Tab =你打开应用程序之间切换"},
|
||||
{C.G,"Mac快捷键:Cmd-W=关闭前窗口"},
|
||||
{C.G,"Mac快捷键:Cmd-Z=取消上一条命令"},
|
||||
{C.G,"Mac快捷键:Cmd-,=打开前面应用程序的首选项"},
|
||||
{C.G,"Windows快捷键:Alt+F4=关闭活动窗口"},
|
||||
{C.G,"Windows快捷键:Alt+Tab=在窗口之间切换"},
|
||||
{C.G,"Windows快捷键:Backspace=转到前一个文件夹"},
|
||||
{C.G,"Windows快捷键:Ctrl+鼠标滚轮=缩放"},
|
||||
{C.G,"Windows快捷键:Ctrl+A=选择所有项目"},
|
||||
{C.G,"Windows快捷键:Ctrl+F=查找项目"},
|
||||
{C.G,"Windows快捷键:Ctrl+Tab=在选项卡之间切换"},
|
||||
{C.G,"Windows快捷键:Ctrl+W=关闭活动选项卡"},
|
||||
{C.G,"Windows快捷键:shift+del=永久删除文件"},
|
||||
{C.J,"玉石"},
|
||||
{C.L,"酸橙"},
|
||||
{C.lP,"秘密号码: 626"},
|
||||
{C.H,"后悔!!!"},
|
||||
{C.lR,"Z ",C.lG,"S ",C.lS,"J ",C.lO,"L ",C.lP,"T ",C.lY,"O ",C.lC,"I"},
|
||||
{C.lY,"凉爽!!!"},
|
||||
{C.M,"品红色"},
|
||||
{C.N,"Lua",C.Z,"第一"},
|
||||
{C.N,"海军"},
|
||||
{C.O,"橙子"},
|
||||
{C.P,"紫色"},
|
||||
{C.P,"旋转!"},
|
||||
{C.R,"\"滥用数字千年版权法\""},
|
||||
{C.R,"\"知识产权法\""},
|
||||
{C.R,"DD",C.Z,"大炮=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"D",C.Z,"大炮"},
|
||||
{C.R,"DT",C.Z,"大炮=",C.P,"TS",C.R,"D",C.Z,"+",C.P,"TS",C.R,"T",C.Z,"大炮"},
|
||||
{C.R,"月球接收实验室",C.G,"RlR",C.B,"最后贷款人",C.O,"区域铁路线",C.P,"存款准备金率",C.P,"微光",C.C,"熔丝制造",C.Y,"自由罗斯科电台",C.Y,"雨林基金会基金",C.Y,"雨林基金会基金"},
|
||||
{C.R,"红色"},
|
||||
{C.S,"海洋"},
|
||||
{C.V,"紫罗兰"},
|
||||
{C.W,"葡萄酒"},
|
||||
{C.Y,"旋转三倍!"},
|
||||
{C.Y,"黄色"},
|
||||
{C.Z,"什么?",C.lC,"Xspin?"},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -799,6 +799,12 @@ local commands={}do
|
||||
"Usage: tas <on|off>",
|
||||
},
|
||||
}
|
||||
commands.tip={
|
||||
code=function()
|
||||
log(text.getTip())
|
||||
end,
|
||||
description="Show a random tip",
|
||||
}
|
||||
|
||||
--Network
|
||||
commands.switchhost={
|
||||
|
||||
@@ -14,7 +14,7 @@ return[=[
|
||||
工程编译到字节码; task-Z(新AI)
|
||||
无用货币; 收集向抽奖; 自适应UI; 多方块
|
||||
|
||||
0.16.3: 虫洞 Wormhole
|
||||
0.16.4: 虫洞 Wormhole
|
||||
新增:
|
||||
新连击音效
|
||||
新准备&开始音效
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
return{
|
||||
["apkCode"]=388,
|
||||
["code"]=1603,
|
||||
["string"]="V0.16.3@DEV",
|
||||
["code"]=1604,
|
||||
["string"]="V0.16.4",
|
||||
["room"]="ver A-0",
|
||||
["name"]="虫洞 Wormhole",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user