|
Download android-template/README.md from Cnass/rpgmaker: direct link, hf CLI and curl.
- Browser
- Download file 4.23 kB
-
https://huggingface.co/spaces/Cnass/rpgmaker/resolve/main/android-template/README.md
- Command line
-
hf download hf://spaces/Cnass/rpgmaker/android-template/README.md
-
curl -L -o README.md https://huggingface.co/spaces/Cnass/rpgmaker/resolve/main/android-template/README.md
4.23 kB
| # Riaslink Port — Android Template | |
| RPG Maker MV/MZ web dışa aktarımlarını (`www/` klasörü) saran, minimal bir | |
| Android WebView port'u. [Ludens](https://github.com/yoimerdr/ludens) | |
| projesinden yalnızca "port yeteneği" fikri esinlenmiştir; bu proje ayrı bir | |
| kod tabanıdır, Ludens'in koduna bağımlılığı yoktur (Apache 2.0 lisanslı | |
| Ludens'in kodu doğrudan kullanılmamıştır). | |
| ## Mimari | |
| Bu proje kasıtlı olarak küçük tutulmuştur: | |
| - **Kotlin Multiplatform yok** — sadece Android hedefleniyor. | |
| - **Dependency injection framework yok** — tek Activity, manuel wiring. | |
| - **Üçüncü parti WebView kütüphanesi yok** — `android.webkit.WebView` | |
| doğrudan kullanılıyor. | |
| ``` | |
| app/src/main/java/fun/riaslink/port/ | |
| ├── RiaslinkApplication.kt Application sınıfı (boş, kasıtlı) | |
| ├── GameActivity.kt Tek Activity: immersive mod, back-press yönetimi | |
| └── core/ | |
| ├── GameWebView.kt WebView kurulumu + WebViewAssetLoader | |
| └── RiaslinkJsBridge.kt JS→native köprü (sadece titreşim + çıkış) | |
| ``` | |
| `app/src/main/assets/www/` — buraya bir RPG Maker projesinin `www/` klasörü | |
| kopyalanır. `js/plugins/RIA_FPSCounter.js` ve `js/plugins/RIA_TavernMenu.js` | |
| oyunun kendi eklenti sistemine (`js/plugins.js` üzerinden) kaydolan, saf | |
| JavaScript RPG Maker eklentileridir — native Kotlin koduyla hiçbir bağı | |
| yoktur, herhangi bir RPG Maker projesine (Android portu olmadan, tarayıcıda | |
| bile) tek başına kurulabilirler. | |
| ## Native ↔ Web sözleşmesi | |
| Native taraf ile menü arasındaki tek bağlantı noktaları: | |
| 1. `window.RiaslinkNative.vibrate(ms)` / `.exitApp()` — menüden native'e. | |
| 2. `window.RIA_TavernMenu.handleBackPress()` — native'den menüye. Android | |
| geri tuşuna basıldığında `GameWebView.handleBackPress()` bunu çağırır; | |
| menü açıksa kapatır, değilse taverna temalı bir çıkış onayı gösterir. | |
| Bunların dışında native taraf menünün iç mantığına hiç karışmaz. | |
| ## Yapılandırma (`riaslink.build.properties`) | |
| `applicationId`, uygulama adı, versiyon gibi alanlar `build.gradle.kts`'e | |
| sabit yazılı değildir; proje kökündeki `riaslink.build.properties` | |
| dosyasından okunur. Bu dosya build'e özgüdür ve git'e eklenmez | |
| (`.gitignore`'a bakın). Manuel/lokal build için `riaslink.build.properties.example` | |
| dosyasını kopyalayıp doldurun: | |
| ```bash | |
| cp riaslink.build.properties.example riaslink.build.properties | |
| # değerleri düzenle | |
| ``` | |
| ## Manuel build | |
| ```bash | |
| ./gradlew assembleDebug # imzasız, hemen kurulup test edilebilir | |
| ./gradlew assembleRelease # R8 küçültme uygulanır, imzasızdır | |
| ``` | |
| APK çıktısı: `app/build/outputs/apk/<debug|release>/` | |
| `release` build'i imzasız olduğu için cihaza doğrudan kurulamaz — kendi | |
| keystore'unla `apksigner` ile imzalaman gerekir. | |
| ## Kendi oyununu elle yerleştirme | |
| Hugging Face Space pipeline'ını kullanmadan, `www/` klasörünü elle de | |
| yerleştirebilirsin: | |
| 1. RPG Maker'da projeni web'e dışa aktar (Deploy Masterpiece). | |
| 2. Oluşan `www/` klasörünün içeriğini `app/src/main/assets/www/` üzerine | |
| kopyala (mevcut placeholder içeriğin üzerine yaz). | |
| 3. `RIA_FPSCounter.js` ve `RIA_TavernMenu.js` dosyalarını | |
| `app/src/main/assets/www/js/plugins/` altına kopyala (zaten template'te | |
| mevcutlarsa atlayabilirsin). | |
| 4. Kendi `js/plugins.js` dosyana şu girişleri ekle (RPG Maker editörünün | |
| Plugin Manager'ından da ekleyebilirsin): | |
| ```js | |
| $plugins.push( | |
| { "name": "RIA_FPSCounter", "status": true, "description": "", "parameters": { "defaultVisible": "false" } }, | |
| { "name": "RIA_TavernMenu", "status": true, "description": "", "parameters": { "accentEmberHex": "#e8a343" } } | |
| ); | |
| ``` | |
| ## Menüyü genişletme | |
| `RIA_TavernMenu.js`, gelecekteki eklentilerin kendi sekmelerini eklemesine | |
| izin veren bir `registerSection()` API'si sağlar: | |
| ```js | |
| window.RIA_TavernMenu.registerSection({ | |
| id: 'cheats', | |
| label: 'Hileler', | |
| render: function(container) { | |
| // container'ı DOM elemanlarıyla doldur | |
| } | |
| }); | |
| ``` | |
| Bu sayede örneğin ileride bir "cheat menu" eklentisi, `RIA_TavernMenu.js` | |
| dosyasının kendisine hiç dokunmadan sidebar'a yeni bir sekme ekleyebilir. | |