Skip to content

Commit 1329299

Browse files
committed
Merge branch 'master' into 205-prepare-for-spm-godot-47
2 parents e3f219d + a20aec0 commit 1329299

567 files changed

Lines changed: 18487 additions & 1113 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/agents/gemini-analyzer.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# 🤖 Gemini Analyzer Subagent
2+
3+
You are the liaison between Claude Code and Gemini CLI. Use this protocol to leverage Gemini's speed and architectural search capabilities.
4+
5+
## 🧠 When to "Call" Gemini
6+
- **Deep Search:** When you need to find something across the whole repo but want to save your own context tokens.
7+
- **Batch Refactoring:** Ask the user to run a Gemini command if more than 5 files need identical surgical updates.
8+
- **Architectural Mapping:** Gemini is better at identifying "How A talks to B" via its specialized tools.
9+
10+
## 🛠️ Communication via SHARED_CONTEXT.md
11+
1. Read `SHARED_CONTEXT.md` to see Gemini's last status.
12+
2. If you finish a major task, update `SHARED_CONTEXT.md` so Gemini knows when it resumes.
13+
14+
## 🔗 Root Commands for Gemini
15+
- `gemini run "search for [pattern] in [path]"`
16+
- `gemini run "fix all lint errors in platforms/android"`

.claude/settings.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Read(./**/*)",
5+
"Run(./gradlew *)",
6+
"Run(scons *)",
7+
"Run(./scripts/*)",
8+
"Run(gemini *)"
9+
],
10+
"deny": [
11+
"Read(./.env*)",
12+
"Read(./**/build/**)",
13+
"Read(./**/.gradle/**)",
14+
"Read(./platforms/godot_editor/.godot/**)",
15+
"Read(./**/*.import)",
16+
"Read(./**/*.uid)",
17+
"Read(./platforms/godot_editor/addons/admob/android/bin/**)",
18+
"Read(./platforms/ios/.build/**)",
19+
"Read(./.gemini/**)"
20+
]
21+
}
22+
}

.gemini/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"context": {
3+
"fileName": ["AGENTS.md", "CONTEXT.md", "GEMINI.md"]
4+
}
5+
}

.gemini/skills/doc-master

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.github/ai/skills/doc-master

.gemini/skills/parity-checker

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.github/ai/skills/parity-checker

.gemini/skills/release-manager

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.github/ai/skills/release-manager

.gemini/skills/sync

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.github/ai/skills/sync

.geminiignore

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Gemini CLI: Ignore list to save context tokens
2+
3+
# Godot Internal
4+
.godot/
5+
*.import
6+
*.tmp
7+
8+
# Android Build & Gradle
9+
.gradle/
10+
platforms/android/.gradle/
11+
platforms/android/build/
12+
platforms/android/.output/
13+
platforms/android/gradlew
14+
platforms/android/gradlew.bat
15+
16+
# iOS Build & SCons
17+
platforms/ios/.build/
18+
platforms/ios/bin/
19+
platforms/ios/build/
20+
platforms/ios/PoingGodotAdMob.xcodeproj/
21+
platforms/ios/Package.resolved
22+
23+
# Assets & Docs (High token usage, low signal)
24+
docs/assets/*.png
25+
docs/assets/*.webp
26+
docs/assets/*.ico
27+
28+
# General Caches & OS
29+
.DS_Store
30+
.vscode/
31+
node_modules/
32+
dist/
33+
target/
34+
*.skill

.github/CONTRIBUTING.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Contributing to Godot AdMob Plugin
2+
3+
Thank you for your interest in contributing to the Godot AdMob Plugin! This guide will help you get started with the development process.
4+
5+
## 🤝 How to Contribute
6+
7+
### Reporting Bugs
8+
- Check the [existing issues](https://github.com/poingstudios/godot-admob-plugin/issues) to see if the bug has already been reported.
9+
- If not, open a new issue with a clear title and description.
10+
- Provide reproduction steps and, if possible, a minimal reproduction project.
11+
- Include information about your Godot version and target platform (Android/iOS).
12+
13+
### Feature Requests
14+
- Check [existing issues](https://github.com/poingstudios/godot-admob-plugin/issues) or [discussions](https://github.com/poingstudios/godot-admob-plugin/discussions).
15+
- Open a new issue to discuss the feature before starting implementation.
16+
17+
## 💻 Development Setup
18+
19+
### Requirements
20+
- **Godot 4.2+** (Standard or .NET edition).
21+
- **Android**: Android Studio & SDK (minimum API 24).
22+
- **iOS**: macOS with Xcode 15+ and SCons installed (`brew install scons`).
23+
- **Python 3.x**: Required for Godot's build system and internal scripts.
24+
25+
### Workflow
26+
1. Fork the repository.
27+
2. Clone your fork locally.
28+
3. Create a branch for your changes (`git checkout -b feature/my-new-feature`).
29+
30+
---
31+
32+
## 🛠️ Build Process
33+
34+
The plugin consists of a Godot editor component and native binaries for Android and iOS.
35+
36+
### General Build (Auto-updating the Editor Plugin)
37+
To build the native binaries and automatically copy/extract them to the [`platforms/godot_editor/`](./platforms/godot_editor/) directory, use the provided local build script. **This script handles the export process automatically for the selected platform(s).**
38+
39+
- **Android** binaries are built via Gradle and exported to `platforms/godot_editor/addons/admob/android/bin/`.
40+
- **iOS** binaries are built via SCons/SPM and extracted to `platforms/godot_editor/ios/plugins/`.
41+
42+
```bash
43+
# Usage: ./scripts/build_local.sh [android|ios|all] <godot_version>
44+
./scripts/build_local.sh all 4.6.1
45+
```
46+
47+
### 🤖 Android Build Details
48+
Located in [`platforms/android/`](./platforms/android/). Build and export are handled via Gradle.
49+
50+
- **Tools**: Android Studio / SDK.
51+
- **Manual Build**:
52+
```bash
53+
cd platforms/android
54+
./gradlew build
55+
./gradlew exportFiles -PpluginExportPath=../godot_editor/addons/admob/android/bin
56+
```
57+
- **Logging**: `adb logcat -s poing-godot-admob godot`
58+
59+
### 🍎 iOS Build Details
60+
Located in [`platforms/ios/`](./platforms/ios/). Build is handled via a dedicated shell script.
61+
62+
- **Tools**: Xcode 15+, SCons.
63+
- **Manual Build**:
64+
```bash
65+
cd platforms/ios
66+
./scripts/build.sh <godot_version>
67+
```
68+
- **Note**: This script generates the `.xcframework` files and headers. When using `./scripts/build_local.sh ios`, the resulting zip is automatically extracted to the editor plugin folder.
69+
70+
---
71+
72+
## 📜 Code Style & Principles
73+
74+
To maintain code quality and consistency, please follow these guidelines:
75+
76+
### General Principles
77+
- **SOLID**: Always aim for clean, maintainable, and decoupled code.
78+
- **Official SDK Consistency**: The goal of this plugin is to stay as close as possible to the official [Android](https://developers.google.com/admob/android) and [iOS](https://developers.google.com/admob/ios) AdMob SDKs.
79+
- **No Global Scope Pollution**: Avoid adding unnecessary global names or classes.
80+
81+
### GDScript Guidelines
82+
- **Style Guide**: Follow the [official Godot GDScript style guide](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_styleguide.html).
83+
- **Type Inference**: Use `:=` for type inference where possible to improve readability and safety.
84+
- **Internal Scripts**: Scripts located inside `internal` folders **must not** use `class_name`. They should be accessed via `preload()` to keep the global namespace clean.
85+
86+
### C# Guidelines
87+
- **Style Guide**: Follow the [official Godot C# style guide](https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_style_guide.html).
88+
- **Namespaces**: Ensure proper use of namespaces to organize code effectively.
89+
90+
## 🚀 Pull Request Process
91+
1. Ensure your code follows the style guidelines.
92+
2. Update the documentation if you are adding or changing features.
93+
3. Link the PR to the relevant issue.
94+
4. Once submitted, a maintainer will review your changes.
95+
96+
Thank you for helping us make this plugin better!

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,19 @@ body:
1414
placeholder: '4.0.0'
1515
validations:
1616
required: true
17+
- type: dropdown
18+
id: platform
19+
attributes:
20+
label: Platform / Component
21+
description: In which environment did you find this bug?
22+
options:
23+
- All
24+
- Godot (Addon / Editor)
25+
- Android
26+
- iOS
27+
default: 0
28+
validations:
29+
required: true
1730
- type: input
1831
attributes:
1932
label: System information

0 commit comments

Comments
 (0)