73 lines
2.3 KiB
GDScript
73 lines
2.3 KiB
GDScript
extends Node
|
|
## Global configuration for the Tekton Launcher
|
|
|
|
# itch.io Configuration
|
|
const ITCH_GAME_URL := "https://your-username.itch.io/tekton-local"
|
|
const ITCH_DEVLOG_URL := "https://itch.io/api/1/your-key/game/your-game-id/devlog" # Replace with actual
|
|
|
|
# Version manifest URL (hosted on itch.io or alongside game files)
|
|
const VERSION_MANIFEST_URL := "https://your-username.itch.io/tekton-local/data/version.json"
|
|
|
|
# Local paths (shared across platforms)
|
|
const GAME_DIRECTORY := "user://game/"
|
|
const LOCAL_VERSION_FILE := "user://version.txt"
|
|
const BACKUP_DIRECTORY := "user://backup/"
|
|
|
|
# Platform detection
|
|
enum Platform { WINDOWS, LINUX, MACOS }
|
|
|
|
static func get_current_platform() -> Platform:
|
|
var os_name := OS.get_name()
|
|
match os_name:
|
|
"Windows":
|
|
return Platform.WINDOWS
|
|
"Linux", "FreeBSD", "NetBSD", "OpenBSD", "BSD":
|
|
return Platform.LINUX
|
|
"macOS":
|
|
return Platform.MACOS
|
|
_:
|
|
push_warning("Unknown platform: " + os_name + ", defaulting to Linux")
|
|
return Platform.LINUX
|
|
|
|
static func get_game_executable() -> String:
|
|
match get_current_platform():
|
|
Platform.WINDOWS:
|
|
return "tekton-local.exe"
|
|
Platform.LINUX:
|
|
return "tekton-local.x86_64"
|
|
Platform.MACOS:
|
|
return "tekton-local.app"
|
|
return "tekton-local"
|
|
|
|
static func get_game_pck() -> String:
|
|
# PCK is the same across platforms, but we include platform in name for clarity
|
|
match get_current_platform():
|
|
Platform.WINDOWS:
|
|
return "tekton-local-windows.pck"
|
|
Platform.LINUX:
|
|
return "tekton-local-linux.pck"
|
|
Platform.MACOS:
|
|
return "tekton-local-macos.pck"
|
|
return "tekton-local.pck"
|
|
|
|
static func get_platform_name() -> String:
|
|
match get_current_platform():
|
|
Platform.WINDOWS:
|
|
return "windows"
|
|
Platform.LINUX:
|
|
return "linux"
|
|
Platform.MACOS:
|
|
return "macos"
|
|
return "unknown"
|
|
|
|
# UI Colors (Cyberpunk/Tech theme matching game aesthetic)
|
|
const COLOR_PRIMARY := Color("#00d4ff") # Cyan
|
|
const COLOR_SECONDARY := Color("#ff00aa") # Magenta
|
|
const COLOR_BACKGROUND := Color("#0a0a1a") # Dark blue-black
|
|
const COLOR_SURFACE := Color("#141428") # Slightly lighter
|
|
const COLOR_SUCCESS := Color("#00ff88") # Green
|
|
const COLOR_WARNING := Color("#ffaa00") # Orange
|
|
const COLOR_ERROR := Color("#ff4444") # Red
|
|
const COLOR_TEXT := Color("#ffffff") # White
|
|
const COLOR_TEXT_DIM := Color("#888899") # Dim text
|