İlk commit: Stepstead Godot istemci (4.6 Mobile)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
commit
6a1706051d
346 changed files with 14415 additions and 0 deletions
88
native/README.md
Normal file
88
native/README.md
Normal 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** 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue