İlk commit: Stepstead Godot istemci (4.6 Mobile)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jts 2026-07-11 11:31:35 +03:00
commit 6a1706051d
346 changed files with 14415 additions and 0 deletions

88
native/README.md Normal file
View file

@ -0,0 +1,88 @@
# Stepstead — Pedometer Native Eklentiler
Adım sayar soyutlaması `autoload/pedometer.gd` içinde. Native plugin yoksa
otomatik **simülasyon** moduna düşer (editör/masaüstü test). Gerçek cihazda
adım okumak için aşağıdaki native eklentiler derlenip projeye eklenmeli.
GDScript ↔ native sözleşmesi (her iki platform aynı):
| Metot | Dönüş | Açıklama |
|---------------------|-------|--------------------------------------------|
| `is_available()` | bool | Cihazda adım sayar sensörü var mı |
| `start()` | void | Dinlemeyi başlat |
| `stop()` | void | Dinlemeyi durdur |
| `get_step_count()` | int | Açılıştan beri kümülatif adım |
Singleton adları: Android = `StepCounter`, iOS = `Pedometer`.
---
## Android (`stepcounter-android/`) — Mac'te derleme
**Gereksinim:** Mac + Android Studio (Android SDK API 34 + JDK 17) + Godot 4.6.
Gradle projesi hazır: `settings.gradle`, `build.gradle`, `gradle.properties`,
wrapper config (`gradle/wrapper/gradle-wrapper.properties` → Gradle 8.5).
Eksik tek şey wrapper binary'si ve godot-lib — aşağıda.
### 1. Android Build Template'i kur (godot-lib.aar için)
Godot editöründe projeyi aç → **Project > Install Android Build Template**.
Bu, proje köküne `android/build/` oluşturur. Godot kütüphanesini bul:
```bash
find android/build -iname "godot-lib*.aar"
# örn: android/build/libs/release/godot-lib.template_release.aar
```
Bu AAR'ı plugin libs/ içine kopyala:
```bash
mkdir -p native/stepcounter-android/libs
cp android/build/libs/release/godot-lib.*.aar native/stepcounter-android/libs/
```
### 2. SDK yolunu bildir
```bash
cd native/stepcounter-android
echo "sdk.dir=$HOME/Library/Android/sdk" > local.properties
```
### 3. Gradle wrapper'ı üret + derle
Android Studio'da klasörü açarsan wrapper'ı otomatik üretir. CLI ile:
```bash
# Homebrew gradle ile tek seferlik wrapper üret (sonra ./gradlew yeter)
brew install gradle # yoksa
gradle wrapper --gradle-version 8.5
./gradlew assembleRelease
```
### 4. AAR'ı projeye koy + etkinleştir
```bash
cp build/outputs/aar/stepcounter-release.aar \
../../addons/stepcounter/stepcounter-release.aar
```
Godot: **Project > Project Settings > Plugins > StepCounter = Enable**.
Android export'unda **Use Gradle Build**ık olmalı.
İzin: `ACTIVITY_RECOGNITION` (Android 10+). Export plugin manifest'e ekler,
`pedometer.gd` çalışma zamanında `OS.request_permission(...)` ile ister.
> Not: `libs/`, `local.properties`, `.gradle/`, `build/` ve wrapper jar'ı
> repoya girmez (bkz `.gitignore`).
---
## iOS (`pedometer-ios/`) — yazıldı
`CMPedometer` (CoreMotion) Objective-C++ plugin. Singleton `Pedometer`,
aynı 4 metot. Kaynak + `.gdip` config + build/iPhone yükleme adımları:
**`pedometer-ios/README.md`**.
> CMPedometer iOS Simulator'da çalışmaz → iPhone 13 ile gerçek cihaz testi.
> Derleme godot-ios-plugins harness (scons) ile, Xcode'da imzalı yüklenir.
---
## Test (native plugin olmadan)
Editör/masaüstünde HUD'daki **+100** butonu `Pedometer.sim_add(100)` çağırır,
ardından `/world/sync-steps` ile sunucuya gider. Sunucu dakika-başı tavan
(anti-cheat) uygular; aşan adımlar reddedilir ve `step_log`'a `accepted=false`
olarak yazılır.