feat: prep the automation

This commit is contained in:
2026-04-24 00:40:40 +08:00
parent 7e4b707e84
commit 53f151af1d
32 changed files with 426 additions and 171 deletions
+28 -8
View File
@@ -8,24 +8,43 @@ on:
- 'scripts/**'
- 'scenes/**'
- 'assets/**'
- 'assets/data/version.json'
- 'CHANGELOG_DRAFT.md'
workflow_dispatch:
jobs:
build-and-deploy-patch:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Source Code
uses: actions/checkout@v4
with:
fetch-depth: 2
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
# ── 1. Auto-generate version.json from CHANGELOG_DRAFT.md ────────────
- name: Generate Version JSON & Bump Version
run: python3 tools/generate_version_json.py
# ── 2. Commit bumped files back to the repo ───────────────────────────
- name: Commit Version Bump
run: |
git config user.name "PatchBot"
git config user.email "action@github.com"
git add assets/data/version.json project.godot CHANGELOG_DRAFT.md
git diff --staged --quiet || git commit -m "[AUTO] Version bump & changelog update"
git push
# ── 3. Detect changed files for patch PCK ────────────────────────────
- name: Generate Changed Files List
run: |
git diff --name-only HEAD^ HEAD > changed_files.txt
git diff --name-only HEAD^ HEAD -- 'scripts/**' 'scenes/**' 'assets/**' > changed_files.txt
echo "Files to patch:"
cat changed_files.txt
# ── 4. Build patch.pck ────────────────────────────────────────────────
- name: Setup Godot
uses: chickensoft-games/setup-godot@v1
with:
@@ -35,8 +54,8 @@ jobs:
- name: Run Build Patch Script
run: godot --headless -s tools/build_patch.gd
# Push the patch files directly to the public repository structure!
- name: Push to Public Repository
# ── 5. Push patch.pck to public repo ─────────────────────────────────
- name: Push patch.pck to Public Repository
uses: dmnemec/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.PUBLIC_REPO_PAT }}
@@ -46,9 +65,10 @@ jobs:
destination_folder: 'latest'
user_email: 'action@github.com'
user_name: 'PatchBot'
commit_message: '[AUTO] Pushed new patch.pck via CI'
commit_message: '[AUTO] Pushed new patch.pck'
- name: Push Version Manifest to Public Repository
# ── 6. Push version.json to public repo ──────────────────────────────
- name: Push version.json to Public Repository
uses: dmnemec/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.PUBLIC_REPO_PAT }}
@@ -58,4 +78,4 @@ jobs:
destination_folder: 'latest'
user_email: 'action@github.com'
user_name: 'PatchBot'
commit_message: '[AUTO] Pushed new version.json via CI'
commit_message: '[AUTO] Pushed new version.json'
+4
View File
@@ -0,0 +1,4 @@
## [NEXT]
- Added Gacha system with Star and Gold banners (1x & 10x pulls)
- Fragment Craft system — collect drops to craft exclusive skins
- Fixed boot screen stuck on "Checking versions..."
@@ -19,4 +19,4 @@
],
"ref_path": ""
}
}
}
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cb3fdeskrctep"
path="res://.godot/imported/bob_cloth_grey_pant.png-fa010f7183e78f14eb9656d3651932ac.ctex"
path.s3tc="res://.godot/imported/bob_cloth_grey_pant.png-fa010f7183e78f14eb9656d3651932ac.s3tc.ctex"
path.etc2="res://.godot/imported/bob_cloth_grey_pant.png-fa010f7183e78f14eb9656d3651932ac.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/bob_cloth_grey_pant.png"
dest_files=["res://.godot/imported/bob_cloth_grey_pant.png-fa010f7183e78f14eb9656d3651932ac.ctex"]
dest_files=["res://.godot/imported/bob_cloth_grey_pant.png-fa010f7183e78f14eb9656d3651932ac.s3tc.ctex", "res://.godot/imported/bob_cloth_grey_pant.png-fa010f7183e78f14eb9656d3651932ac.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cp1sj2fax8s23"
path="res://.godot/imported/bob_cloth_red_pant.png-40b77712cac1150279e39edc40f68ce9.ctex"
path.s3tc="res://.godot/imported/bob_cloth_red_pant.png-40b77712cac1150279e39edc40f68ce9.s3tc.ctex"
path.etc2="res://.godot/imported/bob_cloth_red_pant.png-40b77712cac1150279e39edc40f68ce9.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/bob_cloth_red_pant.png"
dest_files=["res://.godot/imported/bob_cloth_red_pant.png-40b77712cac1150279e39edc40f68ce9.ctex"]
dest_files=["res://.godot/imported/bob_cloth_red_pant.png-40b77712cac1150279e39edc40f68ce9.s3tc.ctex", "res://.godot/imported/bob_cloth_red_pant.png-40b77712cac1150279e39edc40f68ce9.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cm53ribjw530m"
path="res://.godot/imported/bob_cloth_yellow_pant.png-4386f3df6b3148db3f2f5270a87dbf57.ctex"
path.s3tc="res://.godot/imported/bob_cloth_yellow_pant.png-4386f3df6b3148db3f2f5270a87dbf57.s3tc.ctex"
path.etc2="res://.godot/imported/bob_cloth_yellow_pant.png-4386f3df6b3148db3f2f5270a87dbf57.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/bob_cloth_yellow_pant.png"
dest_files=["res://.godot/imported/bob_cloth_yellow_pant.png-4386f3df6b3148db3f2f5270a87dbf57.ctex"]
dest_files=["res://.godot/imported/bob_cloth_yellow_pant.png-4386f3df6b3148db3f2f5270a87dbf57.s3tc.ctex", "res://.godot/imported/bob_cloth_yellow_pant.png-4386f3df6b3148db3f2f5270a87dbf57.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://blrrrtw3uv8kw"
path="res://.godot/imported/bob_gloves_yellow.png-33a8bc0847e2211358e3b41594779f08.ctex"
path.s3tc="res://.godot/imported/bob_gloves_yellow.png-33a8bc0847e2211358e3b41594779f08.s3tc.ctex"
path.etc2="res://.godot/imported/bob_gloves_yellow.png-33a8bc0847e2211358e3b41594779f08.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/bob_gloves_yellow.png"
dest_files=["res://.godot/imported/bob_gloves_yellow.png-33a8bc0847e2211358e3b41594779f08.ctex"]
dest_files=["res://.godot/imported/bob_gloves_yellow.png-33a8bc0847e2211358e3b41594779f08.s3tc.ctex", "res://.godot/imported/bob_gloves_yellow.png-33a8bc0847e2211358e3b41594779f08.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c65wl2er1u413"
path="res://.godot/imported/bob_hat_red.png-245e3521d71544859cf527fb750fc029.ctex"
path.s3tc="res://.godot/imported/bob_hat_red.png-245e3521d71544859cf527fb750fc029.s3tc.ctex"
path.etc2="res://.godot/imported/bob_hat_red.png-245e3521d71544859cf527fb750fc029.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/bob_hat_red.png"
dest_files=["res://.godot/imported/bob_hat_red.png-245e3521d71544859cf527fb750fc029.ctex"]
dest_files=["res://.godot/imported/bob_hat_red.png-245e3521d71544859cf527fb750fc029.s3tc.ctex", "res://.godot/imported/bob_hat_red.png-245e3521d71544859cf527fb750fc029.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cy7jsxj16trfn"
path="res://.godot/imported/bob_hat_yellow.png-d82efee98e652003550c16c8e67fadd5.ctex"
path.s3tc="res://.godot/imported/bob_hat_yellow.png-d82efee98e652003550c16c8e67fadd5.s3tc.ctex"
path.etc2="res://.godot/imported/bob_hat_yellow.png-d82efee98e652003550c16c8e67fadd5.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/bob_hat_yellow.png"
dest_files=["res://.godot/imported/bob_hat_yellow.png-d82efee98e652003550c16c8e67fadd5.ctex"]
dest_files=["res://.godot/imported/bob_hat_yellow.png-d82efee98e652003550c16c8e67fadd5.s3tc.ctex", "res://.godot/imported/bob_hat_yellow.png-d82efee98e652003550c16c8e67fadd5.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dcjptiyl5b7bj"
path="res://.godot/imported/gatot_cloth_grey_pant.png-41f98c153b53c31ae587b2ea6ea454dc.ctex"
path.s3tc="res://.godot/imported/gatot_cloth_grey_pant.png-41f98c153b53c31ae587b2ea6ea454dc.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_cloth_grey_pant.png-41f98c153b53c31ae587b2ea6ea454dc.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_cloth_grey_pant.png"
dest_files=["res://.godot/imported/gatot_cloth_grey_pant.png-41f98c153b53c31ae587b2ea6ea454dc.ctex"]
dest_files=["res://.godot/imported/gatot_cloth_grey_pant.png-41f98c153b53c31ae587b2ea6ea454dc.s3tc.ctex", "res://.godot/imported/gatot_cloth_grey_pant.png-41f98c153b53c31ae587b2ea6ea454dc.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bftqhgrf5s05u"
path="res://.godot/imported/gatot_cloth_red_pant.png-39ab8676dc3d8d8aec6016ae6b7139b0.ctex"
path.s3tc="res://.godot/imported/gatot_cloth_red_pant.png-39ab8676dc3d8d8aec6016ae6b7139b0.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_cloth_red_pant.png-39ab8676dc3d8d8aec6016ae6b7139b0.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_cloth_red_pant.png"
dest_files=["res://.godot/imported/gatot_cloth_red_pant.png-39ab8676dc3d8d8aec6016ae6b7139b0.ctex"]
dest_files=["res://.godot/imported/gatot_cloth_red_pant.png-39ab8676dc3d8d8aec6016ae6b7139b0.s3tc.ctex", "res://.godot/imported/gatot_cloth_red_pant.png-39ab8676dc3d8d8aec6016ae6b7139b0.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c4cyf66d2dwgt"
path="res://.godot/imported/gatot_cloth_yellow_pant.png-79371cbbe0ed3f9f40d438e439d547bf.ctex"
path.s3tc="res://.godot/imported/gatot_cloth_yellow_pant.png-79371cbbe0ed3f9f40d438e439d547bf.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_cloth_yellow_pant.png-79371cbbe0ed3f9f40d438e439d547bf.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_cloth_yellow_pant.png"
dest_files=["res://.godot/imported/gatot_cloth_yellow_pant.png-79371cbbe0ed3f9f40d438e439d547bf.ctex"]
dest_files=["res://.godot/imported/gatot_cloth_yellow_pant.png-79371cbbe0ed3f9f40d438e439d547bf.s3tc.ctex", "res://.godot/imported/gatot_cloth_yellow_pant.png-79371cbbe0ed3f9f40d438e439d547bf.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cju2mhtumxp6h"
path="res://.godot/imported/gatot_gloves_green.png-353d568fc736c87799f2c272fdda8262.ctex"
path.s3tc="res://.godot/imported/gatot_gloves_green.png-353d568fc736c87799f2c272fdda8262.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_gloves_green.png-353d568fc736c87799f2c272fdda8262.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_gloves_green.png"
dest_files=["res://.godot/imported/gatot_gloves_green.png-353d568fc736c87799f2c272fdda8262.ctex"]
dest_files=["res://.godot/imported/gatot_gloves_green.png-353d568fc736c87799f2c272fdda8262.s3tc.ctex", "res://.godot/imported/gatot_gloves_green.png-353d568fc736c87799f2c272fdda8262.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://hxd7b344ct8h"
path="res://.godot/imported/gatot_gloves_red.png-dce7c17404f6d5c0340d4309331b18a1.ctex"
path.s3tc="res://.godot/imported/gatot_gloves_red.png-dce7c17404f6d5c0340d4309331b18a1.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_gloves_red.png-dce7c17404f6d5c0340d4309331b18a1.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_gloves_red.png"
dest_files=["res://.godot/imported/gatot_gloves_red.png-dce7c17404f6d5c0340d4309331b18a1.ctex"]
dest_files=["res://.godot/imported/gatot_gloves_red.png-dce7c17404f6d5c0340d4309331b18a1.s3tc.ctex", "res://.godot/imported/gatot_gloves_red.png-dce7c17404f6d5c0340d4309331b18a1.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cyx1tafb7ynju"
path="res://.godot/imported/gatot_gloves_yellow.png-1f071168f37d5286a650a9a9c297077a.ctex"
path.s3tc="res://.godot/imported/gatot_gloves_yellow.png-1f071168f37d5286a650a9a9c297077a.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_gloves_yellow.png-1f071168f37d5286a650a9a9c297077a.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_gloves_yellow.png"
dest_files=["res://.godot/imported/gatot_gloves_yellow.png-1f071168f37d5286a650a9a9c297077a.ctex"]
dest_files=["res://.godot/imported/gatot_gloves_yellow.png-1f071168f37d5286a650a9a9c297077a.s3tc.ctex", "res://.godot/imported/gatot_gloves_yellow.png-1f071168f37d5286a650a9a9c297077a.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dvdmyjoupu854"
path="res://.godot/imported/gatot_hat_blue.png-b907a96952b46d1ccc710e941b5c8cf4.ctex"
path.s3tc="res://.godot/imported/gatot_hat_blue.png-b907a96952b46d1ccc710e941b5c8cf4.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_hat_blue.png-b907a96952b46d1ccc710e941b5c8cf4.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_hat_blue.png"
dest_files=["res://.godot/imported/gatot_hat_blue.png-b907a96952b46d1ccc710e941b5c8cf4.ctex"]
dest_files=["res://.godot/imported/gatot_hat_blue.png-b907a96952b46d1ccc710e941b5c8cf4.s3tc.ctex", "res://.godot/imported/gatot_hat_blue.png-b907a96952b46d1ccc710e941b5c8cf4.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b57ybp6hxfaii"
path="res://.godot/imported/gatot_hat_green.png-3307329708a7bfd671001d0c1ff187f0.ctex"
path.s3tc="res://.godot/imported/gatot_hat_green.png-3307329708a7bfd671001d0c1ff187f0.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_hat_green.png-3307329708a7bfd671001d0c1ff187f0.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_hat_green.png"
dest_files=["res://.godot/imported/gatot_hat_green.png-3307329708a7bfd671001d0c1ff187f0.ctex"]
dest_files=["res://.godot/imported/gatot_hat_green.png-3307329708a7bfd671001d0c1ff187f0.s3tc.ctex", "res://.godot/imported/gatot_hat_green.png-3307329708a7bfd671001d0c1ff187f0.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://duxbwwr3bwrly"
path="res://.godot/imported/gatot_hat_red.png-a1d58ef9c2d5cec80a913916405123a7.ctex"
path.s3tc="res://.godot/imported/gatot_hat_red.png-a1d58ef9c2d5cec80a913916405123a7.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_hat_red.png-a1d58ef9c2d5cec80a913916405123a7.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_hat_red.png"
dest_files=["res://.godot/imported/gatot_hat_red.png-a1d58ef9c2d5cec80a913916405123a7.ctex"]
dest_files=["res://.godot/imported/gatot_hat_red.png-a1d58ef9c2d5cec80a913916405123a7.s3tc.ctex", "res://.godot/imported/gatot_hat_red.png-a1d58ef9c2d5cec80a913916405123a7.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://btlx0dwaob1xi"
path="res://.godot/imported/gatot_hat_yellow.png-624dfd6eae34b457896b846fa02aaa1e.ctex"
path.s3tc="res://.godot/imported/gatot_hat_yellow.png-624dfd6eae34b457896b846fa02aaa1e.s3tc.ctex"
path.etc2="res://.godot/imported/gatot_hat_yellow.png-624dfd6eae34b457896b846fa02aaa1e.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/gatot_hat_yellow.png"
dest_files=["res://.godot/imported/gatot_hat_yellow.png-624dfd6eae34b457896b846fa02aaa1e.ctex"]
dest_files=["res://.godot/imported/gatot_hat_yellow.png-624dfd6eae34b457896b846fa02aaa1e.s3tc.ctex", "res://.godot/imported/gatot_hat_yellow.png-624dfd6eae34b457896b846fa02aaa1e.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bmwnhr6xere3t"
path="res://.godot/imported/masbro_cloth_grey_pant.png-8de527c7c27127db6b227a12290216be.ctex"
path.s3tc="res://.godot/imported/masbro_cloth_grey_pant.png-8de527c7c27127db6b227a12290216be.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_cloth_grey_pant.png-8de527c7c27127db6b227a12290216be.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_cloth_grey_pant.png"
dest_files=["res://.godot/imported/masbro_cloth_grey_pant.png-8de527c7c27127db6b227a12290216be.ctex"]
dest_files=["res://.godot/imported/masbro_cloth_grey_pant.png-8de527c7c27127db6b227a12290216be.s3tc.ctex", "res://.godot/imported/masbro_cloth_grey_pant.png-8de527c7c27127db6b227a12290216be.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://s5erj2bmnkg"
path="res://.godot/imported/masbro_cloth_ori_pant.png-003723a0e220f5b63371c14edf2dfd54.ctex"
path.s3tc="res://.godot/imported/masbro_cloth_ori_pant.png-003723a0e220f5b63371c14edf2dfd54.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_cloth_ori_pant.png-003723a0e220f5b63371c14edf2dfd54.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_cloth_ori_pant.png"
dest_files=["res://.godot/imported/masbro_cloth_ori_pant.png-003723a0e220f5b63371c14edf2dfd54.ctex"]
dest_files=["res://.godot/imported/masbro_cloth_ori_pant.png-003723a0e220f5b63371c14edf2dfd54.s3tc.ctex", "res://.godot/imported/masbro_cloth_ori_pant.png-003723a0e220f5b63371c14edf2dfd54.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://d4m8e15wne0u"
path="res://.godot/imported/masbro_gloves_blue.png-73a428e11462c2e1b917f4e8554145c1.ctex"
path.s3tc="res://.godot/imported/masbro_gloves_blue.png-73a428e11462c2e1b917f4e8554145c1.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_gloves_blue.png-73a428e11462c2e1b917f4e8554145c1.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_gloves_blue.png"
dest_files=["res://.godot/imported/masbro_gloves_blue.png-73a428e11462c2e1b917f4e8554145c1.ctex"]
dest_files=["res://.godot/imported/masbro_gloves_blue.png-73a428e11462c2e1b917f4e8554145c1.s3tc.ctex", "res://.godot/imported/masbro_gloves_blue.png-73a428e11462c2e1b917f4e8554145c1.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b37t7jtthrrtw"
path="res://.godot/imported/masbro_gloves_green.png-3fa68d578af809cbf03326ef73867611.ctex"
path.s3tc="res://.godot/imported/masbro_gloves_green.png-3fa68d578af809cbf03326ef73867611.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_gloves_green.png-3fa68d578af809cbf03326ef73867611.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_gloves_green.png"
dest_files=["res://.godot/imported/masbro_gloves_green.png-3fa68d578af809cbf03326ef73867611.ctex"]
dest_files=["res://.godot/imported/masbro_gloves_green.png-3fa68d578af809cbf03326ef73867611.s3tc.ctex", "res://.godot/imported/masbro_gloves_green.png-3fa68d578af809cbf03326ef73867611.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cgwu20ifkhfyi"
path="res://.godot/imported/masbro_gloves_red.png-2ec0d5bb0f3ff6d7067d7a03bc3511a2.ctex"
path.s3tc="res://.godot/imported/masbro_gloves_red.png-2ec0d5bb0f3ff6d7067d7a03bc3511a2.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_gloves_red.png-2ec0d5bb0f3ff6d7067d7a03bc3511a2.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_gloves_red.png"
dest_files=["res://.godot/imported/masbro_gloves_red.png-2ec0d5bb0f3ff6d7067d7a03bc3511a2.ctex"]
dest_files=["res://.godot/imported/masbro_gloves_red.png-2ec0d5bb0f3ff6d7067d7a03bc3511a2.s3tc.ctex", "res://.godot/imported/masbro_gloves_red.png-2ec0d5bb0f3ff6d7067d7a03bc3511a2.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://clrbtu0qn0owf"
path="res://.godot/imported/masbro_gloves_yellow.png-5e6a744a93855952d24f2de9d729cbe2.ctex"
path.s3tc="res://.godot/imported/masbro_gloves_yellow.png-5e6a744a93855952d24f2de9d729cbe2.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_gloves_yellow.png-5e6a744a93855952d24f2de9d729cbe2.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_gloves_yellow.png"
dest_files=["res://.godot/imported/masbro_gloves_yellow.png-5e6a744a93855952d24f2de9d729cbe2.ctex"]
dest_files=["res://.godot/imported/masbro_gloves_yellow.png-5e6a744a93855952d24f2de9d729cbe2.s3tc.ctex", "res://.godot/imported/masbro_gloves_yellow.png-5e6a744a93855952d24f2de9d729cbe2.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bovejv3j6h3xm"
path="res://.godot/imported/masbro_hat_blue.png-62d6988fab47484b17f5e74d9129fa33.ctex"
path.s3tc="res://.godot/imported/masbro_hat_blue.png-62d6988fab47484b17f5e74d9129fa33.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_hat_blue.png-62d6988fab47484b17f5e74d9129fa33.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_hat_blue.png"
dest_files=["res://.godot/imported/masbro_hat_blue.png-62d6988fab47484b17f5e74d9129fa33.ctex"]
dest_files=["res://.godot/imported/masbro_hat_blue.png-62d6988fab47484b17f5e74d9129fa33.s3tc.ctex", "res://.godot/imported/masbro_hat_blue.png-62d6988fab47484b17f5e74d9129fa33.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c2u7bgs1asnw2"
path="res://.godot/imported/masbro_hat_green.png-f633bd1fdca5a9eb978890890f370ce9.ctex"
path.s3tc="res://.godot/imported/masbro_hat_green.png-f633bd1fdca5a9eb978890890f370ce9.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_hat_green.png-f633bd1fdca5a9eb978890890f370ce9.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_hat_green.png"
dest_files=["res://.godot/imported/masbro_hat_green.png-f633bd1fdca5a9eb978890890f370ce9.ctex"]
dest_files=["res://.godot/imported/masbro_hat_green.png-f633bd1fdca5a9eb978890890f370ce9.s3tc.ctex", "res://.godot/imported/masbro_hat_green.png-f633bd1fdca5a9eb978890890f370ce9.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bvxy8741y1rkw"
path="res://.godot/imported/masbro_hat_red.png-cd4210cf1ecc3216bfa7e2ed5bd3227a.ctex"
path.s3tc="res://.godot/imported/masbro_hat_red.png-cd4210cf1ecc3216bfa7e2ed5bd3227a.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_hat_red.png-cd4210cf1ecc3216bfa7e2ed5bd3227a.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_hat_red.png"
dest_files=["res://.godot/imported/masbro_hat_red.png-cd4210cf1ecc3216bfa7e2ed5bd3227a.ctex"]
dest_files=["res://.godot/imported/masbro_hat_red.png-cd4210cf1ecc3216bfa7e2ed5bd3227a.s3tc.ctex", "res://.godot/imported/masbro_hat_red.png-cd4210cf1ecc3216bfa7e2ed5bd3227a.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
@@ -3,19 +3,21 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://u8280glj8iyd"
path="res://.godot/imported/masbro_hat_yellow.png-0e88a6048fd9ed11a8e3887dd016737d.ctex"
path.s3tc="res://.godot/imported/masbro_hat_yellow.png-0e88a6048fd9ed11a8e3887dd016737d.s3tc.ctex"
path.etc2="res://.godot/imported/masbro_hat_yellow.png-0e88a6048fd9ed11a8e3887dd016737d.etc2.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://assets/characters/skins/tex/masbro_hat_yellow.png"
dest_files=["res://.godot/imported/masbro_hat_yellow.png-0e88a6048fd9ed11a8e3887dd016737d.ctex"]
dest_files=["res://.godot/imported/masbro_hat_yellow.png-0e88a6048fd9ed11a8e3887dd016737d.s3tc.ctex", "res://.godot/imported/masbro_hat_yellow.png-0e88a6048fd9ed11a8e3887dd016737d.etc2.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +25,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +39,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
+1
View File
@@ -6,6 +6,7 @@
"version": "2.1.5",
"date": "2026-04-20",
"pck_url": "https://raw.githubusercontent.com/adtpdn/tekton-updates/main/latest/patch.pck",
"pck_size": 0,
"changelog": [
"Initial release of the new patching system.",
"Added boot screen paginator."
+56 -6
View File
@@ -29,6 +29,7 @@ var http_request: HTTPRequest
var download_request: HTTPRequest
var is_downloading: bool = false
var pending_pck_path: String = ""
var _timeout_timer: Timer
func _ready() -> void:
# Load embedded version
@@ -44,6 +45,14 @@ func _ready() -> void:
download_request.name = "DownloadRequest"
add_child(download_request)
download_request.request_completed.connect(_on_download_completed)
# Timeout fallback — if no response in 5s, use local manifest
_timeout_timer = Timer.new()
_timeout_timer.name = "VersionCheckTimeout"
_timeout_timer.wait_time = 5.0
_timeout_timer.one_shot = true
_timeout_timer.timeout.connect(_on_version_timeout)
add_child(_timeout_timer)
func _load_embedded_version() -> void:
# Try to load version from embedded file first
@@ -108,29 +117,68 @@ static func get_platform_name() -> String:
func check_for_updates() -> void:
emit_signal("update_check_started")
print("[GameUpdateManager] Checking for updates...")
# In the editor, skip network fetch — use local manifest directly
if Engine.is_editor_hint() or OS.has_feature("editor"):
print("[GameUpdateManager] Editor mode — using local manifest.")
_load_local_manifest()
return
print("[GameUpdateManager] Checking for updates from: ", VERSION_MANIFEST_URL)
_timeout_timer.start()
var error := http_request.request(VERSION_MANIFEST_URL)
if error != OK:
emit_signal("update_check_failed", "Failed to connect to update server")
_timeout_timer.stop()
push_warning("[GameUpdateManager] Request failed instantly, using local manifest.")
_load_local_manifest()
func _on_version_timeout() -> void:
push_warning("[GameUpdateManager] Version check timed out, using local manifest.")
http_request.cancel_request()
_load_local_manifest()
func _on_version_check_completed(result: int, response_code: int, _headers: PackedStringArray, body: PackedByteArray) -> void:
_timeout_timer.stop()
if result != HTTPRequest.RESULT_SUCCESS:
emit_signal("update_check_failed", "Network error")
push_warning("[GameUpdateManager] Network error (result=%d), falling back to local manifest." % result)
_load_local_manifest()
return
if response_code != 200:
emit_signal("update_check_failed", "Server error: " + str(response_code))
push_warning("[GameUpdateManager] Server returned %d, falling back to local manifest." % response_code)
_load_local_manifest()
return
var json := JSON.new()
if json.parse(body.get_string_from_utf8()) != OK:
emit_signal("update_check_failed", "Invalid update data")
push_warning("[GameUpdateManager] JSON parse failed, falling back to local manifest.")
_load_local_manifest()
return
manifest_data = json.data
_process_manifest()
func _load_local_manifest() -> void:
const LOCAL_MANIFEST := "res://assets/data/version.json"
if not FileAccess.file_exists(LOCAL_MANIFEST):
emit_signal("update_check_failed", "No manifest available (offline)")
return
var f := FileAccess.open(LOCAL_MANIFEST, FileAccess.READ)
if not f:
emit_signal("update_check_failed", "Could not read local manifest")
return
var parsed = JSON.parse_string(f.get_as_text())
if not parsed is Dictionary:
emit_signal("update_check_failed", "Invalid local manifest JSON")
return
manifest_data = parsed
_process_manifest()
func _process_manifest() -> void:
latest_version = manifest_data.get("latest_version", current_version)
print("[GameUpdateManager] current_version=%s latest_version=%s" % [current_version, latest_version])
var has_update := _compare_versions(current_version, latest_version) < 0
var min_version: String = manifest_data.get("minimum_app_version", "0.0.0")
var needs_store_update := _compare_versions(current_version, min_version) < 0
@@ -144,7 +192,9 @@ func _on_version_check_completed(result: int, response_code: int, _headers: Pack
"can_patch": _can_apply_patch() and not needs_store_update
}
print("[GameUpdateManager] Update check complete - Has update: ", has_update)
print("[GameUpdateManager] has_update=%s can_patch=%s needs_store=%s" % [
has_update, update_info.can_patch, needs_store_update
])
emit_signal("update_check_completed", has_update, update_info)
if needs_store_update and is_mobile():
+128
View File
@@ -0,0 +1,128 @@
#!/usr/bin/env python3
"""
generate_version_json.py
Auto-generates version.json by:
1. Reading the current version from project.godot
2. Auto-bumping the PATCH number
3. Reading player-friendly entries from CHANGELOG_DRAFT.md
4. Injecting them into version.json with a date stamp
5. Clearing the [NEXT] section in CHANGELOG_DRAFT.md
Run: python3 tools/generate_version_json.py
"""
import json
import re
import os
from datetime import date
PROJECT_GODOT = "project.godot"
CHANGELOG_DRAFT = "CHANGELOG_DRAFT.md"
VERSION_JSON = "assets/data/version.json"
MANIFEST_URL = "https://raw.githubusercontent.com/adtpdn/tekton-updates/main/latest/patch.pck"
# ─── 1. Read current version from project.godot ──────────────────────────────
version_str = "2.1.5"
with open(PROJECT_GODOT, "r") as f:
for line in f:
m = re.search(r'config/version="([^"]+)"', line)
if m:
version_str = m.group(1)
break
# ─── 2. Auto-bump patch number ───────────────────────────────────────────────
parts = version_str.split(".")
parts[-1] = str(int(parts[-1]) + 1)
new_version = ".".join(parts)
print(f"Version: {version_str}{new_version}")
# ─── 3. Read CHANGELOG_DRAFT.md ──────────────────────────────────────────────
changelog_lines = []
in_next = False
remaining_lines = []
with open(CHANGELOG_DRAFT, "r", encoding="utf-8") as f:
raw = f.readlines()
for line in raw:
if line.strip() == "## [NEXT]":
in_next = True
continue
if in_next:
# Stop at next ## heading
if line.startswith("## ") and "[NEXT]" not in line:
in_next = False
remaining_lines.append(line)
elif line.strip():
# Strip leading "- " and emoji bullet
clean = line.strip().lstrip("- ").strip()
changelog_lines.append(clean)
else:
remaining_lines.append(line)
if not changelog_lines:
print("⚠ No [NEXT] entries found in CHANGELOG_DRAFT.md — aborting.")
exit(1)
print(f"Changelog entries: {len(changelog_lines)}")
# ─── 4. Load existing version.json ───────────────────────────────────────────
existing = {"releases": []}
if os.path.exists(VERSION_JSON):
with open(VERSION_JSON, "r") as f:
existing = json.load(f)
# ─── 5. Prepend new release ───────────────────────────────────────────────────
today = date.today().isoformat()
new_release = {
"version": new_version,
"date": today,
"pck_url": MANIFEST_URL,
"pck_size": 0,
"changelog": changelog_lines
}
# Remove any existing entry with the same version
existing["releases"] = [r for r in existing["releases"] if r.get("version") != new_version]
existing["releases"].insert(0, new_release)
manifest = {
"latest_version": new_version,
"minimum_app_version": existing.get("minimum_app_version", "2.1.0"),
"releases": existing["releases"]
}
with open(VERSION_JSON, "w") as f:
json.dump(manifest, f, indent="\t")
f.write("\n")
print(f"✅ Written: {VERSION_JSON} (latest={new_version})")
# ─── 6. Bump version in project.godot ────────────────────────────────────────
with open(PROJECT_GODOT, "r") as f:
godot_content = f.read()
godot_content = re.sub(
r'(config/version=")[^"]+(")',
rf'\g<1>{new_version}\g<2>',
godot_content
)
with open(PROJECT_GODOT, "w") as f:
f.write(godot_content)
print(f"✅ Bumped project.godot → {new_version}")
# ─── 7. Clear [NEXT] in CHANGELOG_DRAFT.md ───────────────────────────────────
archived_header = f"## [{new_version}] — {today}\n"
archived_entries = "".join(f"- {line}\n" for line in changelog_lines)
new_draft = "## [NEXT]\n\n" + archived_header + archived_entries
if remaining_lines:
new_draft += "\n" + "".join(remaining_lines)
with open(CHANGELOG_DRAFT, "w", encoding="utf-8") as f:
f.write(new_draft)
print(f"✅ Cleared [NEXT] in {CHANGELOG_DRAFT}, archived as [{new_version}]")
print(f"\nDone! Push to patch-release to deploy v{new_version}.")