Start encounter feature
This commit is contained in:
139
AGENTS.md
Normal file
139
AGENTS.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# Godot 4.5.1 Development - Agent Configuration
|
||||
|
||||
## Project Info
|
||||
- **Engine**: Godot 4.5.1
|
||||
- **Language**: GDScript (primary), C# (optional)
|
||||
- **Project Root**: Contains `project.godot`
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
# Run project
|
||||
godot --path .
|
||||
|
||||
# Run headless (for validation/testing)
|
||||
godot --headless --quit --script res://path/to/script.gd
|
||||
|
||||
# Export project
|
||||
godot --headless --export-release "preset_name" output_path
|
||||
|
||||
# Validate/check project
|
||||
godot --headless --quit
|
||||
|
||||
# Run specific scene
|
||||
godot --path . res://scenes/main.tscn
|
||||
|
||||
# Generate documentation
|
||||
godot --doctool docs/ --gdscript-docs res://
|
||||
```
|
||||
|
||||
## Code Style
|
||||
|
||||
### GDScript Conventions
|
||||
- Use `snake_case` for variables, functions, signals
|
||||
- Use `PascalCase` for class names and node types
|
||||
- Use `SCREAMING_SNAKE_CASE` for constants
|
||||
- Prefix private members with `_`
|
||||
- Use type hints: `var speed: float = 100.0`
|
||||
- Use `@export` for editor-exposed variables
|
||||
- Use `@onready` for node references
|
||||
|
||||
### File Naming
|
||||
- Scripts: `snake_case.gd` (e.g., `player_controller.gd`)
|
||||
- Scenes: `snake_case.tscn` (e.g., `main_menu.tscn`)
|
||||
- Resources: `snake_case.tres` (e.g., `player_stats.tres`)
|
||||
|
||||
### Project Structure
|
||||
```
|
||||
res://
|
||||
├── scenes/ # .tscn scene files
|
||||
├── scripts/ # .gd script files
|
||||
├── assets/
|
||||
│ ├── sprites/
|
||||
│ ├── audio/
|
||||
│ └── fonts/
|
||||
├── resources/ # .tres resource files
|
||||
├── autoload/ # Singleton scripts
|
||||
└── addons/ # Third-party plugins
|
||||
```
|
||||
|
||||
## Godot 4.5 Specifics
|
||||
- Use `@export` instead of `export`
|
||||
- Use `@onready` instead of `onready`
|
||||
- Use `super()` instead of `.call()`
|
||||
- Signals: `signal_name.emit()` instead of `emit_signal("signal_name")`
|
||||
- Await: `await signal_name` instead of `yield`
|
||||
- String formatting: `"Value: %s" % value` or `"Value: {val}".format({"val": value})`
|
||||
|
||||
## Testing
|
||||
- Use GUT (Godot Unit Test) for unit testing if available
|
||||
- Test scripts in `res://tests/`
|
||||
- Run tests: `godot --headless --script res://addons/gut/gut_cmdln.gd`
|
||||
|
||||
## Common Patterns
|
||||
|
||||
### Singleton/Autoload
|
||||
```gdscript
|
||||
# In Project Settings > AutoLoad
|
||||
extends Node
|
||||
|
||||
var game_state: Dictionary = {}
|
||||
|
||||
func _ready() -> void:
|
||||
pass
|
||||
```
|
||||
|
||||
### Signal Pattern
|
||||
```gdscript
|
||||
signal health_changed(new_health: int)
|
||||
|
||||
func take_damage(amount: int) -> void:
|
||||
health -= amount
|
||||
health_changed.emit(health)
|
||||
```
|
||||
|
||||
### Resource Pattern
|
||||
```gdscript
|
||||
class_name WeaponData extends Resource
|
||||
|
||||
@export var damage: int = 10
|
||||
@export var fire_rate: float = 0.5
|
||||
```
|
||||
|
||||
## MCP Server (Recommended)
|
||||
Install [Coding-Solo/godot-mcp](https://github.com/Coding-Solo/godot-mcp) for:
|
||||
- Launch editor programmatically
|
||||
- Run projects and capture debug output
|
||||
- Scene management (create/modify scenes)
|
||||
- UID management (Godot 4.4+)
|
||||
|
||||
### Setup
|
||||
```bash
|
||||
git clone https://github.com/Coding-Solo/godot-mcp
|
||||
cd godot-mcp
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Configuration (add to MCP settings)
|
||||
```json
|
||||
{
|
||||
"godot": {
|
||||
"command": "node",
|
||||
"args": ["/path/to/godot-mcp/build/index.js"],
|
||||
"env": {
|
||||
"GODOT_PATH": "/path/to/godot"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Documentation MCP (Optional)
|
||||
For up-to-date Godot docs access:
|
||||
```json
|
||||
{
|
||||
"godot-docs": {
|
||||
"url": "https://doc-mcp.fly.dev/mcp/"
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user