Compare commits
51 Commits
7e4c8f545d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| e41644621d | |||
| 59f149f76e | |||
| 5a2bf1628b | |||
| 174a12d7cb | |||
| ea15cd45d8 | |||
| 1be247f66e | |||
| 409ddd3edb | |||
| 61e937e1f5 | |||
| 1d4548d74c | |||
| 147d6b2d04 | |||
| 44b0323b8a | |||
| e717678b82 | |||
| bebb1b1cf2 | |||
| a8fbf041de | |||
| 84f533b45d | |||
| 3f854c292c | |||
| 8b8087c7d1 | |||
| 8f0b7b6e27 | |||
| 8400a04293 | |||
| e02e621f8b | |||
| fe6ebc9e0f | |||
| 3dd698eab7 | |||
| b9d165204d | |||
| 068b2b731d | |||
| 247a04d2bd | |||
| d533fa3b45 | |||
| 5f1164b0b3 | |||
| 7bc3de6012 | |||
| f9411e8474 | |||
| dfa0f7d795 | |||
| 1fdb54c601 | |||
| 80481fbf73 | |||
| 38db6486fc | |||
| ba43e870cd | |||
| 6dab4d84de | |||
| 4700770a24 | |||
| a374eabc49 | |||
| f0e4c617f5 | |||
| bcf84f8646 | |||
| 43cf662c97 | |||
| ba1abede23 | |||
| 78c3da1f3b | |||
| b9b9cf27d1 | |||
| beaad933ba | |||
| f9d6bac522 | |||
| 0093e53e15 | |||
| b297984dc2 | |||
| ddd24e87bf | |||
| e449c3caf4 | |||
| 067a56aeb4 | |||
| 2b2fccf607 |
@ -14,9 +14,85 @@ env:
|
||||
ACTIONS_STEP_DEBUG: true
|
||||
|
||||
jobs:
|
||||
prepare-build:
|
||||
name: Prepare Build Assets
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
|
||||
# Ensure dl link is provided before starting build process
|
||||
- name: Check Gitea Variables
|
||||
run: |
|
||||
if [ -z "${{ secrets.EXPORT_TEMPLATE_DOWNLOAD_LINK }}" ]; then
|
||||
echo "No export template download link provided, cancelling build"
|
||||
echo "Please set the EXPORT_TEMPLATE_DOWNLOAD_LINK secret in Gitea"
|
||||
exit 1
|
||||
else
|
||||
echo "Found EXPORT_TEMPLATE_DOWNLOAD_LINK"
|
||||
fi
|
||||
|
||||
# By default ubuntu-22.04 has nodejs 12, but we need a more modern version for the actions/checkout@v4
|
||||
# Should make my docker image for this step in the future
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y curl
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
|
||||
apt-get install -y nodejs unzip git git-lfs
|
||||
git lfs install
|
||||
|
||||
- name: Checkout
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
# Update the version_info.gd file with info about this build.
|
||||
# If it isn't in the expected spot of game/scripts/version_info.gd skip it
|
||||
- name: Populate Version Text
|
||||
run: |
|
||||
VERSION_FILE="${PROJECT_PATH}/game/scripts/version_info.gd"
|
||||
if [ -f "$VERSION_FILE" ]; then
|
||||
PROJECT_NAME="${EXPORT_NAME}"
|
||||
COMMIT_NUMBER="${GITHUB_RUN_NUMBER}"
|
||||
BRANCH_NAME="${GITHUB_REF_NAME}"
|
||||
SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8)
|
||||
|
||||
sed -i "s/var project_name: String = \"X\"/var project_name: String = \"${PROJECT_NAME}\"/" "$VERSION_FILE"
|
||||
sed -i "s/var commit_number: int = 0/var commit_number: int = ${COMMIT_NUMBER}/" "$VERSION_FILE"
|
||||
sed -i "s/var branch_name: String = \"X\"/var branch_name: String = \"${BRANCH_NAME}\"/" "$VERSION_FILE"
|
||||
sed -i "s/var short_sha: String = \"X\"/var short_sha: String = \"${SHORT_SHA}\"/" "$VERSION_FILE"
|
||||
sed -i "s/var build_override: bool = false/var build_override: bool = true/" "$VERSION_FILE"
|
||||
|
||||
echo "Updated version_info.gd:"
|
||||
cat "$VERSION_FILE"
|
||||
else
|
||||
echo "version_info.gd not found at $VERSION_FILE, skipping."
|
||||
fi
|
||||
|
||||
# Download the exprot templates from the link provided in the secrets
|
||||
# The expected format is a zip that contains windows and linux export and debug templates
|
||||
- name: Download Export Templates
|
||||
run: |
|
||||
mkdir -p "$PROJECT_PATH/build/build_dependencies/export_templates"
|
||||
curl -L "${{ secrets.EXPORT_TEMPLATE_DOWNLOAD_LINK }}" -o "$PROJECT_PATH/build/build_dependencies/export_templates/export_templates.zip"
|
||||
unzip -o "$PROJECT_PATH/build/build_dependencies/export_templates/export_templates.zip" -d "$PROJECT_PATH/build/build_dependencies/export_templates/"
|
||||
rm "$PROJECT_PATH/build/build_dependencies/export_templates/export_templates.zip"
|
||||
|
||||
# Debug to see if the export templates were downloaded correctly
|
||||
echo "Export templates downloaded to $PROJECT_PATH/build/build_dependencies/export_templates/"
|
||||
ls -la "$PROJECT_PATH/build/build_dependencies/export_templates/"
|
||||
|
||||
- name: Upload Prepared Assets
|
||||
uses: https://gitea.com/actions/upload-artifact@v3
|
||||
with:
|
||||
name: prepared-assets
|
||||
path: |
|
||||
game/scripts/version_info.gd
|
||||
build/build_dependencies/export_templates/
|
||||
|
||||
export-windows:
|
||||
name: Windows Export
|
||||
runs-on: ubuntu-22.04 # Use 22.04 with godot 4
|
||||
runs-on: ubuntu-22.04 # Use 22.04 with godot 4
|
||||
needs: prepare-build
|
||||
container:
|
||||
image: barichello/godot-ci:mono-4.4.1 # change to mono
|
||||
steps:
|
||||
@ -28,14 +104,18 @@ jobs:
|
||||
apt-get install -y curl
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
|
||||
apt-get install -y nodejs
|
||||
|
||||
- name: Checkout
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
- name: Setup
|
||||
run: |
|
||||
mkdir -v -p ~/.local/share/godot/export_templates/
|
||||
mkdir -v -p ~/.config/
|
||||
|
||||
- name: Download Prepared Assets
|
||||
uses: https://gitea.com/actions/download-artifact@v3
|
||||
with:
|
||||
name: prepared-assets
|
||||
path: .
|
||||
|
||||
- name: Windows Build
|
||||
run: |
|
||||
mkdir -v -p build/bin/windows
|
||||
@ -49,12 +129,12 @@ jobs:
|
||||
name: windows
|
||||
path: build/bin/windows
|
||||
|
||||
|
||||
export-linux:
|
||||
name: Linux Export
|
||||
runs-on: ubuntu-22.04 # Use 22.04 with godot 4
|
||||
needs: prepare-build
|
||||
container:
|
||||
image: barichello/godot-ci:4.4
|
||||
image: barichello/godot-ci:mono-4.4.1 # change to mono
|
||||
steps:
|
||||
# Doing this becuase barichello/godot-ci:4.4 doesn't have nodejs installed, may need to make own docker image in the future
|
||||
# By default ubuntu-22.04 has nodejs 12, but we need a more modern version for the actions/checkout@v4
|
||||
@ -64,19 +144,25 @@ jobs:
|
||||
apt-get install -y curl
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
|
||||
apt-get install -y nodejs
|
||||
|
||||
- name: Checkout
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
- name: Setup
|
||||
run: |
|
||||
mkdir -v -p ~/.local/share/godot/export_templates/
|
||||
|
||||
- name: Download Prepared Assets
|
||||
uses: https://gitea.com/actions/download-artifact@v3
|
||||
with:
|
||||
name: prepared-assets
|
||||
path: .
|
||||
|
||||
- name: Linux Build
|
||||
run: |
|
||||
mkdir -v -p build/bin/linux
|
||||
EXPORT_DIR="$(readlink -f build/bin)"
|
||||
cd $PROJECT_PATH
|
||||
godot --headless --verbose --export-release "Linux" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64"
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: https://gitea.com/actions/upload-artifact@v3 # using v3 ad v4 has issues wwith gitea
|
||||
with:
|
||||
@ -86,20 +172,61 @@ jobs:
|
||||
steam-publish:
|
||||
name: Steam Publish
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: cm2network/steamcmd:root
|
||||
needs: [export-windows, export-linux]
|
||||
env:
|
||||
STEAM_HOME: /root/steamcmd_data
|
||||
steps:
|
||||
# Need to install nodejs and git, and initalize git lfs for checkout
|
||||
- name: Install node.js and git
|
||||
|
||||
# Ensure steam info is provided
|
||||
- name: Check Gitea Variables
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y curl
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
|
||||
apt-get install -y nodejs git git-lfs
|
||||
if [ -z "${{ vars.STEAM_BUILD_USERNAME }}" ]; then
|
||||
echo "No Steam Username variable, cancelling build"
|
||||
echo "Please set the STEAM_BUILD_USERNAME variable in Gitea"
|
||||
exit 1
|
||||
else
|
||||
echo "Found STEAM_BUILD_USERNAME"
|
||||
fi
|
||||
|
||||
if [ -z "${{ secrets.STEAM_BUILD_PASSWORD }}" ]; then
|
||||
echo "No Steam Password secret, cancelling build"
|
||||
echo "Please set the STEAM_BUILD_PASSWORD secret in Gitea"
|
||||
exit 1
|
||||
else
|
||||
echo "Found STEAM_BUILD_PASSWORD"
|
||||
fi
|
||||
|
||||
if [ -z "${{ secrets.STEAM_GUARD_CODE }}" ]; then
|
||||
echo "No Steam Guard Code secret, cancelling build"
|
||||
echo "Please set the STEAM_GUARD_CODE secret in Gitea"
|
||||
exit 1
|
||||
else
|
||||
echo "Found STEAM_GUARD_CODE"
|
||||
fi
|
||||
|
||||
# I can't use the c2msnetwork/steamcmd bc I need to instlal git and nodejs for the actions/checkout@v4 to work
|
||||
# and I would need root access to install them, which root breaks saving the cache file
|
||||
# So here we setup the dependencies for the missing steamcmd image, nodejs, and git manually
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends \
|
||||
lib32gcc-s1 \
|
||||
lib32stdc++6 \
|
||||
curl \
|
||||
nodejs \
|
||||
git \
|
||||
git-lfs
|
||||
git lfs install
|
||||
|
||||
# Get the file from the link and put it in the required directory
|
||||
- name: Setup SteamCMD
|
||||
run: |
|
||||
mkdir -p ~/steamcmd
|
||||
curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C ~/steamcmd
|
||||
# Run once to initialize
|
||||
~/steamcmd/steamcmd.sh +quit
|
||||
|
||||
# Get all the files from the repo into the working directory
|
||||
- name: Checkout
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
with:
|
||||
@ -118,55 +245,66 @@ jobs:
|
||||
name: linux
|
||||
path: build/bin/linux
|
||||
|
||||
# The normal actions/cache@v3 doesn't work here, so need to manully restore the cache in this step
|
||||
# The only file we need is the config.vdf file for the steam gaurd code
|
||||
|
||||
# If the file doesn't exist, the steam upload will fail and request a new steam guard code.
|
||||
# After a successful upload, the config.vdf file will be created and saved in the cache for future runs
|
||||
- name: Restore Cache
|
||||
uses: https://gitea.com/actions/cache@v3
|
||||
uses: https://gitea.com/actions/cache/restore@v3
|
||||
with:
|
||||
path: |
|
||||
./steam_cache/
|
||||
~/Steam/config/config.vdf
|
||||
./steam_build_output/
|
||||
key: steam-cache-${{ runner.os }}-${{ github.ref_name }}
|
||||
restore-keys: |
|
||||
steam-cache-${{ runner.os }}-
|
||||
steam-cache-
|
||||
steam-cache-${{ runner.os }}
|
||||
steam-cache
|
||||
|
||||
- name: Read Cache
|
||||
# Debug to see if cache file exists
|
||||
- name: Debug Pre-Cache
|
||||
run: |
|
||||
mkdir -p ${{ env.STEAM_HOME }}/config
|
||||
cp ./steam_cache/config.vdf ${{ env.STEAM_HOME }}/config/ 2>/dev/null || echo "No cached config file"
|
||||
cp ./steam_cache/ssfn* ${{ env.STEAM_HOME }}/ 2>/dev/null || echo "No cached sentry file"
|
||||
|
||||
echo "Files in cache:"
|
||||
ls -la ./steam_cache/ 2>/dev/null || echo "No cache directory"
|
||||
echo "Files in Steam directory:"
|
||||
ls -la ${{ env.STEAM_HOME }}/ 2>/dev/null || echo "No Steam directory"
|
||||
echo "Checking for cached config file in :~/Steam/config/config.vdf"
|
||||
if [ -f ~/Steam/config/config.vdf ]; then
|
||||
echo "config.vdf exists!"
|
||||
ls -la ~/Steam/config/config.vdf
|
||||
else
|
||||
echo "No cached config.vdf file."
|
||||
fi
|
||||
|
||||
# Update the vdf with steam description from build info
|
||||
- name: Update VDF
|
||||
run: |
|
||||
cd $PROJECT_PATH
|
||||
SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8)
|
||||
sed -i -e "s/STEAM_DESCRIPTION/${GITHUB_REF_NAME} - ${SHORT_SHA}/" build/build_dependencies/steam/app_build_2739610.vdf
|
||||
|
||||
# There is a chacne that if you fail enough uplaods, steam will rate limit you.
|
||||
# But to get a new steamguard code, you need to fail at least once to get the emial with the code
|
||||
# The ratelimit time isn't published, but I saw in a reddit commit that its 30 minutes, but if you fail in that 30 mintues, it resets the timer
|
||||
# Waiting 30 mintues worked for me, idk if that supersition is real or not :)
|
||||
- name: Publish to Steam
|
||||
run: |
|
||||
cd $PROJECT_PATH
|
||||
# Try without Steam Guard first (for cached auth)
|
||||
/home/steam/steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType linux +login "${{ vars.STEAM_BUILD_USERNAME }}" "${{ secrets.STEAM_BUILD_PASSWORD }}" +run_app_build "$PWD/build/build_dependencies/steam/app_build_2739610.vdf" +quit || {
|
||||
echo "Login failed, trying with Steam Guard"
|
||||
# If that fails, use Steam Guard in single session
|
||||
/home/steam/steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType linux +set_steam_guard_code "${{ secrets.STEAM_GUARD_CODE }}" +login "${{ vars.STEAM_BUILD_USERNAME }}" "${{ secrets.STEAM_BUILD_PASSWORD }}" +run_app_build "$PWD/build/build_dependencies/steam/app_build_2739610.vdf" +quit
|
||||
}
|
||||
|
||||
- name: Write Cache
|
||||
~/steamcmd/steamcmd.sh +set_steam_guard_code "${{ secrets.STEAM_GUARD_CODE }}" +login "${{ vars.STEAM_BUILD_USERNAME }}" "${{ secrets.STEAM_BUILD_PASSWORD }}" +run_app_build "$PWD/build/build_dependencies/steam/app_build_2739610.vdf" +quit
|
||||
|
||||
# Sanity check make sure file exists
|
||||
- name: Debug Post-Cache
|
||||
run: |
|
||||
mkdir -p ./steam_cache
|
||||
echo "Checking for config file in :~/Steam/config/config.vdf"
|
||||
if [ -f ~/Steam/config/config.vdf ]; then
|
||||
echo "File exists!"
|
||||
ls -la ~/Steam/config/config.vdf
|
||||
else
|
||||
echo "No file found."
|
||||
fi
|
||||
|
||||
# Debug: Show all files in the steam home directory
|
||||
echo "All files in ${{ env.STEAM_HOME }}:"
|
||||
find ${{ env.STEAM_HOME }} -type f -name "*" 2>/dev/null
|
||||
|
||||
# Copy config file and sentry file to cache
|
||||
cp ${{ env.STEAM_HOME }}/config/config.vdf ./steam_cache/ 2>/dev/null || echo "No config file to cache"
|
||||
cp ${{ env.STEAM_HOME }}/ssfn* ./steam_cache/ 2>/dev/null || echo "No sentry file to cache"
|
||||
|
||||
echo "Files cached:"
|
||||
ls -la ./steam_cache/ 2>/dev/null || echo "No cache directory"
|
||||
# Manually save the cache file, normal method doesn't work
|
||||
- name: Save Cache
|
||||
uses: https://gitea.com/actions/cache/save@v3
|
||||
with:
|
||||
path: |
|
||||
~/Steam/config/config.vdf
|
||||
./steam_build_output/
|
||||
key: steam-cache-${{ runner.os }}-${{ github.ref_name }}
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -2,5 +2,5 @@
|
||||
.godot/
|
||||
/android/
|
||||
|
||||
build/bin/linux/*
|
||||
build/bin/windows/*
|
||||
build/bin/*
|
||||
build/build_dependencies/export_templates/*
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +1,7 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bgpec3avuotkt"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dlna6j58fshxu" path="res://game/scripts/version_label.gd" id="1_iapjp"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_no5d7"]
|
||||
sky_top_color = Color(0.340506, 0.443905, 0.662582, 1)
|
||||
sky_horizon_color = Color(0.628525, 0.659459, 0.743124, 1)
|
||||
@ -17,12 +19,10 @@ sky = SubResource("Sky_iapjp")
|
||||
tonemap_mode = 2
|
||||
glow_enabled = true
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_ayuu8"]
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_no5d7"]
|
||||
|
||||
[sub_resource type="TorusMesh" id="TorusMesh_no5d7"]
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_iapjp"]
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
@ -33,21 +33,29 @@ shadow_enabled = true
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_8n7uv")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.796688, 0.604391, 0, -0.604391, 0.796688, 0, 0, 0, 1, 0, 0, 0)
|
||||
mesh = SubResource("CapsuleMesh_ayuu8")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.796688, 0.604391, 0, -0.604391, 0.796688, 0, 0, 0, 1, -0.779875, 0.463808, 0)
|
||||
mesh = SubResource("SphereMesh_no5d7")
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.9115, 0.389701, -0.131534, 0.290076, -0.382369, 0.877297, 0.291589, -0.837811, -0.461572, 0.24582, 0, 0)
|
||||
mesh = SubResource("TorusMesh_no5d7")
|
||||
|
||||
[node name="MeshInstance3D4" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.796688, 0.604391, 0, -0.604391, 0.796688, 0, 0, 0, 1, -0.208549, 0.319772, -0.39809)
|
||||
mesh = SubResource("SphereMesh_no5d7")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.9115, 0.389701, -0.131535, 0.290076, -0.382369, 0.877297, 0.291589, -0.837811, -0.461572, -0.27379, 0.506899, -0.0184803)
|
||||
mesh = SubResource("TorusMesh_no5d7")
|
||||
transform = Transform3D(0.9115, 0.389701, -0.131534, 0.290076, -0.382369, 0.877297, 0.291589, -0.837811, -0.461572, 0.504088, -0.133605, -0.349527)
|
||||
mesh = SubResource("SphereMesh_iapjp")
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(-0.998152, 0, -0.0607699, 0, 1, 0, 0.0607699, 0, -0.998152, 0, 0, -2.11699)
|
||||
|
||||
[node name="temp_ui" type="Control" parent="."]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VersionLabel" type="Label" parent="temp_ui"]
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 23.0
|
||||
script = ExtResource("1_iapjp")
|
||||
minor_version = 1
|
||||
patch = 3
|
||||
|
||||
@ -9,7 +9,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="build/bin/windows/videogame.exe"
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
@ -33,7 +33,7 @@ codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=false
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
@ -79,7 +79,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="build/bin/linux/videogame.x86_64"
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
|
||||
8
game/scripts/version_info.gd
Normal file
8
game/scripts/version_info.gd
Normal file
@ -0,0 +1,8 @@
|
||||
class_name VersionInfo extends Label
|
||||
|
||||
var project_name: String = "X"
|
||||
var commit_number: int = 0
|
||||
var branch_name: String = "X"
|
||||
var short_sha: String = "X"
|
||||
|
||||
var build_override: bool = false
|
||||
1
game/scripts/version_info.gd.uid
Normal file
1
game/scripts/version_info.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://b3rhuel4vnoss
|
||||
23
game/scripts/version_label.gd
Normal file
23
game/scripts/version_label.gd
Normal file
@ -0,0 +1,23 @@
|
||||
extends VersionInfo
|
||||
|
||||
|
||||
@export var show_label_in_editor: bool = true
|
||||
@export_category("Label Settings")
|
||||
@export var major_version: int = 0
|
||||
@export var minor_version: int = 0
|
||||
@export var patch: int = 0
|
||||
|
||||
@export var show_branch_name: bool = true
|
||||
@export var show_sha: bool = true
|
||||
|
||||
func _ready() -> void:
|
||||
# fill text
|
||||
text = ("%s_%d.%d.%d-%03d" %[project_name, major_version, minor_version, patch, commit_number])
|
||||
|
||||
# extra details
|
||||
if show_branch_name: text += "-%s" %branch_name
|
||||
if show_sha: text += "-%s" %short_sha
|
||||
|
||||
# show text
|
||||
if show_label_in_editor || build_override: show()
|
||||
else: hide()
|
||||
1
game/scripts/version_label.gd.uid
Normal file
1
game/scripts/version_label.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://dlna6j58fshxu
|
||||
Reference in New Issue
Block a user