37 Commits

Author SHA1 Message Date
ffd88c02e1 claude
Some checks failed
Continuous Integration / Code Formatting (pull_request) Successful in 30s
Continuous Integration / Code Quality Check (pull_request) Successful in 28s
Continuous Integration / Test Execution (pull_request) Failing after 17s
Continuous Integration / CI Summary (pull_request) Failing after 5s
2025-09-30 00:29:06 +04:00
bd9b7c009a change platforms defaults 2025-09-30 00:28:52 +04:00
e61ab94935 typo 2025-09-30 00:28:29 +04:00
9150622e74 add build cache
use checkboxes
2025-09-30 00:28:17 +04:00
501cad6175 res://scenes/game/gameplays/tile.tscn -> Tile.tscn
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 29s
Continuous Integration / Code Quality Check (push) Successful in 26s
Continuous Integration / Test Execution (push) Failing after 15s
Continuous Integration / CI Summary (push) Failing after 3s
2025-09-30 00:15:17 +04:00
5275c5ca94 Add and update name convention
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 30s
Continuous Integration / Code Quality Check (push) Successful in 30s
Continuous Integration / Test Execution (push) Failing after 17s
Continuous Integration / CI Summary (push) Failing after 4s
2025-09-30 00:09:55 +04:00
61951a047b embed_pck 2025-09-29 22:12:37 +04:00
5f6a3ae175 trying to disable zipping 2025-09-29 22:12:33 +04:00
40c06ae249 downgrade actions/upload-artifact to v3 2025-09-29 22:00:57 +04:00
1189ce0931 add export templates 2025-09-29 21:55:56 +04:00
ff04b6ee22 Merge pull request 'fix-build' (#11) from fix-build into main
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 29s
Continuous Integration / Code Quality Check (push) Successful in 30s
Continuous Integration / Test Execution (push) Failing after 17s
Continuous Integration / CI Summary (push) Failing after 4s
Reviewed-on: #11
2025-09-29 19:46:16 +02:00
ff0a4fefe1 requirements.txt
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 34s
Continuous Integration / Code Quality Check (push) Successful in 29s
Continuous Integration / Test Execution (push) Failing after 20s
Continuous Integration / CI Summary (push) Failing after 4s
Continuous Integration / Code Formatting (pull_request) Successful in 31s
Continuous Integration / Code Quality Check (pull_request) Successful in 30s
Continuous Integration / Test Execution (pull_request) Failing after 7s
Continuous Integration / CI Summary (pull_request) Failing after 4s
2025-09-29 20:09:11 +04:00
666823c641 add async to tests 2025-09-29 20:02:47 +04:00
02f2bb2703 export presets 2025-09-29 18:17:33 +04:00
38e85c2a24 pin version 2025-09-29 12:44:15 +04:00
e31278e389 Merge pull request 'testing-script-update' (#10) from testing-script-update into main
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 30s
Continuous Integration / Code Quality Check (push) Successful in 26s
Continuous Integration / Test Execution (push) Failing after 16s
Continuous Integration / CI Summary (push) Failing after 4s
Reviewed-on: #10
2025-09-29 10:29:17 +02:00
024343db19 Add building pipeline
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 29s
Continuous Integration / Code Quality Check (push) Successful in 27s
Continuous Integration / Test Execution (push) Failing after 16s
Continuous Integration / CI Summary (push) Failing after 3s
Continuous Integration / Code Formatting (pull_request) Successful in 26s
Continuous Integration / Code Quality Check (pull_request) Successful in 26s
Continuous Integration / Test Execution (pull_request) Failing after 17s
Continuous Integration / CI Summary (pull_request) Failing after 5s
2025-09-29 12:18:29 +04:00
ad7a2575da add silent and machine readable formats to testing tool
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 31s
Continuous Integration / Code Quality Check (push) Successful in 28s
Continuous Integration / Test Execution (push) Failing after 16s
Continuous Integration / CI Summary (push) Failing after 4s
2025-09-29 12:04:09 +04:00
26991ce61a add toml, yaml, json validation 2025-09-29 11:28:36 +04:00
8ded8c81ee Merge pull request 'bug/match3/add-exit-from-game-scene-using-gamepad' (#9) from bug/match3/add-exit-from-game-scene-using-gamepad into main
Some checks failed
Continuous Integration / Code Formatting (push) Successful in 26s
Continuous Integration / Code Quality Check (push) Successful in 26s
Continuous Integration / Test Execution (push) Failing after 15s
Continuous Integration / CI Summary (push) Failing after 3s
Reviewed-on: #9
2025-09-28 17:21:31 +02:00
eb99c6a18e lint fixes
Some checks failed
Continuous Integration / Code Formatting (pull_request) Successful in 27s
Continuous Integration / Code Quality Check (pull_request) Successful in 29s
Continuous Integration / Test Execution (pull_request) Failing after 33s
Continuous Integration / CI Summary (pull_request) Failing after 5s
2025-09-28 19:16:20 +04:00
c1f3f9f708 use own background asset 2025-09-28 18:19:56 +04:00
e2e49f89ce use skulls instead of gems
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 16s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 13s
2025-09-28 17:27:44 +04:00
7ec75a3b26 use own gems assets 2025-09-28 17:16:53 +04:00
33a25dc532 pip requirements.txt file
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 16s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 13s
2025-09-27 21:52:11 +04:00
60279542e1 gdlint fixes
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 12s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 11s
2025-09-27 21:45:55 +04:00
35bdd44649 match3: improve tile selector
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 10s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 9s
2025-09-27 21:33:32 +04:00
77971497a4 move scale factors to constraints
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 12s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 11s
2025-09-27 21:20:15 +04:00
9b83bec37d any_key > action_confirm
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 9s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 11s
2025-09-27 21:12:24 +04:00
0791b80f15 change init window size
Some checks failed
GDScript Auto-Formatting / Auto-Format GDScript Code (pull_request) Failing after 2m7s
GDScript Linting / GDScript Code Quality Check (pull_request) Failing after 12s
2025-09-27 21:02:01 +04:00
ca6111cd28 Add gdformat pipeline 2025-09-27 21:01:49 +04:00
0cf76d595f Comments and documentation update 2025-09-27 21:00:45 +04:00
821d9aa42c add lint workflow 2025-09-27 20:42:51 +04:00
06f0f87970 Add gdlint and gdformat scripts 2025-09-27 20:40:13 +04:00
86439abea8 PressAnyKeyScreen → SplashScreen 2025-09-27 16:38:26 +04:00
dd0c1a123c add unit tests
saveload fixes
2025-09-27 12:17:14 +04:00
3e960a955c exit from game using gamepad 2025-09-26 00:57:20 +04:00
198 changed files with 10899 additions and 2736 deletions

View File

@@ -4,6 +4,9 @@
"WebSearch", "WebSearch",
"Bash(find:*)", "Bash(find:*)",
"Bash(godot:*)", "Bash(godot:*)",
"Bash(python:*)",
"Bash(git mv:*)",
"Bash(dir:*)"
], ],
"deny": [], "deny": [],
"ask": [] "ask": []

13
.gdformatrc Normal file
View File

@@ -0,0 +1,13 @@
# GDFormat configuration file
# This file configures the gdformat tool for consistent GDScript formatting
# Maximum line length (default is 100)
# Godot's style guide recommends keeping lines under 100 characters
line_length = 80
# Whether to use tabs or spaces for indentation
# Godot uses tabs by default
use_tabs = true
# Number of spaces per tab (when displaying)
tab_width = 4

498
.gitea/workflows/build.yml Normal file
View File

@@ -0,0 +1,498 @@
name: Build Game
# Build pipeline for creating game executables across multiple platforms
#
# Features:
# - Manual trigger with individual platform checkboxes
# - Tag-based automatic builds for releases
# - Multi-platform builds (Windows, Linux, macOS, Android)
# - Artifact storage for one week
# - Configurable build options
on:
# Manual trigger with platform selection
workflow_dispatch:
inputs:
build_windows:
description: 'Build for Windows'
required: false
default: true
type: boolean
build_linux:
description: 'Build for Linux'
required: false
default: false
type: boolean
build_macos:
description: 'Build for macOS'
required: false
default: false
type: boolean
build_android:
description: 'Build for Android'
required: false
default: false
type: boolean
build_type:
description: 'Build type'
required: true
default: 'release'
type: debug
options:
- release
- debug
version_override:
description: 'Override version (optional)'
required: false
type: string
# Automatic trigger on git tags (for releases)
push:
tags:
- 'v*' # Version tags (v1.0.0, v2.1.0, etc.)
- 'release-*' # Release tags
env:
GODOT_VERSION: "4.4.1"
PROJECT_NAME: "Skelly"
BUILD_DIR: "builds"
jobs:
# Preparation job - determines build configuration
prepare:
name: Prepare Build
runs-on: ubuntu-latest
outputs:
platforms: ${{ steps.config.outputs.platforms }}
build_type: ${{ steps.config.outputs.build_type }}
version: ${{ steps.config.outputs.version }}
artifact_name: ${{ steps.config.outputs.artifact_name }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure build parameters
id: config
run: |
# Determine platforms to build
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
# Build platforms array from individual checkboxes
platforms=""
if [[ "${{ github.event.inputs.build_windows }}" == "true" ]]; then
platforms="${platforms}windows,"
fi
if [[ "${{ github.event.inputs.build_linux }}" == "true" ]]; then
platforms="${platforms}linux,"
fi
if [[ "${{ github.event.inputs.build_macos }}" == "true" ]]; then
platforms="${platforms}macos,"
fi
if [[ "${{ github.event.inputs.build_android }}" == "true" ]]; then
platforms="${platforms}android,"
fi
# Remove trailing comma
platforms="${platforms%,}"
build_type="${{ github.event.inputs.build_type }}"
version_override="${{ github.event.inputs.version_override }}"
else
# Tag-triggered build - build all platforms
platforms="windows,linux,macos,android"
build_type="release"
version_override=""
fi
# Determine version
if [[ -n "$version_override" ]]; then
version="$version_override"
elif [[ "${{ github.ref_type }}" == "tag" ]]; then
version="${{ github.ref_name }}"
else
# Generate version from git info
commit_short=$(git rev-parse --short HEAD)
branch_name="${{ github.ref_name }}"
timestamp=$(date +%Y%m%d-%H%M)
version="${branch_name}-${commit_short}-${timestamp}"
fi
# Create artifact name
artifact_name="${{ env.PROJECT_NAME }}-${version}-${build_type}"
echo "platforms=${platforms}" >> $GITHUB_OUTPUT
echo "build_type=${build_type}" >> $GITHUB_OUTPUT
echo "version=${version}" >> $GITHUB_OUTPUT
echo "artifact_name=${artifact_name}" >> $GITHUB_OUTPUT
echo "🔧 Build Configuration:"
echo " Platforms: ${platforms}"
echo " Build Type: ${build_type}"
echo " Version: ${version}"
echo " Artifact: ${artifact_name}"
# Setup export templates (shared across all platform builds)
setup-templates:
name: Setup Export Templates
runs-on: ubuntu-latest
needs: prepare
steps:
- name: Cache export templates
id: cache-templates
uses: actions/cache@v4
with:
path: ~/.local/share/godot/export_templates
key: godot-templates-${{ env.GODOT_VERSION }}
restore-keys: |
godot-templates-
- name: Setup Godot
if: steps.cache-templates.outputs.cache-hit != 'true'
uses: chickensoft-games/setup-godot@v1
with:
version: ${{ env.GODOT_VERSION }}
use-dotnet: false
- name: Install export templates
if: steps.cache-templates.outputs.cache-hit != 'true'
run: |
echo "📦 Installing Godot export templates..."
mkdir -p ~/.local/share/godot/export_templates/${{ env.GODOT_VERSION }}.stable
wget -q https://github.com/godotengine/godot/releases/download/${{ env.GODOT_VERSION }}-stable/Godot_v${{ env.GODOT_VERSION }}-stable_export_templates.tpz
unzip -q Godot_v${{ env.GODOT_VERSION }}-stable_export_templates.tpz
mv templates/* ~/.local/share/godot/export_templates/${{ env.GODOT_VERSION }}.stable/
echo "✅ Export templates installed successfully"
ls -la ~/.local/share/godot/export_templates/${{ env.GODOT_VERSION }}.stable/
- name: Verify templates cache
run: |
echo "🔍 Verifying export templates are available:"
ls -la ~/.local/share/godot/export_templates/${{ env.GODOT_VERSION }}.stable/
# Windows build job
build-windows:
name: Build Windows
runs-on: ubuntu-latest
needs: [prepare, setup-templates]
if: contains(needs.prepare.outputs.platforms, 'windows')
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Godot
uses: chickensoft-games/setup-godot@v1
with:
version: ${{ env.GODOT_VERSION }}
use-dotnet: false
- name: Restore export templates cache
uses: actions/cache@v4
with:
path: ~/.local/share/godot/export_templates
key: godot-templates-${{ env.GODOT_VERSION }}
restore-keys: |
godot-templates-
- name: Create build directory
run: mkdir -p ${{ env.BUILD_DIR }}
- name: Import project assets
run: |
echo "📦 Importing project assets..."
godot --headless --verbose --editor --quit || true
sleep 2
- name: Build Windows executable
run: |
echo "🏗️ Building Windows executable..."
godot --headless --verbose --export-${{ needs.prepare.outputs.build_type }} "Windows Desktop" \
${{ env.BUILD_DIR }}/skelly-windows-${{ needs.prepare.outputs.version }}.exe
# Verify build output
if [[ -f "${{ env.BUILD_DIR }}/skelly-windows-${{ needs.prepare.outputs.version }}.exe" ]]; then
echo "✅ Windows build successful"
ls -la ${{ env.BUILD_DIR }}/
else
echo "❌ Windows build failed"
exit 1
fi
- name: Upload Windows build
uses: actions/upload-artifact@v3
with:
name: ${{ needs.prepare.outputs.artifact_name }}-windows
path: ${{ env.BUILD_DIR }}/skelly-windows-${{ needs.prepare.outputs.version }}.exe
retention-days: 7
compression-level: 0
# Linux build job
build-linux:
name: Build Linux
runs-on: ubuntu-latest
needs: [prepare, setup-templates]
if: contains(needs.prepare.outputs.platforms, 'linux')
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Godot
uses: chickensoft-games/setup-godot@v1
with:
version: ${{ env.GODOT_VERSION }}
use-dotnet: false
- name: Restore export templates cache
uses: actions/cache@v4
with:
path: ~/.local/share/godot/export_templates
key: godot-templates-${{ env.GODOT_VERSION }}
restore-keys: |
godot-templates-
- name: Create build directory
run: mkdir -p ${{ env.BUILD_DIR }}
- name: Import project assets
run: |
echo "📦 Importing project assets..."
godot --headless --verbose --editor --quit || true
sleep 2
- name: Build Linux executable
run: |
echo "🏗️ Building Linux executable..."
godot --headless --verbose --export-${{ needs.prepare.outputs.build_type }} "Linux" \
${{ env.BUILD_DIR }}/skelly-linux-${{ needs.prepare.outputs.version }}.x86_64
# Make executable
chmod +x ${{ env.BUILD_DIR }}/skelly-linux-${{ needs.prepare.outputs.version }}.x86_64
# Verify build output
if [[ -f "${{ env.BUILD_DIR }}/skelly-linux-${{ needs.prepare.outputs.version }}.x86_64" ]]; then
echo "✅ Linux build successful"
ls -la ${{ env.BUILD_DIR }}/
else
echo "❌ Linux build failed"
exit 1
fi
- name: Upload Linux build
uses: actions/upload-artifact@v3
with:
name: ${{ needs.prepare.outputs.artifact_name }}-linux
path: ${{ env.BUILD_DIR }}/skelly-linux-${{ needs.prepare.outputs.version }}.x86_64
retention-days: 7
compression-level: 0
# macOS build job
build-macos:
name: Build macOS
runs-on: ubuntu-latest
needs: [prepare, setup-templates]
if: contains(needs.prepare.outputs.platforms, 'macos')
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Godot
uses: chickensoft-games/setup-godot@v1
with:
version: ${{ env.GODOT_VERSION }}
use-dotnet: false
- name: Restore export templates cache
uses: actions/cache@v4
with:
path: ~/.local/share/godot/export_templates
key: godot-templates-${{ env.GODOT_VERSION }}
restore-keys: |
godot-templates-
- name: Create build directory
run: mkdir -p ${{ env.BUILD_DIR }}
- name: Import project assets
run: |
echo "📦 Importing project assets..."
godot --headless --verbose --editor --quit || true
sleep 2
- name: Build macOS application
run: |
echo "🏗️ Building macOS application..."
godot --headless --verbose --export-${{ needs.prepare.outputs.build_type }} "macOS" \
${{ env.BUILD_DIR }}/skelly-macos-${{ needs.prepare.outputs.version }}.zip
# Verify build output
if [[ -f "${{ env.BUILD_DIR }}/skelly-macos-${{ needs.prepare.outputs.version }}.zip" ]]; then
echo "✅ macOS build successful"
ls -la ${{ env.BUILD_DIR }}/
else
echo "❌ macOS build failed"
exit 1
fi
- name: Upload macOS build
uses: actions/upload-artifact@v3
with:
name: ${{ needs.prepare.outputs.artifact_name }}-macos
path: ${{ env.BUILD_DIR }}/skelly-macos-${{ needs.prepare.outputs.version }}.zip
retention-days: 7
compression-level: 0
# Android build job
build-android:
name: Build Android
runs-on: ubuntu-latest
needs: [prepare, setup-templates]
if: contains(needs.prepare.outputs.platforms, 'android')
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
with:
api-level: 33
build-tools: 33.0.0
- name: Setup Godot
uses: chickensoft-games/setup-godot@v1
with:
version: ${{ env.GODOT_VERSION }}
use-dotnet: false
- name: Restore export templates cache
uses: actions/cache@v4
with:
path: ~/.local/share/godot/export_templates
key: godot-templates-${{ env.GODOT_VERSION }}
restore-keys: |
godot-templates-
- name: Create build directory
run: mkdir -p ${{ env.BUILD_DIR }}
- name: Import project assets
run: |
echo "📦 Importing project assets..."
godot --headless --verbose --editor --quit || true
sleep 2
- name: Build Android APK
run: |
echo "🏗️ Building Android APK..."
# Set ANDROID_HOME if not already set
export ANDROID_HOME=${ANDROID_HOME:-$ANDROID_SDK_ROOT}
godot --headless --verbose --export-${{ needs.prepare.outputs.build_type }} "Android" \
${{ env.BUILD_DIR }}/skelly-android-${{ needs.prepare.outputs.version }}.apk
# Verify build output
if [[ -f "${{ env.BUILD_DIR }}/skelly-android-${{ needs.prepare.outputs.version }}.apk" ]]; then
echo "✅ Android build successful"
ls -la ${{ env.BUILD_DIR }}/
# Show APK info
echo "📱 APK Information:"
file ${{ env.BUILD_DIR }}/skelly-android-${{ needs.prepare.outputs.version }}.apk
else
echo "❌ Android build failed"
exit 1
fi
- name: Upload Android build
uses: actions/upload-artifact@v3
with:
name: ${{ needs.prepare.outputs.artifact_name }}-android
path: ${{ env.BUILD_DIR }}/skelly-android-${{ needs.prepare.outputs.version }}.apk
retention-days: 7
compression-level: 0
# Summary job - creates release summary
summary:
name: Build Summary
runs-on: ubuntu-latest
needs: [prepare, setup-templates, build-windows, build-linux, build-macos, build-android]
if: always()
steps:
- name: Generate build summary
run: |
echo "🎮 Build Summary for ${{ needs.prepare.outputs.artifact_name }}"
echo "=================================="
echo ""
echo "📋 Configuration:"
echo " Version: ${{ needs.prepare.outputs.version }}"
echo " Build Type: ${{ needs.prepare.outputs.build_type }}"
echo " Platforms: ${{ needs.prepare.outputs.platforms }}"
echo ""
echo "📊 Build Results:"
platforms="${{ needs.prepare.outputs.platforms }}"
if [[ "$platforms" == *"windows"* ]]; then
windows_status="${{ needs.build-windows.result }}"
echo " 🪟 Windows: $windows_status"
fi
if [[ "$platforms" == *"linux"* ]]; then
linux_status="${{ needs.build-linux.result }}"
echo " 🐧 Linux: $linux_status"
fi
if [[ "$platforms" == *"macos"* ]]; then
macos_status="${{ needs.build-macos.result }}"
echo " 🍎 macOS: $macos_status"
fi
if [[ "$platforms" == *"android"* ]]; then
android_status="${{ needs.build-android.result }}"
echo " 🤖 Android: $android_status"
fi
echo ""
echo "📦 Artifacts are available for 7 days"
echo "🔗 Download from: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- name: Check overall build status
run: |
# Check if any required builds failed
platforms="${{ needs.prepare.outputs.platforms }}"
failed_builds=()
if [[ "$platforms" == *"windows"* ]] && [[ "${{ needs.build-windows.result }}" != "success" ]]; then
failed_builds+=("Windows")
fi
if [[ "$platforms" == *"linux"* ]] && [[ "${{ needs.build-linux.result }}" != "success" ]]; then
failed_builds+=("Linux")
fi
if [[ "$platforms" == *"macos"* ]] && [[ "${{ needs.build-macos.result }}" != "success" ]]; then
failed_builds+=("macOS")
fi
if [[ "$platforms" == *"android"* ]] && [[ "${{ needs.build-android.result }}" != "success" ]]; then
failed_builds+=("Android")
fi
if [[ ${#failed_builds[@]} -gt 0 ]]; then
echo "❌ Build failed for: ${failed_builds[*]}"
exit 1
else
echo "✅ All builds completed successfully!"
fi

304
.gitea/workflows/ci.yml Normal file
View File

@@ -0,0 +1,304 @@
name: Continuous Integration
# CI pipeline for the Skelly Godot project
#
# Code quality checks (formatting, linting, testing) run as independent jobs
# in parallel. Uses tools/run_development.py for consistency with local development.
#
# Features:
# - Independent job execution (no dependencies between format/lint/test)
# - Automatic code formatting with commit back to branch
# - Error reporting and PR comments
# - Manual execution with selective step skipping
on:
# Trigger on push to any branch - only when relevant files change
push:
branches: ['*']
paths:
- '**/*.gd' # Any GDScript file
- '.gdlintrc' # Linting configuration
- '.gdformatrc' # Formatting configuration
- 'tools/run_development.py' # Development workflow script
- '.gitea/workflows/ci.yml' # This workflow file
# Trigger on pull requests - same file filters as push
pull_request:
branches: ['*']
paths:
- '**/*.gd'
- '.gdlintrc'
- '.gdformatrc'
- 'tools/run_development.py'
- '.gitea/workflows/ci.yml'
# Allow manual triggering with optional step skipping
workflow_dispatch:
inputs:
skip_format:
description: 'Skip code formatting'
required: false
default: 'false'
type: boolean
skip_lint:
description: 'Skip code linting'
required: false
default: 'false'
type: boolean
skip_tests:
description: 'Skip test execution'
required: false
default: 'false'
type: boolean
jobs:
format:
name: Code Formatting
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
if: ${{ always() && github.event.inputs.skip_format != 'true' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref || github.ref }}
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --upgrade "setuptools<81"
pip install gdtoolkit==4
- name: Run code formatting
id: format
run: |
echo "🎨 Running GDScript formatting..."
python tools/run_development.py --format --silent --yaml > format_results.yaml
- name: Upload formatting results
if: always()
uses: actions/upload-artifact@v3
with:
name: format-results
path: |
format_results.yaml
retention-days: 7
compression-level: 0
- name: Check for formatting changes
id: check-changes
run: |
if git diff --quiet; then
echo "📝 No formatting changes detected"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "📝 Formatting changes detected"
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "🔍 Changed files:"
git diff --name-only
echo ""
echo "📊 Diff summary:"
git diff --stat
fi
- name: Commit and push formatting changes
if: steps.check-changes.outputs.has_changes == 'true'
run: |
echo "💾 Committing formatting changes..."
git config user.name "Gitea Actions"
git config user.email "actions@gitea.local"
git add -A
commit_message="🎨 Auto-format GDScript code
Automated formatting applied by tools/run_development.py
🤖 Generated by Gitea Actions
Workflow: ${{ github.workflow }}
Run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
git commit -m "$commit_message"
target_branch="${{ github.event.pull_request.head.ref || github.ref_name }}"
echo "📤 Pushing changes to branch: $target_branch"
git push origin HEAD:"$target_branch"
echo "✅ Formatting changes pushed successfully!"
lint:
name: Code Quality Check
runs-on: ubuntu-latest
if: ${{ github.event.inputs.skip_lint != 'true' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref || github.ref }}
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install --upgrade "setuptools<81"
pip install gdtoolkit==4
- name: Run linting
id: lint
run: |
echo "🔍 Running GDScript linting..."
python tools/run_development.py --lint --silent --yaml > lint_results.yaml
- name: Upload linting results
if: always()
uses: actions/upload-artifact@v3
with:
name: lint-results
path: |
lint_results.yaml
retention-days: 7
compression-level: 0
test:
name: Test Execution
runs-on: ubuntu-latest
if: ${{ github.event.inputs.skip_tests != 'true' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref || github.ref }}
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install --upgrade "setuptools<81"
pip install gdtoolkit==4
- name: Set up Godot
uses: chickensoft-games/setup-godot@v1
with:
version: 4.3.0
use-dotnet: false
- name: Run tests
id: test
run: |
echo "🧪 Running GDScript tests..."
python tools/run_development.py --test --silent --yaml > test_results.yaml
- name: Upload test results
if: always()
uses: actions/upload-artifact@v3
with:
name: test-results
path: |
test_results.yaml
retention-days: 7
compression-level: 0
summary:
name: CI Summary
runs-on: ubuntu-latest
needs: [format, lint, test]
if: always()
steps:
- name: Set workflow status
id: status
run: |
format_status="${{ needs.format.result }}"
lint_status="${{ needs.lint.result }}"
test_status="${{ needs.test.result }}"
echo "📊 Workflow Results:"
echo "🎨 Format: $format_status"
echo "🔍 Lint: $lint_status"
echo "🧪 Test: $test_status"
if [[ "$format_status" == "success" && "$lint_status" == "success" && ("$test_status" == "success" || "$test_status" == "skipped") ]]; then
echo "overall_status=success" >> $GITHUB_OUTPUT
echo "✅ All CI checks passed!"
else
echo "overall_status=failure" >> $GITHUB_OUTPUT
echo "❌ Some CI checks failed"
fi
- name: Comment on PR (if applicable)
if: github.event_name == 'pull_request'
uses: actions/github-script@v6
with:
script: |
const formatStatus = '${{ needs.format.result }}';
const lintStatus = '${{ needs.lint.result }}';
const testStatus = '${{ needs.test.result }}';
const overallStatus = '${{ steps.status.outputs.overall_status }}';
const getStatusEmoji = (status) => {
switch(status) {
case 'success': return '✅';
case 'failure': return '❌';
case 'skipped': return '⏭️';
default: return '⚠️';
}
};
const message = `## 🤖 CI Pipeline Results
| Step | Status | Result |
|------|--------|--------|
| 🎨 Formatting | ${getStatusEmoji(formatStatus)} | ${formatStatus} |
| 🔍 Linting | ${getStatusEmoji(lintStatus)} | ${lintStatus} |
| 🧪 Testing | ${getStatusEmoji(testStatus)} | ${testStatus} |
**Overall Status:** ${getStatusEmoji(overallStatus)} ${overallStatus.toUpperCase()}
${overallStatus === 'success'
? '🎉 All checks passed! This PR is ready for review.'
: '⚠️ Some checks failed. Please review the workflow logs and fix any issues.'}
[View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: message
});
- name: Set final exit code
run: |
if [[ "${{ steps.status.outputs.overall_status }}" == "success" ]]; then
echo "🎉 CI Pipeline completed successfully!"
exit 0
else
echo "❌ CI Pipeline failed"
exit 1
fi

6
.gitignore vendored
View File

@@ -5,3 +5,9 @@
# Generated files # Generated files
*.tmp *.tmp
*.import~ *.import~
test_results.txt
# python
.venv
*.pyc

View File

@@ -1,2 +1,9 @@
- The documentation of the project is located in docs/ directory. - The documentation of the project is located in docs/ directory;
So the docs\CLAUDE.md does. Get it in context before doing anything else. - Get following files in context before doing anything else:
- docs\CLAUDE.md
- docs\CODE_OF_CONDUCT.md
- project.godot
- Use TDD methodology for development;
- Use static data types;
- Keep documentation up to date;
- Always run tests `./tools/run_development.py --yaml --silent`;

97
DEVELOPMENT_TOOLS.md Normal file
View File

@@ -0,0 +1,97 @@
# Development Tools
Development workflow tools for the Skelly Godot project.
Python script that handles code formatting, linting, and testing.
## Quick Start
Run all development checks (recommended for pre-commit):
```bash
run_dev.bat
```
Runs code formatting → linting → testing.
## Available Commands
### Main Unified Script
- **`run_dev.bat`** - Main unified development script with all functionality
### Individual Tools (Legacy - redirect to unified script)
- **`run_all.bat`** - Same as `run_dev.bat` (legacy compatibility)
- **`run_lint.bat`** - Run only linting (redirects to `run_dev.bat --lint`)
- **`run_format.bat`** - Run only formatting (redirects to `run_dev.bat --format`)
- **`run_tests.bat`** - Run only tests (redirects to `run_dev.bat --test`)
## Usage Examples
```bash
# Run all checks (default behavior)
run_dev.bat
# Run only specific tools
run_dev.bat --lint
run_dev.bat --format
run_dev.bat --test
# Run custom workflow steps
run_dev.bat --steps format lint
run_dev.bat --steps format test
# Show help
run_dev.bat --help
```
## What Each Tool Does
### 🔍 Linting (`gdlint`)
- Checks GDScript code for style violations
- Enforces naming conventions
- Validates code structure and patterns
- **Fails the workflow if errors are found**
### 🎨 Formatting (`gdformat`)
- Automatically formats GDScript code
- Ensures consistent indentation and spacing
- Fixes basic style issues
- **Fails the workflow if files cannot be formatted**
### 🧪 Testing (`godot`)
- Runs all test files in `tests/` directory
- Executes Godot scripts in headless mode
- Reports test results and failures
- **Continues workflow even if tests fail** (for review)
## Dependencies
The script automatically checks for and provides installation instructions for:
- Python 3.x
- pip
- Godot Engine (for tests)
- gdtoolkit (gdlint, gdformat)
## Output Features
- Colorized output
- Emoji status indicators
- Tool summaries
- Execution time tracking
- Warning suppression
## Development Workflow
1. **Before committing**: Run `run_dev.bat` to ensure code quality
2. **Fix any linting errors** - the workflow will abort on errors
3. **Review any test failures** - tests don't abort workflow but should be addressed
4. **Commit your changes** once all checks pass
## Integration
Works with:
- Git hooks (pre-commit)
- CI/CD pipelines
- IDE integrations
- Manual development workflow
Legacy batch files remain functional.

View File

@@ -22,402 +22,30 @@ audio:
sprites: sprites:
characters: characters:
skeleton: skeleton:
"Skeleton Attack.png": "assets/sprites/characters/skeleton/*":
source: "https://jesse-m.itch.io/skeleton-pack" source: "https://jesse-m.itch.io/skeleton-pack"
license: "" # TODO: Verify license from itch.io page license: "" # TODO: Verify license from itch.io page
attribution: "Skeleton Pack by Jesse M" attribution: "Skeleton Pack by Jesse M"
modifications: "" modifications: ""
usage: "Skeleton character attack animation sprite" usage: "Placeholder for animation sprites"
"Skeleton Dead.png": skulls:
source: "https://jesse-m.itch.io/skeleton-pack" "assets/sprites/skulls/*":
license: "" # TODO: Verify license from itch.io page source: "https://gitea.nett00n.org/nett00n/pixelart/src/branch/main/pixelorama/2025-skelly-assests"
attribution: "Skeleton Pack by Jesse M" license: "CC"
attribution: "Skelly icons by @nett00n"
modifications: "" modifications: ""
usage: "Skeleton character death animation sprite" usage: ""
"Skeleton Hit.png":
source: "https://jesse-m.itch.io/skeleton-pack"
license: "" # TODO: Verify license from itch.io page
attribution: "Skeleton Pack by Jesse M"
modifications: ""
usage: "Skeleton character hit reaction animation sprite"
"Skeleton Idle.png":
source: "https://jesse-m.itch.io/skeleton-pack"
license: "" # TODO: Verify license from itch.io page
attribution: "Skeleton Pack by Jesse M"
modifications: ""
usage: "Skeleton character idle animation sprite"
"Skeleton React.png":
source: "https://jesse-m.itch.io/skeleton-pack"
license: "" # TODO: Verify license from itch.io page
attribution: "Skeleton Pack by Jesse M"
modifications: ""
usage: "Skeleton character reaction animation sprite"
"Skeleton Walk.png":
source: "https://jesse-m.itch.io/skeleton-pack"
license: "" # TODO: Verify license from itch.io page
attribution: "Skeleton Pack by Jesse M"
modifications: ""
usage: "Skeleton character walking animation sprite"
gems:
# Blue gems
"bg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Blue gem sprite for Match-3 gameplay"
"bg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Blue gem variant sprite for Match-3 gameplay"
"bg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Blue gem variant sprite for Match-3 gameplay"
"bg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Blue gem variant sprite for Match-3 gameplay"
"bg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Blue gem variant sprite for Match-3 gameplay"
"bg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Blue gem variant sprite for Match-3 gameplay"
# Dark/Gray gems
"dg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Dark gem sprite for Match-3 gameplay"
"dg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Dark gem variant sprite for Match-3 gameplay"
"dg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Dark gem variant sprite for Match-3 gameplay"
"dg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Dark gem variant sprite for Match-3 gameplay"
"dg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Dark gem variant sprite for Match-3 gameplay"
"dg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Dark gem variant sprite for Match-3 gameplay"
# Green gems
"gg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Green gem sprite for Match-3 gameplay"
"gg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Green gem variant sprite for Match-3 gameplay"
"gg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Green gem variant sprite for Match-3 gameplay"
"gg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Green gem variant sprite for Match-3 gameplay"
"gg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Green gem variant sprite for Match-3 gameplay"
"gg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Green gem variant sprite for Match-3 gameplay"
# Magenta gems
"mg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Magenta gem sprite for Match-3 gameplay"
"mg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Magenta gem variant sprite for Match-3 gameplay"
"mg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Magenta gem variant sprite for Match-3 gameplay"
"mg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Magenta gem variant sprite for Match-3 gameplay"
"mg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Magenta gem variant sprite for Match-3 gameplay"
"mg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Magenta gem variant sprite for Match-3 gameplay"
# Purple gems
"pg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Purple gem sprite for Match-3 gameplay"
"pg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Purple gem variant sprite for Match-3 gameplay"
"pg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Purple gem variant sprite for Match-3 gameplay"
"pg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Purple gem variant sprite for Match-3 gameplay"
"pg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Purple gem variant sprite for Match-3 gameplay"
"pg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Purple gem variant sprite for Match-3 gameplay"
# Red gems
"rg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Red gem sprite for Match-3 gameplay"
"rg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Red gem variant sprite for Match-3 gameplay"
"rg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Red gem variant sprite for Match-3 gameplay"
"rg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Red gem variant sprite for Match-3 gameplay"
"rg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Red gem variant sprite for Match-3 gameplay"
"rg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Red gem variant sprite for Match-3 gameplay"
# Silver gems
"sg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Silver gem sprite for Match-3 gameplay"
"sg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Silver gem variant sprite for Match-3 gameplay"
"sg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Silver gem variant sprite for Match-3 gameplay"
"sg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Silver gem variant sprite for Match-3 gameplay"
"sg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Silver gem variant sprite for Match-3 gameplay"
"sg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Silver gem variant sprite for Match-3 gameplay"
# Yellow gems
"yg_08.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Yellow gem sprite for Match-3 gameplay"
"yg_16a.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Yellow gem variant sprite for Match-3 gameplay"
"yg_19.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Yellow gem variant sprite for Match-3 gameplay"
"yg_26.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Yellow gem variant sprite for Match-3 gameplay"
"yg_27.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Yellow gem variant sprite for Match-3 gameplay"
"yg_28.png":
source: "https://ilustragm.itch.io/gems-icon-01-free"
license: "" # TODO: Verify license from itch.io page
attribution: "Gems Icon 01 Free by IlustraGM"
modifications: ""
usage: "Yellow gem variant sprite for Match-3 gameplay"
Referenced in original sources.yaml but file not found: Referenced in original sources.yaml but file not found:
textures: textures:
backgrounds: backgrounds:
"beanstalk-dark.webp": "BG.pg":
source: "https://www.toptal.com/designers/subtlepatterns/beanstalk-dark-pattern/" source: "https://gitea.nett00n.org/nett00n/pixelart/src/branch/main/pixelorama/2025-skelly-assests"
license: "" # TODO: Verify license and locate file license: "CC"
attribution: "Beanstalk Dark pattern from Subtle Patterns" attribution: "Skelly icons by @nett00n"
modifications: "" modifications: ""
usage: "Background texture (file location TBD)" usage: ""
# TODO: Verify all license information by visiting source URLs # TODO: Verify all license information by visiting source URLs
# TODO: Check for any missing assets not documented here # TODO: Check for any missing assets not documented here

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dlsbyeg6yk0w6"
path="res://.godot/imported/bg_27.png-8491443789e609ccfc8571a594dabe15.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/bg_27.png"
dest_files=["res://.godot/imported/bg_27.png-8491443789e609ccfc8571a594dabe15.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dww0yjm6dlopu"
path="res://.godot/imported/bg_28.png-50f87b44c958560beabb6031acaef57e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/bg_28.png"
dest_files=["res://.godot/imported/bg_28.png-50f87b44c958560beabb6031acaef57e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dudk2umu5bvgs"
path="res://.godot/imported/dg_08.png-e1ad7182c2f8d65510dbdc48ab5e4466.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/dg_08.png"
dest_files=["res://.godot/imported/dg_08.png-e1ad7182c2f8d65510dbdc48ab5e4466.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b533hi1ykb8tq"
path="res://.godot/imported/dg_16a.png-d922762d7a12e7fedcafa504db3276a3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/dg_16a.png"
dest_files=["res://.godot/imported/dg_16a.png-d922762d7a12e7fedcafa504db3276a3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2bcge834ofx4"
path="res://.godot/imported/dg_19.png-afb0e64c485081fd339ad679d8fbe83d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/dg_19.png"
dest_files=["res://.godot/imported/dg_19.png-afb0e64c485081fd339ad679d8fbe83d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3fbxbrovpd2o"
path="res://.godot/imported/dg_26.png-4a2ce0c663c3dde56c5eaddc73ed19f5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/dg_26.png"
dest_files=["res://.godot/imported/dg_26.png-4a2ce0c663c3dde56c5eaddc73ed19f5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d07se104e7lyj"
path="res://.godot/imported/dg_28.png-f00e0bdc25ddb8fcf937676717224cc6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/dg_28.png"
dest_files=["res://.godot/imported/dg_28.png-f00e0bdc25ddb8fcf937676717224cc6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dviy4od6h6kc5"
path="res://.godot/imported/gg_08.png-8ceea676909f242ccf3635c56435dbfc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/gg_08.png"
dest_files=["res://.godot/imported/gg_08.png-8ceea676909f242ccf3635c56435dbfc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://droomr4cpxa47"
path="res://.godot/imported/gg_16a.png-a5f2d2d1bf82cb409314e2c8eb765957.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/gg_16a.png"
dest_files=["res://.godot/imported/gg_16a.png-a5f2d2d1bf82cb409314e2c8eb765957.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bpidytlj8h7yb"
path="res://.godot/imported/gg_19.png-21aedfea8e7e0a9e8f12ffd11c216539.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/gg_19.png"
dest_files=["res://.godot/imported/gg_19.png-21aedfea8e7e0a9e8f12ffd11c216539.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7nj55ci3d1vn"
path="res://.godot/imported/gg_27.png-281ebc39017ff87a83dc3f919a122e1e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/gg_27.png"
dest_files=["res://.godot/imported/gg_27.png-281ebc39017ff87a83dc3f919a122e1e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8bbejkkehjgk"
path="res://.godot/imported/mg_08.png-35fde37512dd0392d35e6c651c76e09f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/mg_08.png"
dest_files=["res://.godot/imported/mg_08.png-35fde37512dd0392d35e6c651c76e09f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnjoksww7jlgw"
path="res://.godot/imported/mg_16a.png-7ae849d894d79a0049515a7654200f21.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/mg_16a.png"
dest_files=["res://.godot/imported/mg_16a.png-7ae849d894d79a0049515a7654200f21.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b0r6qvbc33ymb"
path="res://.godot/imported/mg_19.png-e6ce2a91f95c7d9707148890e7bcdd52.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/mg_19.png"
dest_files=["res://.godot/imported/mg_19.png-e6ce2a91f95c7d9707148890e7bcdd52.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cm2ihgxtfdb51"
path="res://.godot/imported/mg_27.png-fe3b6731a968b3e67a715e17ffc02b4c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/mg_27.png"
dest_files=["res://.godot/imported/mg_27.png-fe3b6731a968b3e67a715e17ffc02b4c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dp6hg741v6nl4"
path="res://.godot/imported/mg_28.png-ada23e8ea33e5c01e3f34a309139a6ef.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/mg_28.png"
dest_files=["res://.godot/imported/mg_28.png-ada23e8ea33e5c01e3f34a309139a6ef.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://btxdn0rakcngf"
path="res://.godot/imported/pg_08.png-40b30ef563993bb977520b1d559ccd96.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/pg_08.png"
dest_files=["res://.godot/imported/pg_08.png-40b30ef563993bb977520b1d559ccd96.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d2wo7k33lptr1"
path="res://.godot/imported/pg_16a.png-a6f68855a1651d866c9eaf27ab706d73.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/pg_16a.png"
dest_files=["res://.godot/imported/pg_16a.png-a6f68855a1651d866c9eaf27ab706d73.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3e3au4w7yy1c"
path="res://.godot/imported/pg_19.png-3c63dbcd07560310e8fdbf2ac375880e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/pg_19.png"
dest_files=["res://.godot/imported/pg_19.png-3c63dbcd07560310e8fdbf2ac375880e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b18o5lxlcgnfx"
path="res://.godot/imported/pg_26.png-7aaab46733f9253fac60fe2a5fecdef9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/pg_26.png"
dest_files=["res://.godot/imported/pg_26.png-7aaab46733f9253fac60fe2a5fecdef9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bkih4lj2fntas"
path="res://.godot/imported/pg_27.png-ee0e201631ac62b45cf78a5ba2d54596.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/pg_27.png"
dest_files=["res://.godot/imported/pg_27.png-ee0e201631ac62b45cf78a5ba2d54596.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://blai6fdbpxuyp"
path="res://.godot/imported/pg_28.png-6ff41398a128c0b35d6b8332a50f0824.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/pg_28.png"
dest_files=["res://.godot/imported/pg_28.png-6ff41398a128c0b35d6b8332a50f0824.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dqyqpdyg8e4ek"
path="res://.godot/imported/rg_08.png-e769805e5236318cdcf487b1daa0ab70.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/rg_08.png"
dest_files=["res://.godot/imported/rg_08.png-e769805e5236318cdcf487b1daa0ab70.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3uk7br2yqsyr"
path="res://.godot/imported/rg_16a.png-e568944ca0d125c92b232ea737af957f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/rg_16a.png"
dest_files=["res://.godot/imported/rg_16a.png-e568944ca0d125c92b232ea737af957f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ccprr0qrj3lgm"
path="res://.godot/imported/rg_19.png-3dfdfcd3f45c9c1e87986c34ed27d65c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/rg_19.png"
dest_files=["res://.godot/imported/rg_19.png-3dfdfcd3f45c9c1e87986c34ed27d65c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1no532mlqarb"
path="res://.godot/imported/rg_26.png-6529b3c79947f4ba5c25f580580ec971.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/rg_26.png"
dest_files=["res://.godot/imported/rg_26.png-6529b3c79947f4ba5c25f580580ec971.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://co7th1qwwxjxn"
path="res://.godot/imported/rg_27.png-8938004b9628f8aeda9262bd786db5a9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/rg_27.png"
dest_files=["res://.godot/imported/rg_27.png-8938004b9628f8aeda9262bd786db5a9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fq4b5b1v6icy"
path="res://.godot/imported/rg_28.png-2e048e93fec1403b6ea21c5b1935881c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/rg_28.png"
dest_files=["res://.godot/imported/rg_28.png-2e048e93fec1403b6ea21c5b1935881c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ceybivs04remb"
path="res://.godot/imported/sg_08.png-456e723109256e511e4f59271e89a1dd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/sg_08.png"
dest_files=["res://.godot/imported/sg_08.png-456e723109256e511e4f59271e89a1dd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c6qtlkpw58jpy"
path="res://.godot/imported/sg_16a.png-129415a1b75d4949e50f566399c1150f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/sg_16a.png"
dest_files=["res://.godot/imported/sg_16a.png-129415a1b75d4949e50f566399c1150f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d28axjhxribfq"
path="res://.godot/imported/sg_19.png-b1ea45054dc2728d8236c4180e75429d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/sg_19.png"
dest_files=["res://.godot/imported/sg_19.png-b1ea45054dc2728d8236c4180e75429d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://yh45c4sn7skv"
path="res://.godot/imported/sg_26.png-57245822a5996857fe99d4c26a38369c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/sg_26.png"
dest_files=["res://.godot/imported/sg_26.png-57245822a5996857fe99d4c26a38369c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://decoapdi0m4x4"
path="res://.godot/imported/sg_27.png-6d03db4a93eb8c2abbb0bcbe2d02927d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/sg_27.png"
dest_files=["res://.godot/imported/sg_27.png-6d03db4a93eb8c2abbb0bcbe2d02927d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bysfv51t2uous"
path="res://.godot/imported/sg_28.png-918eb466ccc52f61327fde547e81c4de.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/sg_28.png"
dest_files=["res://.godot/imported/sg_28.png-918eb466ccc52f61327fde547e81c4de.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dr4i4iefhp77u"
path="res://.godot/imported/yg_08.png-d1b083515e21d446d6c29169ce52b36e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/yg_08.png"
dest_files=["res://.godot/imported/yg_08.png-d1b083515e21d446d6c29169ce52b36e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cmdr0kpteuyyp"
path="res://.godot/imported/yg_16a.png-092b1b0a8f3c20aca96f1319c03fc488.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/yg_16a.png"
dest_files=["res://.godot/imported/yg_16a.png-092b1b0a8f3c20aca96f1319c03fc488.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dghi2vaasxka7"
path="res://.godot/imported/yg_19.png-522df55e2af2ebec602812d3efd2c465.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/yg_19.png"
dest_files=["res://.godot/imported/yg_19.png-522df55e2af2ebec602812d3efd2c465.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://q0e2ygr3bpmp"
path="res://.godot/imported/yg_26.png-8d3139f65b23caee79ec7ed924daf47d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/yg_26.png"
dest_files=["res://.godot/imported/yg_26.png-8d3139f65b23caee79ec7ed924daf47d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bp3gfawevhvpo"
path="res://.godot/imported/yg_27.png-8c9608e70f18cfd76ba523f0a4cc04eb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/gems/yg_27.png"
dest_files=["res://.godot/imported/yg_27.png-8c9608e70f18cfd76ba523f0a4cc04eb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

View File

@@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://k7gps0h2l8k7" uid="uid://dxq2ab2uo3fel"
path="res://.godot/imported/dg_27.png-9c3dcc1b6a689af674d8f443d6f956db.ctex" path="res://.godot/imported/blue.png-a5b81332a57b3efef9a75dd151a28d11.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://assets/sprites/gems/dg_27.png" source_file="res://assets/sprites/skulls/blue.png"
dest_files=["res://.godot/imported/dg_27.png-9c3dcc1b6a689af674d8f443d6f956db.ctex"] dest_files=["res://.godot/imported/blue.png-a5b81332a57b3efef9a75dd151a28d11.ctex"]
[params] [params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bma78772dfdq3"
path="res://.godot/imported/dark-blue.png-59d632e889a5b721da0ae18edaed44bb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/sprites/skulls/dark-blue.png"
dest_files=["res://.godot/imported/dark-blue.png-59d632e889a5b721da0ae18edaed44bb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

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