Compare commits
No commits in common. "190b6b2eabafca9e06b2d8c65ec288356eea228c" and "d13c2cdfdc1e950eb4300aa14c1a04fb2614820d" have entirely different histories.
190b6b2eab
...
d13c2cdfdc
11895 changed files with 12155 additions and 1417444 deletions
15
.github/FUNDING.yml
vendored
15
.github/FUNDING.yml
vendored
|
|
@ -1,15 +0,0 @@
|
||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
|
||||||
patreon: # Replace with a single Patreon username
|
|
||||||
open_collective: # Replace with a single Open Collective username
|
|
||||||
ko_fi: # Replace with a single Ko-fi username
|
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
||||||
liberapay: # Replace with a single Liberapay username
|
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
|
||||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
|
||||||
polar: # Replace with a single Polar username
|
|
||||||
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
|
||||||
thanks_dev: # Replace with a single thanks.dev username
|
|
||||||
custom: fund.aethex.foundation
|
|
||||||
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
|
@ -1,38 +0,0 @@
|
||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
A clear and concise description of what the bug is.
|
|
||||||
|
|
||||||
**To Reproduce**
|
|
||||||
Steps to reproduce the behavior:
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
|
||||||
|
|
||||||
**Desktop (please complete the following information):**
|
|
||||||
- OS: [e.g. iOS]
|
|
||||||
- Browser [e.g. chrome, safari]
|
|
||||||
- Version [e.g. 22]
|
|
||||||
|
|
||||||
**Smartphone (please complete the following information):**
|
|
||||||
- Device: [e.g. iPhone6]
|
|
||||||
- OS: [e.g. iOS8.1]
|
|
||||||
- Browser [e.g. stock browser, safari]
|
|
||||||
- Version [e.g. 22]
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context about the problem here.
|
|
||||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
|
@ -1,20 +0,0 @@
|
||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
||||||
53
.github/workflows/jekyll-gh-pages.yml
vendored
53
.github/workflows/jekyll-gh-pages.yml
vendored
|
|
@ -1,53 +0,0 @@
|
||||||
# Deploy Docsify documentation to GitHub Pages
|
|
||||||
name: Deploy Docsify Documentation
|
|
||||||
|
|
||||||
on:
|
|
||||||
# Runs on pushes targeting the default branch
|
|
||||||
push:
|
|
||||||
branches: ["main"]
|
|
||||||
paths:
|
|
||||||
- 'docs/**'
|
|
||||||
- '.github/workflows/jekyll-gh-pages.yml'
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
pages: write
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
||||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
||||||
concurrency:
|
|
||||||
group: "pages"
|
|
||||||
cancel-in-progress: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# Build job
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Pages
|
|
||||||
uses: actions/configure-pages@v5
|
|
||||||
|
|
||||||
- name: Upload docs folder
|
|
||||||
uses: actions/upload-pages-artifact@v3
|
|
||||||
with:
|
|
||||||
path: 'docs'
|
|
||||||
|
|
||||||
# Deployment job
|
|
||||||
deploy:
|
|
||||||
environment:
|
|
||||||
name: github-pages
|
|
||||||
url: ${{ steps.deployment.outputs.page_url }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: build
|
|
||||||
steps:
|
|
||||||
- name: Deploy to GitHub Pages
|
|
||||||
id: deployment
|
|
||||||
uses: actions/deploy-pages@v4
|
|
||||||
|
|
@ -1,204 +0,0 @@
|
||||||
# AeThex Language Integration
|
|
||||||
|
|
||||||
AeThex Engine includes deep integration with **AeThex Lang**, a cross-platform scripting language that compiles to multiple game engine targets.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
AeThex Lang allows you to write game logic once and deploy it to:
|
|
||||||
- **Roblox** (Luau)
|
|
||||||
- **UEFN/Fortnite** (Verse)
|
|
||||||
- **Unity** (C#)
|
|
||||||
- **Web** (JavaScript)
|
|
||||||
- **AeThex Engine** (Native VM)
|
|
||||||
|
|
||||||
## Language Features
|
|
||||||
|
|
||||||
### Reality Blocks (Modules)
|
|
||||||
```aethex
|
|
||||||
reality MyGame {
|
|
||||||
platforms: [roblox, uefn, unity, web]
|
|
||||||
|
|
||||||
// Module content
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Journey Functions
|
|
||||||
Cross-platform functions that work identically across all targets:
|
|
||||||
```aethex
|
|
||||||
journey calculateDamage(baseDamage: Number, multiplier: Number) {
|
|
||||||
reveal baseDamage * multiplier
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Beacons (Signals)
|
|
||||||
Events that can be emitted and listened to:
|
|
||||||
```aethex
|
|
||||||
beacon onPlayerDied(playerId: String)
|
|
||||||
beacon onScoreChanged(newScore: Number)
|
|
||||||
|
|
||||||
// Emit a beacon
|
|
||||||
emit onPlayerDied("player_123")
|
|
||||||
```
|
|
||||||
|
|
||||||
### Artifacts (Classes)
|
|
||||||
Object-oriented classes:
|
|
||||||
```aethex
|
|
||||||
artifact Player {
|
|
||||||
let health: Number = 100
|
|
||||||
let name: String = "Player"
|
|
||||||
|
|
||||||
journey takeDamage(amount: Number) {
|
|
||||||
health = health - amount
|
|
||||||
when health <= 0 {
|
|
||||||
notify `${name} died!`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Control Flow
|
|
||||||
```aethex
|
|
||||||
// Conditionals
|
|
||||||
when condition {
|
|
||||||
// true branch
|
|
||||||
} otherwise {
|
|
||||||
// false branch
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loops
|
|
||||||
traverse item in collection {
|
|
||||||
notify item
|
|
||||||
}
|
|
||||||
|
|
||||||
while isRunning {
|
|
||||||
// loop body
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Cross-Platform Sync
|
|
||||||
```aethex
|
|
||||||
// Sync data across all platforms
|
|
||||||
sync playerData across all
|
|
||||||
|
|
||||||
// Sync to specific platforms
|
|
||||||
sync inventory across [roblox, uefn]
|
|
||||||
```
|
|
||||||
|
|
||||||
### Platform-Specific Code
|
|
||||||
```aethex
|
|
||||||
@platform(roblox)
|
|
||||||
journey robloxOnly() {
|
|
||||||
// Only runs on Roblox
|
|
||||||
}
|
|
||||||
|
|
||||||
@platform(unity)
|
|
||||||
journey unityOnly() {
|
|
||||||
// Only runs on Unity
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Type System
|
|
||||||
|
|
||||||
| AeThex Type | Roblox | UEFN | Unity | JavaScript |
|
|
||||||
|-------------|--------|------|-------|------------|
|
|
||||||
| Number | number | float | float | number |
|
|
||||||
| String | string | string | string | string |
|
|
||||||
| Boolean | boolean | logic | bool | boolean |
|
|
||||||
| Array | table | array | List<T> | Array |
|
|
||||||
| Dictionary | table | map | Dictionary<K,V> | Object |
|
|
||||||
| Vector2 | Vector2 | vector2 | Vector2 | {x,y} |
|
|
||||||
| Vector3 | Vector3 | vector3 | Vector3 | {x,y,z} |
|
|
||||||
|
|
||||||
## Built-in Functions
|
|
||||||
|
|
||||||
| AeThex | Description |
|
|
||||||
|--------|-------------|
|
|
||||||
| `notify(msg)` | Print to console/log |
|
|
||||||
| `reveal value` | Return from function |
|
|
||||||
| `emit beacon(args)` | Emit a signal |
|
|
||||||
| `await task()` | Async wait |
|
|
||||||
| `sync data across targets` | Cross-platform sync |
|
|
||||||
|
|
||||||
## Using in Editor
|
|
||||||
|
|
||||||
1. Create a new file with `.aethex` extension
|
|
||||||
2. Write your cross-platform code
|
|
||||||
3. The editor provides syntax highlighting
|
|
||||||
4. Export to any target platform using the Export menu
|
|
||||||
|
|
||||||
## Export Targets
|
|
||||||
|
|
||||||
### Roblox Export
|
|
||||||
Generates `.lua` files compatible with Roblox Studio:
|
|
||||||
```lua
|
|
||||||
-- Generated from player.aethex
|
|
||||||
local Player = {}
|
|
||||||
|
|
||||||
function Player.takeDamage(amount)
|
|
||||||
-- Implementation
|
|
||||||
end
|
|
||||||
|
|
||||||
return Player
|
|
||||||
```
|
|
||||||
|
|
||||||
### UEFN Export
|
|
||||||
Generates `.verse` files for Unreal Editor for Fortnite:
|
|
||||||
```verse
|
|
||||||
# Generated from player.aethex
|
|
||||||
using { /Fortnite.com/Devices }
|
|
||||||
|
|
||||||
player_device := class(creative_device):
|
|
||||||
TakeDamage(Amount : float)<suspends> : void =
|
|
||||||
# Implementation
|
|
||||||
```
|
|
||||||
|
|
||||||
### Unity Export
|
|
||||||
Generates `.cs` files for Unity:
|
|
||||||
```csharp
|
|
||||||
// Generated from player.aethex
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class Player : MonoBehaviour
|
|
||||||
{
|
|
||||||
public void TakeDamage(float amount)
|
|
||||||
{
|
|
||||||
// Implementation
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Web Export
|
|
||||||
Generates JavaScript bundle:
|
|
||||||
```javascript
|
|
||||||
// Generated from player.aethex
|
|
||||||
const Player = {
|
|
||||||
takeDamage(amount) {
|
|
||||||
// Implementation
|
|
||||||
}
|
|
||||||
};
|
|
||||||
export default Player;
|
|
||||||
```
|
|
||||||
|
|
||||||
## Module Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
modules/aethex_lang/
|
|
||||||
├── register_types.cpp/h # Module registration
|
|
||||||
├── aethex_script.cpp/h # Script resource class
|
|
||||||
├── aethex_tokenizer.cpp/h # Lexer
|
|
||||||
├── aethex_parser.cpp/h # AST parser
|
|
||||||
├── aethex_compiler.cpp/h # Bytecode + cross-platform compiler
|
|
||||||
├── aethex_vm.cpp/h # Virtual machine
|
|
||||||
├── editor/
|
|
||||||
│ └── aethex_highlighter.cpp/h # Syntax highlighting
|
|
||||||
├── export/
|
|
||||||
│ └── aethex_exporter.cpp/h # Cross-platform export
|
|
||||||
└── examples/
|
|
||||||
└── cross_platform_player.aethex
|
|
||||||
```
|
|
||||||
|
|
||||||
## Integration with AeThex Ecosystem
|
|
||||||
|
|
||||||
- **AeThex Studio**: Templates use AeThex Lang for cross-platform logic
|
|
||||||
- **AeThex Forge**: Marketplace assets can include `.aethex` scripts
|
|
||||||
- **AeThex Launcher**: Build and deploy AeThex Lang projects
|
|
||||||
|
|
@ -8,39 +8,23 @@ Complete technical architecture of the AeThex Engine ecosystem.
|
||||||
|
|
||||||
AeThex is a complete game development platform consisting of three core components:
|
AeThex is a complete game development platform consisting of three core components:
|
||||||
|
|
||||||
```mermaid
|
```
|
||||||
graph TB
|
┌────────────────────────────────────────────────────────────────┐
|
||||||
subgraph Platform["⚡ AeThex Platform"]
|
│ AeThex Platform │
|
||||||
subgraph Engine["AeThex Engine<br/>(C++/GDScript)"]
|
├────────────────────────────────────────────────────────────────┤
|
||||||
E1[Game Runtime]
|
│ │
|
||||||
E2[Editor]
|
│ ┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐ │
|
||||||
E3[Cloud SDK]
|
│ │ AeThex Engine │ │ Studio IDE │ │ Cloud Services │ │
|
||||||
E4[AI Module]
|
│ │ │ │ │ │ │ │
|
||||||
end
|
│ │ • Game Runtime │ │ • Browser │ │ • Auth │ │
|
||||||
|
│ │ • Editor │ │ • Collab │ │ • Multiplayer │ │
|
||||||
subgraph Studio["Studio IDE<br/>(TypeScript/React)"]
|
│ │ • Cloud SDK │ │ • Live View │ │ • Saves │ │
|
||||||
S1[Browser-Based]
|
│ │ • AI Module │ │ • Assets │ │ • Analytics │ │
|
||||||
S2[Collaboration]
|
│ └─────────────────┘ └──────────────┘ └──────────────────┘ │
|
||||||
S3[Live Preview]
|
│ ↕ ↕ ↕ │
|
||||||
S4[Asset Manager]
|
│ C++/GDScript TypeScript/React Node.js/Go │
|
||||||
end
|
│ │
|
||||||
|
└────────────────────────────────────────────────────────────────┘
|
||||||
subgraph Cloud["Cloud Services<br/>(Node.js/Go)"]
|
|
||||||
C1[Authentication]
|
|
||||||
C2[Multiplayer]
|
|
||||||
C3[Cloud Saves]
|
|
||||||
C4[Analytics]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Engine <-->|WebSocket/HTTP| Studio
|
|
||||||
Engine <-->|REST API| Cloud
|
|
||||||
Studio <-->|API Gateway| Cloud
|
|
||||||
|
|
||||||
style Engine fill:#00ffff22,stroke:#00ffff,stroke-width:2px
|
|
||||||
style Studio fill:#ff00ff22,stroke:#ff00ff,stroke-width:2px
|
|
||||||
style Cloud fill:#00ffff22,stroke:#00ffff,stroke-width:2px
|
|
||||||
style Platform fill:#00000000,stroke:#ffffff,stroke-width:1px
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -49,46 +33,21 @@ graph TB
|
||||||
|
|
||||||
Based on Godot Engine 4.3-stable with AeThex-specific modules.
|
Based on Godot Engine 4.3-stable with AeThex-specific modules.
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> The engine core is written in C++ with GDScript as the primary scripting language. All cloud and AI features are accessible via simple GDScript APIs.
|
|
||||||
|
|
||||||
### Architecture Layers
|
### Architecture Layers
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph TD
|
|
||||||
subgraph Layer4["Application Layer"]
|
|
||||||
Game[Game Code<br/>GDScript/C#/C++]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Layer3["SDK Layer"]
|
|
||||||
SDK[AeThex Cloud SDK<br/>GDScript APIs]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Layer2["Module Layer"]
|
|
||||||
M1[aethex_cloud]
|
|
||||||
M2[aethex_ai]
|
|
||||||
M3[aethex_studio]
|
|
||||||
M4[aethex_analytics]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Layer1["Engine Layer"]
|
|
||||||
E1[Rendering]
|
|
||||||
E2[Physics]
|
|
||||||
E3[Audio]
|
|
||||||
E4[Networking]
|
|
||||||
E5[Scripting]
|
|
||||||
E6[Scene System]
|
|
||||||
end
|
|
||||||
|
|
||||||
Game --> SDK
|
|
||||||
SDK --> M1 & M2 & M3 & M4
|
|
||||||
M1 & M2 & M3 & M4 --> E1 & E2 & E3 & E4 & E5 & E6
|
|
||||||
|
|
||||||
style Layer4 fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Layer3 fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
style Layer2 fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Layer1 fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
```
|
```
|
||||||
|
┌────────────────────────────────────────────┐
|
||||||
|
│ Game Code (GDScript/C#) │ ← Developer's game
|
||||||
|
├────────────────────────────────────────────┤
|
||||||
|
│ AeThex Cloud SDK (GDScript) │ ← Cloud API
|
||||||
|
├────────────────────────────────────────────┤
|
||||||
|
│ AeThex Modules (C++) │ ← Cloud/AI/Studio
|
||||||
|
│ • aethex_cloud • aethex_ai │
|
||||||
|
│ • aethex_studio • aethex_analytics │
|
||||||
|
├────────────────────────────────────────────┤
|
||||||
|
│ Godot Core Engine (C++) │ ← Game engine
|
||||||
|
│ • Rendering • Physics • Audio │
|
||||||
|
│ • Networking • Scripting • Scene System │
|
||||||
├────────────────────────────────────────────┤
|
├────────────────────────────────────────────┤
|
||||||
│ Platform Layer (OS-specific) │ ← Windows/Linux/Mac
|
│ Platform Layer (OS-specific) │ ← Windows/Linux/Mac
|
||||||
└────────────────────────────────────────────┘
|
└────────────────────────────────────────────┘
|
||||||
|
|
|
||||||
|
|
@ -510,7 +510,7 @@ spec:
|
||||||
|
|
||||||
### REST API Standards
|
### REST API Standards
|
||||||
|
|
||||||
**Base URL:** `https://api.aethex.dev/v1`
|
**Base URL:** `https://api.aethex.io/v1`
|
||||||
|
|
||||||
**Request Format:**
|
**Request Format:**
|
||||||
```json
|
```json
|
||||||
|
|
@ -559,7 +559,7 @@ spec:
|
||||||
|
|
||||||
### WebSocket Protocol
|
### WebSocket Protocol
|
||||||
|
|
||||||
**Connection URL:** `wss://ws.aethex.dev/v1/multiplayer`
|
**Connection URL:** `wss://ws.aethex.io/v1/multiplayer`
|
||||||
|
|
||||||
**Authentication:**
|
**Authentication:**
|
||||||
```json
|
```json
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ website = "https://godotengine.org"
|
||||||
```python
|
```python
|
||||||
short_name = "aethex"
|
short_name = "aethex"
|
||||||
name = "AeThex Engine"
|
name = "AeThex Engine"
|
||||||
website = "https://aethex.dev" # or your domain
|
website = "https://aethex.io" # or your domain
|
||||||
```
|
```
|
||||||
|
|
||||||
**Impact:** Changes all version strings, window titles, splash screens
|
**Impact:** Changes all version strings, window titles, splash screens
|
||||||
|
|
@ -102,7 +102,7 @@ engine/editor/editor_themes.cpp
|
||||||
```cpp
|
```cpp
|
||||||
// Add AeThex default settings
|
// Add AeThex default settings
|
||||||
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_NONE, "network/cloud_api_url",
|
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_NONE, "network/cloud_api_url",
|
||||||
"https://api.aethex.dev", "")
|
"https://api.aethex.io", "")
|
||||||
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "aethex/enable_ai_assist",
|
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "aethex/enable_ai_assist",
|
||||||
true, "")
|
true, "")
|
||||||
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_NONE, "aethex/theme",
|
EDITOR_SETTING(Variant::STRING, PROPERTY_HINT_NONE, "aethex/theme",
|
||||||
|
|
@ -248,70 +248,6 @@ modules/aethex_ai/
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 6: AeThex Lang Integration ✅ COMPLETED
|
|
||||||
|
|
||||||
### 6.1 Cross-Platform Scripting Language
|
|
||||||
|
|
||||||
**Created:** `engine/modules/aethex_lang/`
|
|
||||||
|
|
||||||
AeThex Lang is a unified scripting language that compiles to multiple game engines:
|
|
||||||
- **Roblox** (Luau)
|
|
||||||
- **UEFN/Fortnite** (Verse)
|
|
||||||
- **Unity** (C#)
|
|
||||||
- **Web** (JavaScript)
|
|
||||||
- **AeThex Engine** (Native VM)
|
|
||||||
|
|
||||||
**Module Structure:**
|
|
||||||
```
|
|
||||||
modules/aethex_lang/
|
|
||||||
├── config.py # Module configuration
|
|
||||||
├── SCsub # Build script
|
|
||||||
├── register_types.h/cpp # Module registration
|
|
||||||
├── aethex_script.h/cpp # Script resource class
|
|
||||||
├── aethex_tokenizer.h/cpp # Lexer
|
|
||||||
├── aethex_parser.h/cpp # AST parser
|
|
||||||
├── aethex_compiler.h/cpp # Cross-platform compiler
|
|
||||||
├── aethex_vm.h/cpp # Bytecode virtual machine
|
|
||||||
├── editor/
|
|
||||||
│ └── aethex_highlighter.h/cpp # Syntax highlighting
|
|
||||||
├── export/
|
|
||||||
│ └── aethex_exporter.h/cpp # Cross-platform export
|
|
||||||
└── examples/
|
|
||||||
└── cross_platform_player.aethex
|
|
||||||
```
|
|
||||||
|
|
||||||
### 6.2 Language Features
|
|
||||||
|
|
||||||
**AeThex-specific keywords:**
|
|
||||||
- `reality` - Module definition (replaces "namespace")
|
|
||||||
- `journey` - Function that works across platforms
|
|
||||||
- `beacon` - Signal/event declaration
|
|
||||||
- `artifact` - Class definition
|
|
||||||
- `notify` - Console output
|
|
||||||
- `reveal` - Return statement
|
|
||||||
- `sync across` - Cross-platform data sync
|
|
||||||
- `when/otherwise` - Conditionals
|
|
||||||
- `traverse` - For-each loop
|
|
||||||
|
|
||||||
### 6.3 Export Targets (All Working!)
|
|
||||||
|
|
||||||
| Target | Output File | Description |
|
|
||||||
|--------|-------------|-------------|
|
|
||||||
| Roblox | `.lua` | Luau scripts + .rbxlx project |
|
|
||||||
| UEFN | `.verse` | Verse code for Fortnite Creative |
|
|
||||||
| Unity | `.cs` | C# MonoBehaviour scripts |
|
|
||||||
| Web | `.js` | JavaScript ES6 modules |
|
|
||||||
|
|
||||||
### 6.4 Integration Points
|
|
||||||
|
|
||||||
- **AeThex Studio**: Templates use AeThex Lang
|
|
||||||
- **AeThex Forge**: Marketplace assets include .aethex scripts
|
|
||||||
- **AeThex Launcher**: Build and deploy to all platforms
|
|
||||||
|
|
||||||
**See:** `docs/AETHEX_LANG_INTEGRATION.md` for full documentation.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Code Search & Replace Guide
|
## Code Search & Replace Guide
|
||||||
|
|
||||||
### Global Text Replacements (Be Careful!)
|
### Global Text Replacements (Be Careful!)
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
This guide covers exporting your AeThex game to all supported platforms: Windows, Linux, macOS, Web (HTML5), and Android.
|
This guide covers exporting your AeThex game to all supported platforms: Windows, Linux, macOS, Web (HTML5), and Android.
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> Start with web exports for quick testing and distribution. Windows and Linux exports are easiest for desktop games.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
@ -16,42 +13,10 @@ AeThex supports exporting to:
|
||||||
|
|
||||||
Each platform has specific requirements and optimization considerations.
|
Each platform has specific requirements and optimization considerations.
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph TD
|
|
||||||
Game[🎮 Your Game] --> Export{Export Target}
|
|
||||||
|
|
||||||
Export -->|Desktop| Windows[🖥️ Windows]
|
|
||||||
Export -->|Desktop| Linux[🐧 Linux]
|
|
||||||
Export -->|Desktop| Mac[🍎 macOS]
|
|
||||||
Export -->|Web| HTML5[🌐 HTML5]
|
|
||||||
Export -->|Mobile| Android[📱 Android]
|
|
||||||
|
|
||||||
Windows --> Steam[Steam]
|
|
||||||
Windows --> Itch[itch.io]
|
|
||||||
Linux --> Steam
|
|
||||||
Linux --> Itch
|
|
||||||
Mac --> AppStore[App Store]
|
|
||||||
HTML5 --> Web[Web Hosting]
|
|
||||||
Android --> PlayStore[Google Play]
|
|
||||||
|
|
||||||
style Game fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Windows fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
style Linux fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Mac fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
style HTML5 fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Android fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
```
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> Each platform requires specific export templates. Download them from the editor or the AeThex website.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Before Exporting
|
## Before Exporting
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> Always test your game in release mode before exporting. Some bugs only appear in release builds due to optimizations and different code paths.
|
|
||||||
|
|
||||||
### 1. Test Your Game
|
### 1. Test Your Game
|
||||||
|
|
||||||
Always test thoroughly before exporting:
|
Always test thoroughly before exporting:
|
||||||
|
|
@ -88,7 +53,7 @@ Download export templates for your target platform:
|
||||||
# Via Studio IDE: Editor → Export Templates → Download
|
# Via Studio IDE: Editor → Export Templates → Download
|
||||||
|
|
||||||
# Or manually:
|
# Or manually:
|
||||||
wget https://aethex.dev/downloads/export-templates-[version].zip
|
wget https://aethex.io/downloads/export-templates-[version].zip
|
||||||
unzip export-templates-[version].zip -d ~/.local/share/aethex/templates/
|
unzip export-templates-[version].zip -d ~/.local/share/aethex/templates/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
This guide covers the core game development concepts and systems in AeThex Engine.
|
This guide covers the core game development concepts and systems in AeThex Engine.
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> New to game development? Start with the Scene System and Node Hierarchy sections. These are the foundation of everything in AeThex.
|
|
||||||
|
|
||||||
## Scene System
|
## Scene System
|
||||||
|
|
||||||
### What is a Scene?
|
### What is a Scene?
|
||||||
|
|
@ -16,22 +13,6 @@ A **scene** is a collection of nodes organized in a tree structure. Scenes are t
|
||||||
- Items
|
- Items
|
||||||
- Prefabs/templates
|
- Prefabs/templates
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph TD
|
|
||||||
Scene[🎬 Scene File<br/>.tscn] --> Root[Root Node]
|
|
||||||
Root --> Child1[Child Node 1]
|
|
||||||
Root --> Child2[Child Node 2]
|
|
||||||
Root --> Child3[Child Node 3]
|
|
||||||
Child2 --> GrandChild1[Grandchild 1]
|
|
||||||
Child2 --> GrandChild2[Grandchild 2]
|
|
||||||
|
|
||||||
style Scene fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Root fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
```
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> Scenes can be nested inside other scenes. This allows you to create reusable components and maintain a clean project structure.
|
|
||||||
|
|
||||||
### Working with Scenes
|
### Working with Scenes
|
||||||
|
|
||||||
**Creating Scenes:**
|
**Creating Scenes:**
|
||||||
|
|
@ -56,9 +37,6 @@ var packed_scene = load("res://levels/next_level.tscn")
|
||||||
get_tree().change_scene_to_packed(packed_scene)
|
get_tree().change_scene_to_packed(packed_scene)
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> Always use `change_scene_to_file()` or `change_scene_to_packed()` to switch scenes. Manually removing and adding root nodes can cause issues with signal connections and autoloads.
|
|
||||||
|
|
||||||
**Scene Lifecycle:**
|
**Scene Lifecycle:**
|
||||||
- `_enter_tree()` - Called when node enters the scene tree
|
- `_enter_tree()` - Called when node enters the scene tree
|
||||||
- `_ready()` - Called when node and children are ready
|
- `_ready()` - Called when node and children are ready
|
||||||
|
|
@ -143,33 +121,6 @@ get_tree().call_group("enemies", "take_damage", 10)
|
||||||
|
|
||||||
**Signals** are AeThex's implementation of the observer pattern. They allow nodes to communicate without tight coupling.
|
**Signals** are AeThex's implementation of the observer pattern. They allow nodes to communicate without tight coupling.
|
||||||
|
|
||||||
```mermaid
|
|
||||||
sequenceDiagram
|
|
||||||
participant Player
|
|
||||||
participant Enemy
|
|
||||||
participant UI
|
|
||||||
|
|
||||||
Player->>Player: take_damage(10)
|
|
||||||
Player->>Player: emit_signal("health_changed", 90)
|
|
||||||
Player->>UI: health_changed(90)
|
|
||||||
UI->>UI: update_health_bar(90)
|
|
||||||
|
|
||||||
Note over Player,UI: Signals enable loose coupling
|
|
||||||
|
|
||||||
Player->>Player: health reaches 0
|
|
||||||
Player->>Player: emit_signal("player_died")
|
|
||||||
Player->>UI: player_died
|
|
||||||
Player->>Enemy: player_died
|
|
||||||
UI->>UI: show_game_over()
|
|
||||||
Enemy->>Enemy: celebrate()
|
|
||||||
|
|
||||||
style Player fill:#00ffff22,stroke:#00ffff
|
|
||||||
style UI fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
```
|
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> Signals are perfect for situations where you want multiple systems to react to an event without creating dependencies between them.
|
|
||||||
|
|
||||||
### Built-in Signals
|
### Built-in Signals
|
||||||
|
|
||||||
**Common Node Signals:**
|
**Common Node Signals:**
|
||||||
|
|
@ -182,9 +133,6 @@ sequenceDiagram
|
||||||
- `Area2D.body_exited(body)` - Another body left the area
|
- `Area2D.body_exited(body)` - Another body left the area
|
||||||
- `Button.pressed()` - Button was clicked
|
- `Button.pressed()` - Button was clicked
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> Most built-in nodes come with useful signals. Check the documentation for each node type to see what signals are available.
|
|
||||||
|
|
||||||
### Creating Custom Signals
|
### Creating Custom Signals
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
|
|
|
||||||
|
|
@ -1,154 +0,0 @@
|
||||||
# AeThex Engine Integration Complete
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
AeThex Engine Core is now a fully integrated cross-platform game development ecosystem, extending Godot 4.7 with native AeThex tools.
|
|
||||||
|
|
||||||
## New Modules Created
|
|
||||||
|
|
||||||
### 1. `aethex_lang` - Cross-Platform Scripting Language
|
|
||||||
**Location:** `engine/modules/aethex_lang/`
|
|
||||||
|
|
||||||
A complete scripting language that compiles to multiple platforms:
|
|
||||||
- **Tokenizer** (`aethex_tokenizer.h/cpp`) - Lexical analysis with AeThex keywords
|
|
||||||
- **Parser** (`aethex_parser.h/cpp`) - Recursive descent parser producing AST
|
|
||||||
- **Compiler** (`aethex_compiler.h/cpp`) - Bytecode compiler + cross-platform code generators
|
|
||||||
- **Virtual Machine** (`aethex_vm.h/cpp`) - Stack-based VM for native execution
|
|
||||||
- **Editor Highlighter** (`editor/aethex_highlighter.h/cpp`) - Syntax highlighting for .aethex files
|
|
||||||
- **Exporter** (`export/aethex_exporter.h/cpp`) - Cross-platform export functionality
|
|
||||||
|
|
||||||
**AeThex Lang Syntax:**
|
|
||||||
```aethex
|
|
||||||
reality Player {
|
|
||||||
beacon health: Number = 100
|
|
||||||
beacon position: Vector3 = (0, 0, 0)
|
|
||||||
|
|
||||||
journey start() {
|
|
||||||
reveal("Game started!")
|
|
||||||
}
|
|
||||||
|
|
||||||
journey update(delta: Number) {
|
|
||||||
sync across {
|
|
||||||
position.y += delta
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Keywords:**
|
|
||||||
- `reality` → class/object definition
|
|
||||||
- `journey` → function/method
|
|
||||||
- `beacon` → mutable variable
|
|
||||||
- `artifact` → constant
|
|
||||||
- `reveal()` → print/log output
|
|
||||||
- `notify()` → emit signal/event
|
|
||||||
- `sync across { }` → async/concurrent block
|
|
||||||
|
|
||||||
### 2. `aethex_marketplace` - AeThex Forge Integration
|
|
||||||
**Location:** `engine/modules/aethex_marketplace/`
|
|
||||||
|
|
||||||
Integrates AeThex Forge asset marketplace directly into the editor:
|
|
||||||
- **Marketplace Client** (`marketplace_client.h/cpp`) - API client for AeThex Forge
|
|
||||||
- **Asset Browser** (`asset_browser.h/cpp`) - Asset filtering and search
|
|
||||||
- **Asset Downloader** (`asset_downloader.h/cpp`) - Download queue and installation
|
|
||||||
- **Editor Dock** (`editor/marketplace_dock.h/cpp`) - Full editor UI dock
|
|
||||||
|
|
||||||
**Features:**
|
|
||||||
- Browse featured assets
|
|
||||||
- Search and filter by category/platform
|
|
||||||
- Purchase and download assets
|
|
||||||
- Install directly to project
|
|
||||||
|
|
||||||
### 3. `aethex_templates` - Project Template System
|
|
||||||
**Location:** `engine/modules/aethex_templates/`
|
|
||||||
|
|
||||||
Provides project templates from AeThex Studio:
|
|
||||||
- **Template Data** (`template_data.h/cpp`) - Template metadata and structure
|
|
||||||
- **Template Manager** (`template_manager.h/cpp`) - Template loading, downloading, instantiation
|
|
||||||
- **Template Wizard** (`editor/template_wizard.cpp`) - New project wizard UI
|
|
||||||
- **Template Browser** (`editor/template_browser.cpp`) - Template browsing and filtering
|
|
||||||
|
|
||||||
**Built-in Templates:**
|
|
||||||
1. Empty Project
|
|
||||||
2. 2D Platformer
|
|
||||||
3. 3D First Person
|
|
||||||
4. RPG Starter Kit
|
|
||||||
5. Multiplayer Game
|
|
||||||
6. Roblox Experience
|
|
||||||
7. UEFN Island
|
|
||||||
8. Unity Mobile
|
|
||||||
9. Web Game
|
|
||||||
10. Cross-Platform Game
|
|
||||||
|
|
||||||
### 4. `aethex_export` - Cross-Platform Export System
|
|
||||||
**Location:** `engine/modules/aethex_export/`
|
|
||||||
|
|
||||||
Export AeThex projects to multiple platforms:
|
|
||||||
- **Export Config** (`export_config.h/cpp`) - Configuration for cross-platform export
|
|
||||||
- **Export Preset** (`export_preset.h/cpp`) - Saved export presets
|
|
||||||
- **Platform Exporter** (`platform_exporter.h/cpp`) - Base exporter class
|
|
||||||
- **Roblox Exporter** (`roblox_exporter.h/cpp`) - AeThex → Luau compilation
|
|
||||||
- **UEFN Exporter** (`uefn_exporter.h/cpp`) - AeThex → Verse compilation
|
|
||||||
- **Unity Exporter** (`unity_exporter.h/cpp`) - AeThex → C# compilation
|
|
||||||
- **Web Exporter** (`web_exporter.h/cpp`) - AeThex → JavaScript compilation
|
|
||||||
- **Export Dialog** (`editor/export_dialog.h/cpp`) - Export UI with platform tabs
|
|
||||||
|
|
||||||
### 5. `aethex_ai` Integration - AI-Powered Development
|
|
||||||
**Location:** `engine/modules/aethex_ai/` (updated)
|
|
||||||
|
|
||||||
New integration layer connecting AI with all AeThex modules:
|
|
||||||
- **AeThex AI Integration** (`aethex_ai_integration.h/cpp`)
|
|
||||||
|
|
||||||
**Capabilities:**
|
|
||||||
- Complete AeThex code with platform awareness
|
|
||||||
- Explain AeThex code for specific platforms
|
|
||||||
- Convert GDScript/other code to AeThex Lang
|
|
||||||
- Suggest platform-specific optimizations
|
|
||||||
- Recommend templates based on project description
|
|
||||||
- Suggest marketplace assets for current task
|
|
||||||
- Generate complete game structures
|
|
||||||
- Provide contextual help across all modules
|
|
||||||
|
|
||||||
## Platform Targets
|
|
||||||
|
|
||||||
| Platform | Language | Status |
|
|
||||||
|----------|----------|--------|
|
|
||||||
| AeThex Native | AeThex Lang | ✅ |
|
|
||||||
| Roblox | Luau | ✅ |
|
|
||||||
| UEFN | Verse | ✅ |
|
|
||||||
| Unity | C# | ✅ |
|
|
||||||
| Web | JavaScript/TypeScript | ✅ |
|
|
||||||
|
|
||||||
## Integration with Existing Systems
|
|
||||||
|
|
||||||
The new modules integrate with:
|
|
||||||
- **AeThex Launcher** - Engine version management
|
|
||||||
- **AeThex Forge** - Asset marketplace
|
|
||||||
- **AeThex Studio** - Template system
|
|
||||||
- **AeThexOS** - Desktop environment (future)
|
|
||||||
|
|
||||||
## Building
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd engine
|
|
||||||
scons platform=windows target=editor
|
|
||||||
```
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
1. **Test Compilation** - Build the engine and verify all modules compile
|
|
||||||
2. **UI Polish** - Finalize editor UI components
|
|
||||||
3. **Documentation** - Add doc classes for all new types
|
|
||||||
4. **API Keys** - Configure AeThex API endpoints
|
|
||||||
5. **Template Content** - Populate templates with actual file content
|
|
||||||
6. **Asset Pipeline** - Implement full asset processing for each platform
|
|
||||||
|
|
||||||
## File Count Summary
|
|
||||||
|
|
||||||
- **aethex_lang**: 18 files (~2,500 lines)
|
|
||||||
- **aethex_marketplace**: 12 files (~1,500 lines)
|
|
||||||
- **aethex_templates**: 10 files (~1,200 lines)
|
|
||||||
- **aethex_export**: 16 files (~1,800 lines)
|
|
||||||
- **aethex_ai** (updates): 2 files (~400 lines)
|
|
||||||
|
|
||||||
**Total**: 58 new/modified files, ~7,400 lines of code
|
|
||||||
|
|
@ -1,375 +0,0 @@
|
||||||
# AeThex Studio Integration Plan
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
This document outlines the strategy to merge the **AeThex Launcher** (Tauri/React app) with the **AeThex Engine** (Godot 4.7 fork) into a unified **AeThex Studio** experience.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Current State Analysis
|
|
||||||
|
|
||||||
### AeThex Launcher Features (60+ components)
|
|
||||||
|
|
||||||
| Category | Features |
|
|
||||||
|----------|----------|
|
|
||||||
| **Core** | Game Library, Store, Download Manager, Auto-Update |
|
|
||||||
| **Social** | Friends, Activity Feed, AeThex Connect (messaging), Streaming, Replays |
|
|
||||||
| **Developer** | Gameforge, My Projects, AeThex Lang, Bot Dev IDE, Warden Security |
|
|
||||||
| **Community** | Forum, News Hub, Socials, Roadmap |
|
|
||||||
| **Economy** | Dev Exchange, Rewards Center, Gift System |
|
|
||||||
| **Account** | Auth (OAuth), Profile Hub, Cloud Saves, Achievements |
|
|
||||||
| **Settings** | Theme Engine, Sound System, Keyboard Shortcuts, Controller Mode |
|
|
||||||
| **Family** | Family Sharing, Parental Controls |
|
|
||||||
| **Testing** | Beta Testing Hub, Version Channels, Labs, Preview |
|
|
||||||
| **Modes** | Player, Creator, Corp, Foundation (different home screens) |
|
|
||||||
|
|
||||||
### AeThex Engine (Current)
|
|
||||||
|
|
||||||
- Godot 4.7 fork with custom modules
|
|
||||||
- Project Manager with new tabs (Terminal, Community, Cloud, Launcher)
|
|
||||||
- Custom modules: `aethex_cloud`, `aethex_telemetry`, `discord_rpc`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Integration Options
|
|
||||||
|
|
||||||
### Option A: Embedded WebView (Recommended - Phase 1)
|
|
||||||
|
|
||||||
**Concept**: Embed the React launcher UI inside the engine using a WebView/HTML component.
|
|
||||||
|
|
||||||
**Pros**:
|
|
||||||
- Fastest to implement (weeks, not months)
|
|
||||||
- Reuses 100% of existing launcher code
|
|
||||||
- Unified window experience
|
|
||||||
- Backend/API code unchanged
|
|
||||||
|
|
||||||
**Cons**:
|
|
||||||
- Requires bundling Chromium or using system WebView
|
|
||||||
- Adds ~50MB to engine size
|
|
||||||
- Two rendering systems (Godot + Web)
|
|
||||||
|
|
||||||
**Implementation**:
|
|
||||||
```
|
|
||||||
┌─────────────────────────────────────────────────────────────┐
|
|
||||||
│ AeThex Studio Window │
|
|
||||||
├──────────────┬──────────────────────────────────────────────┤
|
|
||||||
│ │ │
|
|
||||||
│ Sidebar │ Tab: Launcher (WebView) │
|
|
||||||
│ (Native) │ ├── React App renders here │
|
|
||||||
│ │ └── Full launcher functionality │
|
|
||||||
│ - Editor │ │
|
|
||||||
│ - Projects │ Tab: Editor (Native Godot) │
|
|
||||||
│ - Launcher │ ├── Scene editor │
|
|
||||||
│ - Settings │ └── Script editor │
|
|
||||||
│ │ │
|
|
||||||
└──────────────┴──────────────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
### Option B: Full Native Port (Phase 2+)
|
|
||||||
|
|
||||||
**Concept**: Rewrite all launcher features as native C++ Godot editor plugins.
|
|
||||||
|
|
||||||
**Pros**:
|
|
||||||
- Fully native, consistent UI
|
|
||||||
- No web dependencies
|
|
||||||
- Better performance
|
|
||||||
- Offline-first
|
|
||||||
|
|
||||||
**Cons**:
|
|
||||||
- 6-12 months development time
|
|
||||||
- 60+ React components → C++ translation
|
|
||||||
- Ongoing maintenance burden
|
|
||||||
|
|
||||||
**Priority Order for Native Port**:
|
|
||||||
1. Auth System (critical)
|
|
||||||
2. Game Library
|
|
||||||
3. Cloud Saves
|
|
||||||
4. Download Manager
|
|
||||||
5. Store
|
|
||||||
6. Social/Friends
|
|
||||||
7. Everything else
|
|
||||||
|
|
||||||
### Option C: Hybrid Progressive (Recommended Long-term)
|
|
||||||
|
|
||||||
**Concept**: Start with WebView, progressively replace critical features with native.
|
|
||||||
|
|
||||||
**Phase 1** (1-2 weeks): WebView integration
|
|
||||||
**Phase 2** (1 month): Native auth + game library
|
|
||||||
**Phase 3** (2 months): Native store + downloads
|
|
||||||
**Phase 4** (ongoing): Port remaining features as needed
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Recommended Architecture
|
|
||||||
|
|
||||||
```
|
|
||||||
AeThex Studio
|
|
||||||
├── engine/ # Godot 4.7 fork (C++)
|
|
||||||
│ ├── editor/
|
|
||||||
│ │ ├── project_manager/ # Enhanced project manager
|
|
||||||
│ │ └── launcher/ # NEW: Native launcher module
|
|
||||||
│ │ ├── auth_ui.cpp # Native auth screens
|
|
||||||
│ │ ├── game_library.cpp # Native game browser
|
|
||||||
│ │ ├── webview_panel.cpp # WebView for web features
|
|
||||||
│ │ └── launcher_api.cpp # Communication layer
|
|
||||||
│ └── modules/
|
|
||||||
│ ├── aethex_cloud/ # Cloud saves, sync
|
|
||||||
│ ├── aethex_auth/ # NEW: Native auth (Supabase)
|
|
||||||
│ └── aethex_store/ # NEW: Store API client
|
|
||||||
│
|
|
||||||
├── launcher-web/ # Embedded React app
|
|
||||||
│ ├── dist/ # Built React app
|
|
||||||
│ └── src/ # Source (from current launcher)
|
|
||||||
│
|
|
||||||
└── platform/
|
|
||||||
└── windows/
|
|
||||||
└── webview/ # Platform-specific WebView
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Phase 1 Implementation Plan (WebView)
|
|
||||||
|
|
||||||
### Step 1: Add WebView Support to Engine
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
// modules/webview/webview_panel.h
|
|
||||||
class WebViewPanel : public Control {
|
|
||||||
GDCLASS(WebViewPanel, Control);
|
|
||||||
|
|
||||||
void navigate(const String &url);
|
|
||||||
void load_html(const String &html);
|
|
||||||
void execute_javascript(const String &script);
|
|
||||||
void set_communication_callback(Callable callback);
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 2: Create Launcher Tab in Project Manager
|
|
||||||
|
|
||||||
The launcher tab will host a WebView that loads the React app:
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
// In ProjectManager
|
|
||||||
void _create_launcher_tab() {
|
|
||||||
WebViewPanel *webview = memnew(WebViewPanel);
|
|
||||||
webview->navigate("file:///launcher/index.html");
|
|
||||||
// or
|
|
||||||
webview->navigate("https://launcher.aethex.dev");
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 3: Bridge Communication
|
|
||||||
|
|
||||||
JavaScript ↔ C++ communication for:
|
|
||||||
- Launching games (JS calls C++ to spawn processes)
|
|
||||||
- File system access (downloads, installations)
|
|
||||||
- Native OS features (notifications, file dialogs)
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
// launcher_bridge.cpp
|
|
||||||
void LauncherBridge::handle_message(const String &message) {
|
|
||||||
Dictionary data = JSON::parse_string(message);
|
|
||||||
String action = data.get("action", "");
|
|
||||||
|
|
||||||
if (action == "launch_game") {
|
|
||||||
String exe_path = data.get("path", "");
|
|
||||||
OS::get_singleton()->execute(exe_path, args);
|
|
||||||
}
|
|
||||||
else if (action == "open_editor") {
|
|
||||||
EditorNode::get_singleton()->open_request(data.get("project_path", ""));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Step 4: Bundle React App
|
|
||||||
|
|
||||||
Build the React launcher and include it in the engine distribution:
|
|
||||||
|
|
||||||
```
|
|
||||||
aethex-studio/
|
|
||||||
├── bin/
|
|
||||||
│ └── aethex.windows.editor.x86_64.exe
|
|
||||||
└── launcher/
|
|
||||||
├── index.html
|
|
||||||
├── assets/
|
|
||||||
└── *.js
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Phase 2 Implementation Plan (Native Critical Features)
|
|
||||||
|
|
||||||
### Native Auth Module
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
// modules/aethex_auth/aethex_auth.h
|
|
||||||
class AeThexAuth : public Object {
|
|
||||||
GDCLASS(AeThexAuth, Object);
|
|
||||||
|
|
||||||
static AeThexAuth *singleton;
|
|
||||||
|
|
||||||
String supabase_url;
|
|
||||||
String supabase_anon_key;
|
|
||||||
String current_token;
|
|
||||||
Dictionary user_profile;
|
|
||||||
|
|
||||||
public:
|
|
||||||
Error sign_in_with_email(const String &email, const String &password);
|
|
||||||
Error sign_in_with_oauth(const String &provider); // google, discord, github
|
|
||||||
Error sign_out();
|
|
||||||
Error refresh_token();
|
|
||||||
|
|
||||||
bool is_authenticated() const;
|
|
||||||
Dictionary get_user() const;
|
|
||||||
Dictionary get_launcher_profile() const;
|
|
||||||
|
|
||||||
Signal user_signed_in;
|
|
||||||
Signal user_signed_out;
|
|
||||||
Signal profile_updated;
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
### Native Game Library
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
// modules/aethex_launcher/game_library.h
|
|
||||||
class GameLibrary : public Control {
|
|
||||||
GDCLASS(GameLibrary, Control);
|
|
||||||
|
|
||||||
struct GameEntry {
|
|
||||||
String id;
|
|
||||||
String title;
|
|
||||||
String cover_image;
|
|
||||||
String install_path;
|
|
||||||
String status; // installed, downloading, available
|
|
||||||
float download_progress;
|
|
||||||
String version;
|
|
||||||
};
|
|
||||||
|
|
||||||
Vector<GameEntry> games;
|
|
||||||
|
|
||||||
void refresh_library();
|
|
||||||
void launch_game(const String &game_id);
|
|
||||||
void install_game(const String &game_id);
|
|
||||||
void uninstall_game(const String &game_id);
|
|
||||||
void update_game(const String &game_id);
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Backend Integration
|
|
||||||
|
|
||||||
The launcher uses Supabase for:
|
|
||||||
|
|
||||||
| Service | Purpose |
|
|
||||||
|---------|---------|
|
|
||||||
| **Auth** | User authentication, OAuth providers |
|
|
||||||
| **Database** | Profiles, games, achievements, friends |
|
|
||||||
| **Storage** | Avatars, cloud saves, game assets |
|
|
||||||
| **Realtime** | Friend status, notifications |
|
|
||||||
| **Edge Functions** | Store transactions, webhooks |
|
|
||||||
|
|
||||||
The engine will need HTTP clients to call these APIs:
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
// Example: Fetch user profile
|
|
||||||
HTTPRequest *http = memnew(HTTPRequest);
|
|
||||||
http->connect("request_completed", callable_mp(this, &AeThexAuth::_on_profile_fetched));
|
|
||||||
http->request(
|
|
||||||
supabase_url + "/rest/v1/launcher_profiles?user_id=eq." + user_id,
|
|
||||||
PackedStringArray({"apikey: " + anon_key, "Authorization: Bearer " + token})
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## File Structure After Integration
|
|
||||||
|
|
||||||
```
|
|
||||||
AeThex-Engine-Core/
|
|
||||||
├── engine/
|
|
||||||
│ ├── editor/
|
|
||||||
│ │ ├── project_manager/
|
|
||||||
│ │ │ ├── project_manager.cpp # Has launcher tab with WebView
|
|
||||||
│ │ │ └── project_manager.h
|
|
||||||
│ │ └── launcher/ # NEW directory
|
|
||||||
│ │ ├── launcher_bridge.cpp # JS ↔ C++ bridge
|
|
||||||
│ │ ├── launcher_bridge.h
|
|
||||||
│ │ ├── native_auth_panel.cpp # Native auth UI
|
|
||||||
│ │ ├── native_auth_panel.h
|
|
||||||
│ │ └── SCsub
|
|
||||||
│ ├── modules/
|
|
||||||
│ │ ├── aethex_auth/ # NEW module
|
|
||||||
│ │ │ ├── aethex_auth.cpp
|
|
||||||
│ │ │ ├── aethex_auth.h
|
|
||||||
│ │ │ ├── config.py
|
|
||||||
│ │ │ ├── register_types.cpp
|
|
||||||
│ │ │ ├── register_types.h
|
|
||||||
│ │ │ └── SCsub
|
|
||||||
│ │ ├── aethex_cloud/ # Existing (enhanced)
|
|
||||||
│ │ ├── webview/ # NEW module
|
|
||||||
│ │ │ ├── webview_panel.cpp
|
|
||||||
│ │ │ ├── webview_panel.h
|
|
||||||
│ │ │ └── platform/
|
|
||||||
│ │ │ ├── webview_windows.cpp # WebView2 on Windows
|
|
||||||
│ │ │ ├── webview_macos.mm # WKWebView on macOS
|
|
||||||
│ │ │ └── webview_linux.cpp # WebKitGTK on Linux
|
|
||||||
│ │ └── ...
|
|
||||||
│ └── platform/
|
|
||||||
└── launcher-web/ # Bundled React app
|
|
||||||
├── build.sh
|
|
||||||
├── package.json
|
|
||||||
└── dist/ # Built output
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Timeline Estimate
|
|
||||||
|
|
||||||
| Phase | Duration | Deliverable |
|
|
||||||
|-------|----------|-------------|
|
|
||||||
| **Phase 1a** | 1 week | WebView module for Windows (WebView2) |
|
|
||||||
| **Phase 1b** | 1 week | Launcher tab integration + JS bridge |
|
|
||||||
| **Phase 1c** | 3 days | Bundle React app + build pipeline |
|
|
||||||
| **Phase 2a** | 2 weeks | Native auth module |
|
|
||||||
| **Phase 2b** | 2 weeks | Native game library |
|
|
||||||
| **Phase 2c** | 1 week | Native download manager |
|
|
||||||
| **Phase 3+** | Ongoing | Port remaining features as needed |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Decision Points
|
|
||||||
|
|
||||||
### Question 1: WebView Library
|
|
||||||
- **Windows**: WebView2 (Edge/Chromium) - recommended
|
|
||||||
- **Alternative**: CEF (Chromium Embedded Framework) - more control, larger size
|
|
||||||
|
|
||||||
### Question 2: Initial Distribution
|
|
||||||
- **Option A**: Ship with embedded web app (offline-capable)
|
|
||||||
- **Option B**: Load from `https://launcher.aethex.dev` (always latest)
|
|
||||||
- **Recommended**: Option A with update check
|
|
||||||
|
|
||||||
### Question 3: Auth Flow
|
|
||||||
- **Option A**: WebView handles auth entirely
|
|
||||||
- **Option B**: Native OAuth browser popup → callback to engine
|
|
||||||
- **Recommended**: Option A for Phase 1, Option B for Phase 2
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
1. **Decide on approach** (WebView vs Native-first)
|
|
||||||
2. **Set up WebView2 in engine** (if WebView approach)
|
|
||||||
3. **Build React launcher** for embedding
|
|
||||||
4. **Create JS↔C++ bridge** for native features
|
|
||||||
5. **Test end-to-end flow**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
- The current launcher at `A:\AeThex Launcher\AeThex-Landing-Page` has 40+ pages and 60+ components
|
|
||||||
- Full native port would be ~10,000+ lines of C++ code
|
|
||||||
- WebView approach allows immediate integration with gradual native migration
|
|
||||||
- Consider keeping WebView for "web-heavy" features (forum, store, socials) even after native port
|
|
||||||
|
|
@ -143,7 +143,7 @@ Test if your Godot project works in AeThex without changes.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Download AeThex
|
# 1. Download AeThex
|
||||||
wget https://aethex.dev/download/aethex-linux.tar.gz
|
wget https://aethex.io/download/aethex-linux.tar.gz
|
||||||
tar -xzf aethex-linux.tar.gz
|
tar -xzf aethex-linux.tar.gz
|
||||||
|
|
||||||
# 2. Open your Godot project
|
# 2. Open your Godot project
|
||||||
|
|
@ -769,7 +769,7 @@ git checkout -b aethex-migration
|
||||||
|
|
||||||
### Q: Does AeThex collect any data?
|
### Q: Does AeThex collect any data?
|
||||||
|
|
||||||
**A:** Only if you use analytics features. See [Privacy Policy](https://aethex.dev/privacy).
|
**A:** Only if you use analytics features. See [Privacy Policy](https://aethex.io/privacy).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -782,12 +782,12 @@ git checkout -b aethex-migration
|
||||||
|
|
||||||
**Community:**
|
**Community:**
|
||||||
- [Discord](https://discord.gg/aethex) - Real-time chat
|
- [Discord](https://discord.gg/aethex) - Real-time chat
|
||||||
- [Forum](https://forum.aethex.dev) - Discussions
|
- [Forum](https://forum.aethex.io) - Discussions
|
||||||
- [GitHub Issues](https://github.com/aethex/engine/issues) - Bug reports
|
- [GitHub Issues](https://github.com/aethex/engine/issues) - Bug reports
|
||||||
|
|
||||||
**Support:**
|
**Support:**
|
||||||
- [Email Support](mailto:support@aethex.dev) - Response within 24h
|
- [Email Support](mailto:support@aethex.io) - Response within 24h
|
||||||
- [Pro Support](https://aethex.dev/pro) - Priority support for paying customers
|
- [Pro Support](https://aethex.io/pro) - Priority support for paying customers
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -734,7 +734,7 @@ Create a community server:
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
|
|
||||||
- **Analytics:** [AeThex Analytics](https://studio.aethex.dev/analytics)
|
- **Analytics:** [AeThex Analytics](https://studio.aethex.io/analytics)
|
||||||
- **Marketing:** [Presskit()](https://dopresskit.com/)
|
- **Marketing:** [Presskit()](https://dopresskit.com/)
|
||||||
- **Community:** [Discord](https://discord.com)
|
- **Community:** [Discord](https://discord.com)
|
||||||
- **Email:** [Mailchimp](https://mailchimp.com)
|
- **Email:** [Mailchimp](https://mailchimp.com)
|
||||||
|
|
@ -748,9 +748,9 @@ Create a community server:
|
||||||
|
|
||||||
### Support
|
### Support
|
||||||
|
|
||||||
- **Email:** [support@aethex.dev](mailto:support@aethex.dev)
|
- **Email:** [support@aethex.io](mailto:support@aethex.io)
|
||||||
- **Discord:** [AeThex Community](https://discord.gg/aethex)
|
- **Discord:** [AeThex Community](https://discord.gg/aethex)
|
||||||
- **Docs:** [docs.aethex.dev](https://docs.aethex.dev)
|
- **Docs:** [docs.aethex.io](https://docs.aethex.io)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ website = "https://godotengine.org"
|
||||||
|
|
||||||
**To:**
|
**To:**
|
||||||
```python
|
```python
|
||||||
website = "https://aethex.dev" # or your domain
|
website = "https://aethex.io" # or your domain
|
||||||
```
|
```
|
||||||
|
|
||||||
**Result:** Help → Visit Website will go to your site
|
**Result:** Help → Visit Website will go to your site
|
||||||
|
|
|
||||||
|
|
@ -256,30 +256,30 @@ See [API Reference](API_REFERENCE.md) for complete documentation.
|
||||||
|
|
||||||
### Official
|
### Official
|
||||||
|
|
||||||
- **Website:** [https://aethex.dev](https://aethex.dev)
|
- **Website:** [https://aethex.io](https://aethex.io)
|
||||||
- **Download:** [https://aethex.dev/download](https://aethex.dev/download)
|
- **Download:** [https://aethex.io/download](https://aethex.io/download)
|
||||||
- **GitHub:** [https://github.com/aethex/engine](https://github.com/aethex/engine)
|
- **GitHub:** [https://github.com/aethex/engine](https://github.com/aethex/engine)
|
||||||
- **Asset Store:** [https://aethex.dev/assets](https://aethex.dev/assets)
|
- **Asset Store:** [https://aethex.io/assets](https://aethex.io/assets)
|
||||||
|
|
||||||
### Community
|
### Community
|
||||||
|
|
||||||
- **Discord:** [https://discord.gg/aethex](https://discord.gg/aethex)
|
- **Discord:** [https://discord.gg/aethex](https://discord.gg/aethex)
|
||||||
- **Forum:** [https://forum.aethex.dev](https://forum.aethex.dev)
|
- **Forum:** [https://forum.aethex.io](https://forum.aethex.io)
|
||||||
- **Reddit:** [https://reddit.com/r/aethex](https://reddit.com/r/aethex)
|
- **Reddit:** [https://reddit.com/r/aethex](https://reddit.com/r/aethex)
|
||||||
- **Twitter:** [@AeThexEngine](https://twitter.com/AeThexEngine)
|
- **Twitter:** [@AeThexEngine](https://twitter.com/AeThexEngine)
|
||||||
|
|
||||||
### Learning
|
### Learning
|
||||||
|
|
||||||
- **YouTube:** [AeThex Tutorials](https://youtube.com/@aethex)
|
- **YouTube:** [AeThex Tutorials](https://youtube.com/@aethex)
|
||||||
- **Blog:** [https://aethex.dev/blog](https://aethex.dev/blog)
|
- **Blog:** [https://aethex.io/blog](https://aethex.io/blog)
|
||||||
- **Examples:** [https://github.com/aethex/examples](https://github.com/aethex/examples)
|
- **Examples:** [https://github.com/aethex/examples](https://github.com/aethex/examples)
|
||||||
|
|
||||||
### Support
|
### Support
|
||||||
|
|
||||||
- **Documentation:** You're here!
|
- **Documentation:** You're here!
|
||||||
- **FAQ:** [https://aethex.dev/faq](https://aethex.dev/faq)
|
- **FAQ:** [https://aethex.io/faq](https://aethex.io/faq)
|
||||||
- **Email:** [support@aethex.dev](mailto:support@aethex.dev)
|
- **Email:** [support@aethex.io](mailto:support@aethex.io)
|
||||||
- **Pro Support:** [https://aethex.dev/pro](https://aethex.dev/pro)
|
- **Pro Support:** [https://aethex.io/pro](https://aethex.io/pro)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -345,7 +345,7 @@ Want to improve the docs?
|
||||||
1. **Search:** Use Ctrl+F in this index or search GitHub
|
1. **Search:** Use Ctrl+F in this index or search GitHub
|
||||||
2. **Ask Community:** Discord is very active
|
2. **Ask Community:** Discord is very active
|
||||||
3. **Check Examples:** [GitHub examples repo](https://github.com/aethex/examples)
|
3. **Check Examples:** [GitHub examples repo](https://github.com/aethex/examples)
|
||||||
4. **Contact Support:** [support@aethex.dev](mailto:support@aethex.dev)
|
4. **Contact Support:** [support@aethex.io](mailto:support@aethex.io)
|
||||||
|
|
||||||
**Found a bug in documentation?**
|
**Found a bug in documentation?**
|
||||||
- Report on [GitHub Issues](https://github.com/aethex/engine/issues)
|
- Report on [GitHub Issues](https://github.com/aethex/engine/issues)
|
||||||
|
|
@ -380,7 +380,7 @@ Want to improve the docs?
|
||||||
2. Read [Cloud Services Architecture](CLOUD_SERVICES_ARCHITECTURE.md) (30 min)
|
2. Read [Cloud Services Architecture](CLOUD_SERVICES_ARCHITECTURE.md) (30 min)
|
||||||
3. Study [Studio Integration](STUDIO_INTEGRATION.md) (20 min)
|
3. Study [Studio Integration](STUDIO_INTEGRATION.md) (20 min)
|
||||||
4. Plan deployment strategy (varies)
|
4. Plan deployment strategy (varies)
|
||||||
5. Contact [sales@aethex.dev](mailto:sales@aethex.dev) for enterprise support
|
5. Contact [sales@aethex.io](mailto:sales@aethex.io) for enterprise support
|
||||||
|
|
||||||
**Total time:** ~2 hours + implementation
|
**Total time:** ~2 hours + implementation
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,263 +0,0 @@
|
||||||
# AeThex Unified Architecture
|
|
||||||
|
|
||||||
**Everything in one place, connected.**
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
The AeThex platform is a unified game engine + launcher that lets users:
|
|
||||||
- Build games with the AeThex Engine (Godot fork)
|
|
||||||
- Discover and purchase games in the Store
|
|
||||||
- Manage their game library
|
|
||||||
- Connect with friends
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
||||||
│ AeThex Desktop Application │
|
|
||||||
│ (aethex.windows.editor.exe) │
|
|
||||||
│ ┌─────────────────────────────────────────────────────────────────────────┐│
|
|
||||||
│ │ Project Manager / Launcher ││
|
|
||||||
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ││
|
|
||||||
│ │ │ Home │ │ Library │ │ Store │ │ Downloads│ │ Friends │ ││
|
|
||||||
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ ││
|
|
||||||
│ └─────────────────────────────────────────────────────────────────────────┘│
|
|
||||||
│ ┌─────────────────────────────────────────────────────────────────────────┐│
|
|
||||||
│ │ Game Editor ││
|
|
||||||
│ │ (Opens when editing a project) ││
|
|
||||||
│ └─────────────────────────────────────────────────────────────────────────┘│
|
|
||||||
└─────────────────────────────────────────────────────────────────────────────┘
|
|
||||||
│
|
|
||||||
│ HTTPS API
|
|
||||||
▼
|
|
||||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
||||||
│ AeThex Cloud Services │
|
|
||||||
│ (api.aethex.dev) │
|
|
||||||
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ ││
|
|
||||||
│ │ Auth Service │ │ Games Service │ │ Social Service │ ││
|
|
||||||
│ │ /api/v1/auth │ │ /api/v1/games │ │ /api/v1/users │ ││
|
|
||||||
│ └────────────────┘ └────────────────┘ └────────────────┘ ││
|
|
||||||
│ │ │
|
|
||||||
│ ▼ │
|
|
||||||
│ ┌────────────────┐ │
|
|
||||||
│ │ PostgreSQL │ │
|
|
||||||
│ └────────────────┘ │
|
|
||||||
└─────────────────────────────────────────────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
## Components
|
|
||||||
|
|
||||||
### 1. Desktop Application (C++)
|
|
||||||
**Location:** `engine/`
|
|
||||||
|
|
||||||
The AeThex Desktop Application is a custom Godot 4.7 fork that includes:
|
|
||||||
|
|
||||||
- **Game Editor** - Full Godot editor for building games
|
|
||||||
- **Project Manager** - Manages Godot projects
|
|
||||||
- **Launcher Module** - Custom module for game library, store, and social features
|
|
||||||
|
|
||||||
The launcher module is located at:
|
|
||||||
```
|
|
||||||
engine/modules/aethex_launcher/
|
|
||||||
├── aethex_launcher.cpp/h - Main singleton, handles auth + API
|
|
||||||
├── data/
|
|
||||||
│ ├── game_library.cpp/h - User's game library
|
|
||||||
│ ├── launcher_store.cpp/h - Store catalog
|
|
||||||
│ ├── friend_system.cpp/h - Friends/social
|
|
||||||
│ ├── download_manager.cpp/h - Downloads
|
|
||||||
│ └── launcher_profile.cpp/h - User profile
|
|
||||||
├── ui/
|
|
||||||
│ ├── launcher_panel.cpp/h - Main UI with sidebar
|
|
||||||
│ ├── library_panel.cpp/h - Game library grid
|
|
||||||
│ ├── store_panel.cpp/h - Store browser
|
|
||||||
│ ├── friends_panel.cpp/h - Friends list
|
|
||||||
│ ├── downloads_panel.cpp/h - Download queue
|
|
||||||
│ ├── profile_panel.cpp/h - User profile
|
|
||||||
│ └── auth_panel.cpp/h - Login/signup
|
|
||||||
└── editor/
|
|
||||||
└── launcher_editor_plugin.cpp - Editor integration
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Backend API (TypeScript/Node.js)
|
|
||||||
**Location:** `services/auth-service/`
|
|
||||||
|
|
||||||
The backend runs at `api.aethex.dev` (locally at `localhost:3001`):
|
|
||||||
|
|
||||||
```
|
|
||||||
services/auth-service/
|
|
||||||
├── src/
|
|
||||||
│ ├── index.ts - Express server
|
|
||||||
│ ├── controllers/
|
|
||||||
│ │ ├── authController.ts - Auth logic
|
|
||||||
│ │ ├── userController.ts - User/profile logic
|
|
||||||
│ │ └── gamesController.ts - Games/store logic
|
|
||||||
│ ├── routes/
|
|
||||||
│ │ ├── auth.ts - Auth endpoints
|
|
||||||
│ │ ├── user.ts - User endpoints
|
|
||||||
│ │ └── games.ts - Games endpoints
|
|
||||||
│ ├── middleware/
|
|
||||||
│ │ ├── authenticateToken.ts - JWT verification
|
|
||||||
│ │ ├── validateRequest.ts - Input validation
|
|
||||||
│ │ └── errorHandler.ts - Error handling
|
|
||||||
│ └── utils/
|
|
||||||
│ └── logger.ts - Logging
|
|
||||||
├── prisma/
|
|
||||||
│ └── schema.prisma - Database schema
|
|
||||||
├── package.json
|
|
||||||
└── docker-compose.yml - PostgreSQL container
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Database (PostgreSQL)
|
|
||||||
**Schema:**
|
|
||||||
- **users** - Account info
|
|
||||||
- **sessions** - Auth sessions
|
|
||||||
- **launcher_profiles** - Gamertag, level, playtime
|
|
||||||
- **games** - Store catalog
|
|
||||||
- **user_games** - Owned games
|
|
||||||
- **friends** - Friend relationships
|
|
||||||
|
|
||||||
## API Endpoints
|
|
||||||
|
|
||||||
### Authentication
|
|
||||||
```
|
|
||||||
POST /api/v1/auth/register - Create account
|
|
||||||
POST /api/v1/auth/login - Login
|
|
||||||
POST /api/v1/auth/refresh - Refresh token
|
|
||||||
POST /api/v1/auth/logout - Logout
|
|
||||||
GET /api/v1/auth/me - Get current user
|
|
||||||
```
|
|
||||||
|
|
||||||
### Games & Store
|
|
||||||
```
|
|
||||||
GET /api/v1/games - List all games
|
|
||||||
GET /api/v1/games/featured - Get featured games
|
|
||||||
GET /api/v1/games/:slug - Get game details
|
|
||||||
POST /api/v1/games/:id/purchase - Add to library
|
|
||||||
```
|
|
||||||
|
|
||||||
### Users
|
|
||||||
```
|
|
||||||
GET /api/v1/users/profile - Get profile
|
|
||||||
PATCH /api/v1/users/profile - Update profile
|
|
||||||
GET /api/v1/users/library - User's games
|
|
||||||
GET /api/v1/users/friends - Friends list
|
|
||||||
POST /api/v1/users/friends - Send friend request
|
|
||||||
```
|
|
||||||
|
|
||||||
## Data Flow
|
|
||||||
|
|
||||||
### 1. Login
|
|
||||||
```
|
|
||||||
User enters email/password
|
|
||||||
→ C++ auth_panel.cpp calls AethexLauncher::sign_in_with_email()
|
|
||||||
→ Makes POST to /api/v1/auth/login
|
|
||||||
→ Backend validates credentials
|
|
||||||
→ Returns JWT token + user data
|
|
||||||
→ C++ stores token, emits "authenticated" signal
|
|
||||||
→ UI updates to show logged in state
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Library
|
|
||||||
```
|
|
||||||
LibraryPanel opens
|
|
||||||
→ Calls GameLibrary::load_library()
|
|
||||||
→ Loads from local cache (library.json)
|
|
||||||
→ If empty, populates demo games
|
|
||||||
→ If online, calls refresh_from_server()
|
|
||||||
→ Creates GameCard for each game
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Store
|
|
||||||
```
|
|
||||||
StorePanel opens
|
|
||||||
→ Calls LauncherStore::fetch_featured()
|
|
||||||
→ Makes GET to /api/v1/games/featured
|
|
||||||
→ Backend returns game list
|
|
||||||
→ UI populates store cards
|
|
||||||
|
|
||||||
User clicks "Add to Cart"
|
|
||||||
→ Local cart state updated
|
|
||||||
→ Checkout calls /api/v1/games/:id/purchase
|
|
||||||
→ Game added to user's library
|
|
||||||
```
|
|
||||||
|
|
||||||
## Development Setup
|
|
||||||
|
|
||||||
### Quick Start
|
|
||||||
```powershell
|
|
||||||
# Start everything
|
|
||||||
.\start-dev.ps1
|
|
||||||
```
|
|
||||||
|
|
||||||
### Manual Setup
|
|
||||||
```powershell
|
|
||||||
# 1. Start database (requires Docker)
|
|
||||||
cd services/auth-service
|
|
||||||
docker-compose up -d postgres
|
|
||||||
|
|
||||||
# 2. Setup backend
|
|
||||||
npm install
|
|
||||||
npx prisma generate
|
|
||||||
npx prisma migrate dev --name init
|
|
||||||
npm run seed
|
|
||||||
npm run dev # Runs on localhost:3001
|
|
||||||
|
|
||||||
# 3. Build engine
|
|
||||||
cd engine
|
|
||||||
scons platform=windows target=editor -j8
|
|
||||||
|
|
||||||
# 4. Run
|
|
||||||
.\bin\aethex.windows.editor.x86_64.exe
|
|
||||||
```
|
|
||||||
|
|
||||||
### Demo Account
|
|
||||||
- **Email:** demo@aethex.dev
|
|
||||||
- **Password:** DemoPass123
|
|
||||||
|
|
||||||
## Offline Mode
|
|
||||||
|
|
||||||
The launcher works offline with demo data:
|
|
||||||
- **Library:** Has 4 demo games (AeThex Adventure, Neon Racer, etc.)
|
|
||||||
- **Store:** Shows 6 demo items with prices
|
|
||||||
- **Profile:** Works in guest mode
|
|
||||||
|
|
||||||
When online, data syncs with the backend.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
The launcher stores config at:
|
|
||||||
- **Windows:** `%APPDATA%/Godot/aethex_launcher.cfg`
|
|
||||||
- **macOS:** `~/Library/Application Support/Godot/aethex_launcher.cfg`
|
|
||||||
- **Linux:** `~/.config/godot/aethex_launcher.cfg`
|
|
||||||
|
|
||||||
Config includes:
|
|
||||||
- API base URL
|
|
||||||
- Auth tokens
|
|
||||||
- User preferences
|
|
||||||
|
|
||||||
## Domain
|
|
||||||
All services use `aethex.dev`:
|
|
||||||
- **Website:** https://aethex.dev
|
|
||||||
- **API:** https://api.aethex.dev
|
|
||||||
- **Docs:** https://docs.aethex.dev
|
|
||||||
|
|
||||||
## Summary
|
|
||||||
|
|
||||||
Everything connects in ONE flow:
|
|
||||||
|
|
||||||
```
|
|
||||||
AeThex Launcher (C++)
|
|
||||||
│
|
|
||||||
┌──────────┼──────────┐
|
|
||||||
▼ ▼ ▼
|
|
||||||
Library Store Friends
|
|
||||||
\ │ /
|
|
||||||
\ │ /
|
|
||||||
v v v
|
|
||||||
api.aethex.dev (Node.js)
|
|
||||||
│
|
|
||||||
v
|
|
||||||
PostgreSQL
|
|
||||||
```
|
|
||||||
|
|
||||||
**One executable. One backend. Everything connected.**
|
|
||||||
|
|
@ -1,103 +0,0 @@
|
||||||
<!-- _coverpage.md -->
|
|
||||||
|
|
||||||
<div class="cover-logo">
|
|
||||||
<h1 style="font-family: Electrolize; font-size: 4em; margin: 0; text-shadow: 0 0 20px var(--neon-cyan), 0 0 40px var(--neon-cyan);">
|
|
||||||
⚡ AeThex
|
|
||||||
</h1>
|
|
||||||
<h2 style="font-family: Electrolize; font-size: 2em; margin: 10px 0; color: var(--neon-magenta);">
|
|
||||||
Engine Core
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p style="font-size: 1.3em; margin: 30px 0;">
|
|
||||||
The <span style="color: var(--neon-cyan);">cloud-first</span> game engine that makes<br/>
|
|
||||||
<span style="color: var(--neon-magenta);">multiplayer</span>, <span style="color: var(--neon-cyan);">cloud saves</span>, and <span style="color: var(--neon-magenta);">AI features</span> trivial.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div style="margin: 40px 0;">
|
|
||||||
<span style="display: inline-block; margin: 10px; padding: 8px 16px; background: rgba(0, 255, 255, 0.1); border: 1px solid var(--neon-cyan); border-radius: 4px;">
|
|
||||||
☁️ Cloud-Native
|
|
||||||
</span>
|
|
||||||
<span style="display: inline-block; margin: 10px; padding: 8px 16px; background: rgba(255, 0, 255, 0.1); border: 1px solid var(--neon-magenta); border-radius: 4px;">
|
|
||||||
🎮 Game-Ready
|
|
||||||
</span>
|
|
||||||
<span style="display: inline-block; margin: 10px; padding: 8px 16px; background: rgba(0, 255, 255, 0.1); border: 1px solid var(--neon-cyan); border-radius: 4px;">
|
|
||||||
🤖 AI-Powered
|
|
||||||
</span>
|
|
||||||
<span style="display: inline-block; margin: 10px; padding: 8px 16px; background: rgba(255, 0, 255, 0.1); border: 1px solid var(--neon-magenta); border-radius: 4px;">
|
|
||||||
🚀 Open Source
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
[🚀 Get Started](GETTING_STARTED.md)
|
|
||||||
[📚 Documentation](README.md)
|
|
||||||
[💻 GitHub](https://github.com/AeThex-LABS/AeThex-Engine-Core)
|
|
||||||
|
|
||||||
<!-- Background styling -->
|
|
||||||
<style>
|
|
||||||
.cover-main {
|
|
||||||
background: linear-gradient(135deg, #000000 0%, #0a0a0a 50%, #000000 100%);
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover-main::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background-image:
|
|
||||||
linear-gradient(0deg, transparent 24%, rgba(0, 255, 255, 0.05) 25%, rgba(0, 255, 255, 0.05) 26%, transparent 27%, transparent 74%, rgba(255, 0, 255, 0.05) 75%, rgba(255, 0, 255, 0.05) 76%, transparent 77%, transparent),
|
|
||||||
linear-gradient(90deg, transparent 24%, rgba(0, 255, 255, 0.05) 25%, rgba(0, 255, 255, 0.05) 26%, transparent 27%, transparent 74%, rgba(255, 0, 255, 0.05) 75%, rgba(255, 0, 255, 0.05) 76%, transparent 77%, transparent);
|
|
||||||
background-size: 50px 50px;
|
|
||||||
animation: grid-scan 20s linear infinite;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes grid-scan {
|
|
||||||
0% {
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
background-position: 50px 50px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover-main > p:first-of-type {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover-main a {
|
|
||||||
color: var(--neon-cyan);
|
|
||||||
text-decoration: none;
|
|
||||||
border: 2px solid var(--neon-cyan);
|
|
||||||
padding: 12px 30px;
|
|
||||||
margin: 10px;
|
|
||||||
display: inline-block;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
font-family: Electrolize;
|
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: 2px;
|
|
||||||
background: rgba(0, 255, 255, 0.05);
|
|
||||||
box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover-main a:hover {
|
|
||||||
background: rgba(0, 255, 255, 0.2);
|
|
||||||
box-shadow: 0 0 30px rgba(0, 255, 255, 0.6), inset 0 0 20px rgba(0, 255, 255, 0.2);
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover-main a:nth-child(2) {
|
|
||||||
border-color: var(--neon-magenta);
|
|
||||||
color: var(--neon-magenta);
|
|
||||||
background: rgba(255, 0, 255, 0.05);
|
|
||||||
box-shadow: 0 0 20px rgba(255, 0, 255, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover-main a:nth-child(2):hover {
|
|
||||||
background: rgba(255, 0, 255, 0.2);
|
|
||||||
box-shadow: 0 0 30px rgba(255, 0, 255, 0.6), inset 0 0 20px rgba(255, 0, 255, 0.2);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
172
docs/index.html
172
docs/index.html
|
|
@ -14,180 +14,49 @@
|
||||||
|
|
||||||
<!-- Custom Cyberpunk Theme -->
|
<!-- Custom Cyberpunk Theme -->
|
||||||
<link rel="stylesheet" href="theme.css">
|
<link rel="stylesheet" href="theme.css">
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>⚡</text></svg>">
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app">Loading AeThex Documentation...</div>
|
<div id="app">Loading...</div>
|
||||||
<script>
|
<script>
|
||||||
window.$docsify = {
|
window.$docsify = {
|
||||||
name: '<span style="font-family: Electrolize; font-size: 1.2em;">⚡ AeThex Engine</span>',
|
name: 'AeThex Engine',
|
||||||
repo: 'https://github.com/AeThex-LABS/AeThex-Engine-Core',
|
repo: 'https://github.com/AeThex-LABS/AeThex-Engine-Core',
|
||||||
loadSidebar: true,
|
loadSidebar: true,
|
||||||
subMaxLevel: 3,
|
subMaxLevel: 3,
|
||||||
auto2top: true,
|
auto2top: true,
|
||||||
homepage: 'README.md',
|
homepage: 'README.md',
|
||||||
relativePath: false,
|
|
||||||
|
|
||||||
// Cover page
|
|
||||||
coverpage: true,
|
|
||||||
onlyCover: false,
|
|
||||||
|
|
||||||
// Search
|
|
||||||
search: {
|
search: {
|
||||||
maxAge: 86400000,
|
maxAge: 86400000,
|
||||||
paths: 'auto',
|
paths: 'auto',
|
||||||
placeholder: '🔍 Search docs...',
|
placeholder: 'Search docs...',
|
||||||
noData: '❌ No results found.',
|
noData: 'No results found.',
|
||||||
depth: 6,
|
depth: 6
|
||||||
hideOtherSidebarContent: false
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Pagination
|
|
||||||
pagination: {
|
pagination: {
|
||||||
previousText: '← Previous',
|
previousText: 'Previous',
|
||||||
nextText: 'Next →',
|
nextText: 'Next',
|
||||||
crossChapter: true,
|
crossChapter: true
|
||||||
crossChapterText: true
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Tabs for code examples
|
|
||||||
tabs: {
|
|
||||||
persist: true,
|
|
||||||
sync: true,
|
|
||||||
theme: 'classic',
|
|
||||||
tabComments: true,
|
|
||||||
tabHeadings: true
|
|
||||||
},
|
|
||||||
|
|
||||||
// Copy code button
|
|
||||||
copyCode: {
|
|
||||||
buttonText: '📋 Copy',
|
|
||||||
errorText: '❌ Error',
|
|
||||||
successText: '✅ Copied!'
|
|
||||||
},
|
|
||||||
|
|
||||||
// Progress bar
|
|
||||||
progress: {
|
|
||||||
position: "top",
|
|
||||||
color: "var(--neon-cyan)",
|
|
||||||
height: "3px",
|
|
||||||
},
|
|
||||||
|
|
||||||
// Flexible alerts
|
|
||||||
'flexible-alerts': {
|
|
||||||
style: 'flat',
|
|
||||||
note: {
|
|
||||||
label: "📝 Note"
|
|
||||||
},
|
|
||||||
tip: {
|
|
||||||
label: "💡 Tip"
|
|
||||||
},
|
|
||||||
warning: {
|
|
||||||
label: "⚠️ Warning"
|
|
||||||
},
|
|
||||||
danger: {
|
|
||||||
label: "🚨 Danger"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// Count
|
|
||||||
count: {
|
|
||||||
countable: true,
|
|
||||||
fontsize: '0.9em',
|
|
||||||
color: 'var(--neon-cyan)',
|
|
||||||
language: 'english'
|
|
||||||
},
|
|
||||||
|
|
||||||
themeable: {
|
themeable: {
|
||||||
readyTransition: true,
|
readyTransition: true,
|
||||||
responsiveTables: true
|
responsiveTables: true
|
||||||
},
|
},
|
||||||
|
|
||||||
alias: {
|
alias: {
|
||||||
'/.*/_sidebar.md': '/_sidebar.md',
|
'/.*/_sidebar.md': '/_sidebar.md'
|
||||||
'/.*/_coverpage.md': '/_coverpage.md'
|
|
||||||
},
|
},
|
||||||
|
notFoundPage: true
|
||||||
notFoundPage: true,
|
|
||||||
|
|
||||||
// Footer
|
|
||||||
loadFooter: true,
|
|
||||||
|
|
||||||
// Edit on GitHub
|
|
||||||
plugins: [
|
|
||||||
function(hook, vm) {
|
|
||||||
hook.beforeEach(function(html) {
|
|
||||||
var url = 'https://github.com/AeThex-LABS/AeThex-Engine-Core/blob/main/docs/' + vm.route.file;
|
|
||||||
var editHtml = '<div style="text-align: right; padding: 10px 0;">';
|
|
||||||
editHtml += '<a href="' + url + '" target="_blank" style="color: var(--neon-cyan); text-decoration: none;">';
|
|
||||||
editHtml += '📝 Edit on GitHub</a></div>\n\n';
|
|
||||||
return editHtml + html;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add last updated timestamp
|
|
||||||
hook.afterEach(function(html) {
|
|
||||||
var footer = '<hr style="border-color: var(--neon-cyan); opacity: 0.3;"/>';
|
|
||||||
footer += '<div style="text-align: center; padding: 20px 0; font-size: 0.9em; color: var(--neon-cyan); opacity: 0.7;">';
|
|
||||||
footer += '<p>Made with ⚡ by AeThex Labs</p>';
|
|
||||||
footer += '<p style="font-size: 0.8em;">Last updated: ' + new Date().toLocaleDateString() + '</p>';
|
|
||||||
footer += '</div>';
|
|
||||||
return html + footer;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
// Mermaid config
|
|
||||||
mermaid: {
|
|
||||||
theme: 'dark',
|
|
||||||
themeVariables: {
|
|
||||||
primaryColor: '#00ffff',
|
|
||||||
primaryTextColor: '#fff',
|
|
||||||
primaryBorderColor: '#ff00ff',
|
|
||||||
lineColor: '#00ffff',
|
|
||||||
secondaryColor: '#ff00ff',
|
|
||||||
tertiaryColor: '#000'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Docsify core -->
|
<!-- Docsify core -->
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
|
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
|
||||||
|
|
||||||
<!-- Search plugin -->
|
<!-- Search plugin -->
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
|
||||||
|
|
||||||
<!-- Pagination -->
|
<!-- Pagination -->
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-pagination@2/dist/docsify-pagination.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/docsify-pagination@2/dist/docsify-pagination.min.js"></script>
|
||||||
|
|
||||||
<!-- Copy code -->
|
<!-- Copy code -->
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code@2"></script>
|
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code@2"></script>
|
||||||
|
|
||||||
<!-- Zoom images -->
|
<!-- Zoom images -->
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify@4/lib/plugins/zoom-image.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/docsify@4/lib/plugins/zoom-image.min.js"></script>
|
||||||
|
|
||||||
<!-- Tabs -->
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-tabs@1"></script>
|
|
||||||
|
|
||||||
<!-- Progress bar -->
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-progress@1/dist/progress.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Flexible alerts -->
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-plugin-flexible-alerts"></script>
|
|
||||||
|
|
||||||
<!-- Word count -->
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-count@latest/dist/countable.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Mermaid diagrams -->
|
|
||||||
<script type="module">
|
|
||||||
import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs";
|
|
||||||
mermaid.initialize({ startOnLoad: true });
|
|
||||||
window.mermaid = mermaid;
|
|
||||||
</script>
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-mermaid@2/dist/docsify-mermaid.js"></script>
|
|
||||||
|
|
||||||
<!-- Syntax highlighting -->
|
<!-- Syntax highlighting -->
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-gdscript.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-gdscript.min.js"></script>
|
||||||
|
|
@ -195,26 +64,5 @@
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-cpp.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-cpp.min.js"></script>
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-javascript.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-javascript.min.js"></script>
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-python.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-python.min.js"></script>
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-yaml.min.js"></script>
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-markdown.min.js"></script>
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-nginx.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Chart.js for diagrams -->
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/chart.js@3"></script>
|
|
||||||
<script src="//cdn.jsdelivr.net/npm/docsify-charty/dist/docsify-charty.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Keyboard shortcuts hint -->
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
// Add keyboard shortcut listener
|
|
||||||
document.addEventListener('keydown', function(e) {
|
|
||||||
// Ctrl/Cmd + K for search
|
|
||||||
if ((e.ctrlKey || e.metaKey) && e.key === 'k') {
|
|
||||||
e.preventDefault();
|
|
||||||
document.querySelector('.search input[type="search"]')?.focus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
Learn how to integrate AeThex's AI assistant into your game to provide contextual help and coding assistance to players.
|
Learn how to integrate AeThex's AI assistant into your game to provide contextual help and coding assistance to players.
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> The AI Assistant can understand your game's context, player actions, and current state to provide relevant and helpful responses.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What You'll Build
|
## What You'll Build
|
||||||
|
|
@ -19,19 +16,6 @@ A game with an in-game AI assistant that can:
|
||||||
**Difficulty:** Beginner
|
**Difficulty:** Beginner
|
||||||
**Prerequisites:** Basic GDScript knowledge
|
**Prerequisites:** Basic GDScript knowledge
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph LR
|
|
||||||
Player[👤 Player] -->|Asks Question| UI[Chat UI]
|
|
||||||
UI -->|Send Message| AI[⚡ AI Service]
|
|
||||||
AI -->|Context| Game[Game State]
|
|
||||||
AI -->|Generate| Response[AI Response]
|
|
||||||
Response -->|Display| UI
|
|
||||||
|
|
||||||
style Player fill:#00ffff22,stroke:#00ffff
|
|
||||||
style AI fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
style Game fill:#00ffff22,stroke:#00ffff
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
@ -40,18 +24,12 @@ graph LR
|
||||||
- AeThex Cloud connection set up
|
- AeThex Cloud connection set up
|
||||||
- Basic understanding of UI systems
|
- Basic understanding of UI systems
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> AI features require an active AeThex Cloud connection. Make sure you're authenticated before using AI services.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Step 1: Connect to AI Service
|
## Step 1: Connect to AI Service
|
||||||
|
|
||||||
First, ensure you're connected to AeThex Cloud with AI services enabled.
|
First, ensure you're connected to AeThex Cloud with AI services enabled.
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> AeThex Cloud handles all AI infrastructure, rate limiting, and caching automatically.
|
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
# main.gd
|
# main.gd
|
||||||
extends Node
|
extends Node
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
Learn how to track player behavior, measure engagement, and make data-driven decisions with AeThex Analytics.
|
Learn how to track player behavior, measure engagement, and make data-driven decisions with AeThex Analytics.
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> Analytics is your window into player behavior. Use it to understand what players love, what confuses them, and where they get stuck.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What You'll Build
|
## What You'll Build
|
||||||
|
|
@ -20,23 +17,6 @@ A complete analytics system that tracks:
|
||||||
**Difficulty:** Beginner
|
**Difficulty:** Beginner
|
||||||
**Prerequisites:** Basic GDScript knowledge
|
**Prerequisites:** Basic GDScript knowledge
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph LR
|
|
||||||
Game[🎮 Game Events] -->|Track| SDK[AeThex SDK]
|
|
||||||
SDK -->|Batch| Cloud[☁️ Cloud]
|
|
||||||
Cloud -->|Process| Pipeline[Data Pipeline]
|
|
||||||
Pipeline -->|Store| DB[(Database)]
|
|
||||||
DB -->|Query| Dashboard[📊 Dashboard]
|
|
||||||
Dashboard -->|Insights| You[👤 You]
|
|
||||||
|
|
||||||
Events[Events<br/>• level_complete<br/>• item_collected<br/>• player_died]
|
|
||||||
Properties[User Props<br/>• level<br/>• skill<br/>• device]
|
|
||||||
|
|
||||||
style Game fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Cloud fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
style Dashboard fill:#00ffff22,stroke:#00ffff
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Why Use Analytics?
|
## Why Use Analytics?
|
||||||
|
|
@ -48,18 +28,12 @@ Analytics helps you:
|
||||||
- **Fix bugs faster** - Get crash reports automatically
|
- **Fix bugs faster** - Get crash reports automatically
|
||||||
- **Make data-driven decisions** - Know what features to build
|
- **Make data-driven decisions** - Know what features to build
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> AeThex Analytics automatically batches events to minimize network usage and battery drain. No need to worry about performance impact.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Step 1: Connect to Analytics
|
## Step 1: Connect to Analytics
|
||||||
|
|
||||||
First, connect to AeThex Cloud and initialize analytics:
|
First, connect to AeThex Cloud and initialize analytics:
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> Don't track personally identifiable information (PII) like email addresses or real names in analytics events. Use anonymous user IDs instead.
|
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
# main.gd
|
# main.gd
|
||||||
extends Node
|
extends Node
|
||||||
|
|
@ -528,7 +502,7 @@ func _on_button_pressed():
|
||||||
|
|
||||||
View your analytics data:
|
View your analytics data:
|
||||||
|
|
||||||
1. **Go to:** [https://studio.aethex.dev/analytics](https://studio.aethex.dev/analytics)
|
1. **Go to:** [https://studio.aethex.io/analytics](https://studio.aethex.io/analytics)
|
||||||
2. **Select your project**
|
2. **Select your project**
|
||||||
3. **View dashboards:**
|
3. **View dashboards:**
|
||||||
- Overview: DAU, MAU, retention
|
- Overview: DAU, MAU, retention
|
||||||
|
|
@ -758,7 +732,7 @@ func test_analytics():
|
||||||
|
|
||||||
- **[Publishing Guide](../PUBLISHING_GUIDE.md)** - Deploy your game with analytics
|
- **[Publishing Guide](../PUBLISHING_GUIDE.md)** - Deploy your game with analytics
|
||||||
- **[API Reference](../API_REFERENCE.md#aethexanalytics-singleton)** - Complete analytics API
|
- **[API Reference](../API_REFERENCE.md#aethexanalytics-singleton)** - Complete analytics API
|
||||||
- **Dashboard:** View your data at [studio.aethex.dev/analytics](https://studio.aethex.dev/analytics)
|
- **Dashboard:** View your data at [studio.aethex.io/analytics](https://studio.aethex.io/analytics)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
Learn how to add user authentication to your AeThex game with email/password, OAuth, and guest login support.
|
Learn how to add user authentication to your AeThex game with email/password, OAuth, and guest login support.
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> Authentication is the foundation for cloud saves, multiplayer, and social features. Start here to unlock all AeThex Cloud capabilities.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What You'll Build
|
## What You'll Build
|
||||||
|
|
@ -20,43 +17,6 @@ A complete authentication system with:
|
||||||
**Difficulty:** Beginner
|
**Difficulty:** Beginner
|
||||||
**Prerequisites:** Basic GDScript knowledge
|
**Prerequisites:** Basic GDScript knowledge
|
||||||
|
|
||||||
```mermaid
|
|
||||||
flowchart TD
|
|
||||||
Start[Game Launch] --> Check{Has Session?}
|
|
||||||
Check -->|Yes| Welcome[Welcome Back!]
|
|
||||||
Check -->|No| Login[Show Login Screen]
|
|
||||||
|
|
||||||
Login --> Choice{Auth Method?}
|
|
||||||
|
|
||||||
Choice -->|Email/Password| EmailAuth[Email Login]
|
|
||||||
Choice -->|OAuth| OAuthFlow[OAuth Flow]
|
|
||||||
Choice -->|Guest| GuestAuth[Guest Account]
|
|
||||||
|
|
||||||
EmailAuth --> Validate{Valid?}
|
|
||||||
Validate -->|No| Error1[Show Error]
|
|
||||||
Error1 --> Login
|
|
||||||
Validate -->|Yes| Auth[Authenticate]
|
|
||||||
|
|
||||||
OAuthFlow --> Provider[Select Provider]
|
|
||||||
Provider --> Browser[Open Browser]
|
|
||||||
Browser --> Auth
|
|
||||||
|
|
||||||
GuestAuth --> Auth
|
|
||||||
|
|
||||||
Auth --> Success{Success?}
|
|
||||||
Success -->|No| Error2[Show Error]
|
|
||||||
Error2 --> Login
|
|
||||||
Success -->|Yes| SaveSession[Save Session]
|
|
||||||
SaveSession --> Welcome
|
|
||||||
|
|
||||||
Welcome --> MainMenu[Main Menu]
|
|
||||||
|
|
||||||
style Start fill:#00ffff22,stroke:#00ffff
|
|
||||||
style Welcome fill:#00ff0022,stroke:#00ff00
|
|
||||||
style Auth fill:#ff00ff22,stroke:#ff00ff
|
|
||||||
style MainMenu fill:#00ffff22,stroke:#00ffff
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Why Add Authentication?
|
## Why Add Authentication?
|
||||||
|
|
@ -68,18 +28,12 @@ Authentication enables:
|
||||||
- **Analytics** - Track user behavior
|
- **Analytics** - Track user behavior
|
||||||
- **Monetization** - In-app purchases, subscriptions
|
- **Monetization** - In-app purchases, subscriptions
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> Never store passwords in plaintext. AeThex Cloud handles all password hashing and security automatically.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Step 1: Connect to AeThex Cloud
|
## Step 1: Connect to AeThex Cloud
|
||||||
|
|
||||||
First, ensure cloud services are connected:
|
First, ensure cloud services are connected:
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> Session tokens are stored securely and persist across game sessions. Users stay logged in automatically.
|
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
# main.gd
|
# main.gd
|
||||||
extends Node
|
extends Node
|
||||||
|
|
|
||||||
|
|
@ -284,7 +284,7 @@ Want to write a tutorial? See [CONTRIBUTING.md](../../engine/CONTRIBUTING.md) fo
|
||||||
- Check the [API Reference](../API_REFERENCE.md)
|
- Check the [API Reference](../API_REFERENCE.md)
|
||||||
- Review [GDScript Basics](../GDSCRIPT_BASICS.md)
|
- Review [GDScript Basics](../GDSCRIPT_BASICS.md)
|
||||||
- Ask in [Discord](https://discord.gg/aethex)
|
- Ask in [Discord](https://discord.gg/aethex)
|
||||||
- Search [docs.aethex.dev](https://docs.aethex.dev)
|
- Search [docs.aethex.io](https://docs.aethex.io)
|
||||||
|
|
||||||
**Found a bug in tutorial?**
|
**Found a bug in tutorial?**
|
||||||
- Report on [GitHub Issues](https://github.com/aethex/engine/issues)
|
- Report on [GitHub Issues](https://github.com/aethex/engine/issues)
|
||||||
|
|
@ -298,6 +298,6 @@ After completing tutorials:
|
||||||
- Read [Architecture Overview](../ARCHITECTURE_OVERVIEW.md) *(coming soon)*
|
- Read [Architecture Overview](../ARCHITECTURE_OVERVIEW.md) *(coming soon)*
|
||||||
- Explore [Advanced Topics](../ADVANCED_TOPICS.md) *(coming soon)*
|
- Explore [Advanced Topics](../ADVANCED_TOPICS.md) *(coming soon)*
|
||||||
- Build your own game!
|
- Build your own game!
|
||||||
- Share in the [Community Showcase](https://aethex.dev/showcase)
|
- Share in the [Community Showcase](https://aethex.io/showcase)
|
||||||
|
|
||||||
Happy building! 🚀
|
Happy building! 🚀
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -2,10 +2,10 @@
|
||||||
/* engine.cpp */
|
/* engine.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* engine.h */
|
/* engine.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* project_settings.cpp */
|
/* project_settings.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
@ -644,7 +644,7 @@ void ProjectSettings::_convert_to_last_version(int p_from_version) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This method is responsible for loading a project.aethex file and/or data file
|
* This method is responsible for loading a project.godot file and/or data file
|
||||||
* using the following merit order:
|
* using the following merit order:
|
||||||
* - If using NetworkClient, try to lookup project file or fail.
|
* - If using NetworkClient, try to lookup project file or fail.
|
||||||
* - If --main-pack was passed by the user (`p_main_pack`), load it or fail.
|
* - If --main-pack was passed by the user (`p_main_pack`), load it or fail.
|
||||||
|
|
@ -685,7 +685,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||||
bool ok = _load_resource_pack(p_main_pack, false, 0, true);
|
bool ok = _load_resource_pack(p_main_pack, false, 0, true);
|
||||||
ERR_FAIL_COND_V_MSG(!ok, ERR_CANT_OPEN, vformat("Cannot open resource pack '%s'.", p_main_pack));
|
ERR_FAIL_COND_V_MSG(!ok, ERR_CANT_OPEN, vformat("Cannot open resource pack '%s'.", p_main_pack));
|
||||||
|
|
||||||
Error err = _load_settings_text_or_binary("res://project.aethex", "res://project.binary");
|
Error err = _load_settings_text_or_binary("res://project.godot", "res://project.binary");
|
||||||
#ifdef OVERRIDE_ENABLED
|
#ifdef OVERRIDE_ENABLED
|
||||||
if (err == OK && !p_ignore_override) {
|
if (err == OK && !p_ignore_override) {
|
||||||
// Load override from location of the main pack
|
// Load override from location of the main pack
|
||||||
|
|
@ -740,7 +740,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||||
|
|
||||||
// If we opened our package, try and load our project.
|
// If we opened our package, try and load our project.
|
||||||
if (found) {
|
if (found) {
|
||||||
Error err = _load_settings_text_or_binary("res://project.aethex", "res://project.binary");
|
Error err = _load_settings_text_or_binary("res://project.godot", "res://project.binary");
|
||||||
#ifdef OVERRIDE_ENABLED
|
#ifdef OVERRIDE_ENABLED
|
||||||
if (err == OK && !p_ignore_override) {
|
if (err == OK && !p_ignore_override) {
|
||||||
// Load overrides from the PCK and the executable location.
|
// Load overrides from the PCK and the executable location.
|
||||||
|
|
@ -765,7 +765,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||||
// (Only Android -when reading from PCK-.)
|
// (Only Android -when reading from PCK-.)
|
||||||
|
|
||||||
if (!OS::get_singleton()->get_resource_dir().is_empty()) {
|
if (!OS::get_singleton()->get_resource_dir().is_empty()) {
|
||||||
Error err = _load_settings_text_or_binary("res://project.aethex", "res://project.binary");
|
Error err = _load_settings_text_or_binary("res://project.godot", "res://project.binary");
|
||||||
#ifdef OVERRIDE_ENABLED
|
#ifdef OVERRIDE_ENABLED
|
||||||
if (err == OK && !p_ignore_override) {
|
if (err == OK && !p_ignore_override) {
|
||||||
// Optional, we don't mind if it fails.
|
// Optional, we don't mind if it fails.
|
||||||
|
|
@ -791,7 +791,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||||
|
|
||||||
Error err;
|
Error err;
|
||||||
|
|
||||||
err = _load_settings_text_or_binary(resource_path.path_join("project.aethex"), resource_path.path_join("project.binary"));
|
err = _load_settings_text_or_binary(resource_path.path_join("project.godot"), resource_path.path_join("project.binary"));
|
||||||
if (err == OK && !p_ignore_override) {
|
if (err == OK && !p_ignore_override) {
|
||||||
// Optional, we don't mind if it fails.
|
// Optional, we don't mind if it fails.
|
||||||
#ifdef OVERRIDE_ENABLED
|
#ifdef OVERRIDE_ENABLED
|
||||||
|
|
@ -820,7 +820,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||||
// Set the resource path early so things can be resolved when loading.
|
// Set the resource path early so things can be resolved when loading.
|
||||||
resource_path = current_dir;
|
resource_path = current_dir;
|
||||||
resource_path = resource_path.replace_char('\\', '/'); // Windows path to Unix path just in case.
|
resource_path = resource_path.replace_char('\\', '/'); // Windows path to Unix path just in case.
|
||||||
err = _load_settings_text_or_binary(current_dir.path_join("project.aethex"), current_dir.path_join("project.binary"));
|
err = _load_settings_text_or_binary(current_dir.path_join("project.godot"), current_dir.path_join("project.binary"));
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
#ifdef OVERRIDE_ENABLED
|
#ifdef OVERRIDE_ENABLED
|
||||||
if (!p_ignore_override) {
|
if (!p_ignore_override) {
|
||||||
|
|
@ -964,10 +964,10 @@ Error ProjectSettings::_load_settings_text(const String &p_path) {
|
||||||
|
|
||||||
err = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, nullptr, true);
|
err = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, nullptr, true);
|
||||||
if (err == ERR_FILE_EOF) {
|
if (err == ERR_FILE_EOF) {
|
||||||
// If we're loading a project.aethex from source code, we can operate some
|
// If we're loading a project.godot from source code, we can operate some
|
||||||
// ProjectSettings conversions if need be.
|
// ProjectSettings conversions if need be.
|
||||||
_convert_to_last_version(config_version);
|
_convert_to_last_version(config_version);
|
||||||
last_save_time = FileAccess::get_modified_time(get_resource_path().path_join("project.aethex"));
|
last_save_time = FileAccess::get_modified_time(get_resource_path().path_join("project.godot"));
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
ERR_FAIL_COND_V_MSG(err != OK, err, vformat("Error parsing '%s' at line %d: %s File might be corrupted.", p_path, lines, error_text));
|
ERR_FAIL_COND_V_MSG(err != OK, err, vformat("Error parsing '%s' at line %d: %s File might be corrupted.", p_path, lines, error_text));
|
||||||
|
|
@ -990,7 +990,7 @@ Error ProjectSettings::_load_settings_text(const String &p_path) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Error ProjectSettings::_load_settings_text_or_binary(const String &p_text_path, const String &p_bin_path) {
|
Error ProjectSettings::_load_settings_text_or_binary(const String &p_text_path, const String &p_bin_path) {
|
||||||
// Attempt first to load the binary project.aethex file.
|
// Attempt first to load the binary project.godot file.
|
||||||
Error err = _load_settings_binary(p_bin_path);
|
Error err = _load_settings_binary(p_bin_path);
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
return OK;
|
return OK;
|
||||||
|
|
@ -999,7 +999,7 @@ Error ProjectSettings::_load_settings_text_or_binary(const String &p_text_path,
|
||||||
ERR_PRINT(vformat("Couldn't load file '%s', error code %d.", p_bin_path, err));
|
ERR_PRINT(vformat("Couldn't load file '%s', error code %d.", p_bin_path, err));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback to text-based project.aethex file if binary was not found.
|
// Fallback to text-based project.godot file if binary was not found.
|
||||||
err = _load_settings_text(p_text_path);
|
err = _load_settings_text(p_text_path);
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
#ifndef DISABLE_DEPRECATED
|
#ifndef DISABLE_DEPRECATED
|
||||||
|
|
@ -1061,9 +1061,9 @@ void ProjectSettings::clear(const String &p_name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Error ProjectSettings::save() {
|
Error ProjectSettings::save() {
|
||||||
Error error = save_custom(get_resource_path().path_join("project.aethex"));
|
Error error = save_custom(get_resource_path().path_join("project.godot"));
|
||||||
if (error == OK) {
|
if (error == OK) {
|
||||||
last_save_time = FileAccess::get_modified_time(get_resource_path().path_join("project.aethex"));
|
last_save_time = FileAccess::get_modified_time(get_resource_path().path_join("project.godot"));
|
||||||
}
|
}
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
@ -1141,7 +1141,7 @@ Error ProjectSettings::_save_settings_text(const String &p_file, const RBMap<Str
|
||||||
Error err;
|
Error err;
|
||||||
Ref<FileAccess> file = FileAccess::open(p_file, FileAccess::WRITE, &err);
|
Ref<FileAccess> file = FileAccess::open(p_file, FileAccess::WRITE, &err);
|
||||||
|
|
||||||
ERR_FAIL_COND_V_MSG(err != OK, err, vformat("Couldn't save project.aethex - %s.", p_file));
|
ERR_FAIL_COND_V_MSG(err != OK, err, vformat("Couldn't save project.godot - %s.", p_file));
|
||||||
|
|
||||||
file->store_line("; Engine configuration file.");
|
file->store_line("; Engine configuration file.");
|
||||||
file->store_line("; It's best edited using the editor UI and not directly,");
|
file->store_line("; It's best edited using the editor UI and not directly,");
|
||||||
|
|
@ -1309,7 +1309,7 @@ Error ProjectSettings::save_custom(const String &p_path, const CustomMap &p_cust
|
||||||
save_features += f;
|
save_features += f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_path.ends_with(".aethex") || p_path.ends_with(".godot") || p_path.ends_with("override.cfg")) {
|
if (p_path.ends_with(".godot") || p_path.ends_with("override.cfg")) {
|
||||||
return _save_settings_text(p_path, save_props, p_custom, save_features);
|
return _save_settings_text(p_path, save_props, p_custom, save_features);
|
||||||
} else if (p_path.ends_with(".binary")) {
|
} else if (p_path.ends_with(".binary")) {
|
||||||
return _save_settings_binary(p_path, save_props, p_custom, save_features);
|
return _save_settings_binary(p_path, save_props, p_custom, save_features);
|
||||||
|
|
@ -1664,7 +1664,7 @@ void ProjectSettings::_add_builtin_input_map() {
|
||||||
|
|
||||||
ProjectSettings::ProjectSettings() {
|
ProjectSettings::ProjectSettings() {
|
||||||
// Initialization of engine variables should be done in the setup() method,
|
// Initialization of engine variables should be done in the setup() method,
|
||||||
// so that the values can be overridden from project.aethex or project.binary.
|
// so that the values can be overridden from project.godot or project.binary.
|
||||||
|
|
||||||
CRASH_COND_MSG(singleton != nullptr, "Instantiating a new ProjectSettings singleton is not supported.");
|
CRASH_COND_MSG(singleton != nullptr, "Instantiating a new ProjectSettings singleton is not supported.");
|
||||||
singleton = this;
|
singleton = this;
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* project_settings.h */
|
/* project_settings.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* core_bind.cpp */
|
/* core_bind.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* core_bind.h */
|
/* core_bind.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* core_constants.cpp */
|
/* core_constants.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* core_constants.h */
|
/* core_constants.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* core_globals.h */
|
/* core_globals.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* core_string_names.h */
|
/* core_string_names.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* aes_context.cpp */
|
/* aes_context.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* aes_context.h */
|
/* aes_context.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* crypto.cpp */
|
/* crypto.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* crypto.h */
|
/* crypto.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* crypto_core.cpp */
|
/* crypto_core.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* crypto_core.h */
|
/* crypto_core.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* hashing_context.cpp */
|
/* hashing_context.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* hashing_context.h */
|
/* hashing_context.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* debugger_marshalls.cpp */
|
/* debugger_marshalls.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* debugger_marshalls.h */
|
/* debugger_marshalls.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* engine_debugger.cpp */
|
/* engine_debugger.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* engine_debugger.h */
|
/* engine_debugger.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* engine_profiler.cpp */
|
/* engine_profiler.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* engine_profiler.h */
|
/* engine_profiler.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* local_debugger.cpp */
|
/* local_debugger.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* local_debugger.h */
|
/* local_debugger.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* remote_debugger.cpp */
|
/* remote_debugger.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* remote_debugger.h */
|
/* remote_debugger.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* remote_debugger_peer.cpp */
|
/* remote_debugger_peer.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* remote_debugger_peer.h */
|
/* remote_debugger_peer.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* script_debugger.cpp */
|
/* script_debugger.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* script_debugger.h */
|
/* script_debugger.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* doc_data.cpp */
|
/* doc_data.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* doc_data.h */
|
/* doc_data.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* error_list.cpp */
|
/* error_list.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* error_list.h */
|
/* error_list.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* error_macros.cpp */
|
/* error_macros.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* error_macros.h */
|
/* error_macros.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* godot_instance.cpp */
|
/* godot_instance.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* aethex_instance.h */
|
/* aethex_instance.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* extension_api_dump.cpp */
|
/* extension_api_dump.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* extension_api_dump.h */
|
/* extension_api_dump.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension.cpp */
|
/* gdextension.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension.h */
|
/* gdextension.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_function_loader.cpp */
|
/* gdextension_function_loader.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_function_loader.h */
|
/* gdextension_function_loader.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_interface.cpp */
|
/* gdextension_interface.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_interface_header_generator.cpp */
|
/* gdextension_interface_header_generator.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_interface_header_generator.h */
|
/* gdextension_interface_header_generator.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_library_loader.cpp */
|
/* gdextension_library_loader.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_library_loader.h */
|
/* gdextension_library_loader.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_loader.h */
|
/* gdextension_loader.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_manager.cpp */
|
/* gdextension_manager.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_manager.h */
|
/* gdextension_manager.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_special_compat_hashes.cpp */
|
/* gdextension_special_compat_hashes.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* gdextension_special_compat_hashes.h */
|
/* gdextension_special_compat_hashes.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* libaethex.h */
|
/* libaethex.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* default_controller_mappings.h */
|
/* default_controller_mappings.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input.cpp */
|
/* input.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input.h */
|
/* input.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input_enums.h */
|
/* input_enums.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input_event.cpp */
|
/* input_event.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input_event.h */
|
/* input_event.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input_event_codec.cpp */
|
/* input_event_codec.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input_event_codec.h */
|
/* input_event_codec.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input_map.cpp */
|
/* input_map.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* input_map.h */
|
/* input_map.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* shortcut.cpp */
|
/* shortcut.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* shortcut.h */
|
/* shortcut.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* compression.cpp */
|
/* compression.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* compression.h */
|
/* compression.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* config_file.cpp */
|
/* config_file.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* config_file.h */
|
/* config_file.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* delta_encoding.cpp */
|
/* delta_encoding.cpp */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
/* delta_encoding.h */
|
/* delta_encoding.h */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* This file is part of: */
|
/* This file is part of: */
|
||||||
/* AETHEX ENGINE */
|
/* GODOT ENGINE */
|
||||||
/* https://aethex.dev */
|
/* https://godotengine.org */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* Copyright (c) 2014-present AETHEX ENGINE contributors (see AUTHORS.md). */
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||||
/* */
|
/* */
|
||||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue