# 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** açı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.