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
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
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.WebViewdoğ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ı:
window.RiaslinkNative.vibrate(ms)/.exitApp()— menüden native'e.window.RIA_TavernMenu.handleBackPress()— native'den menüye. Android geri tuşuna basıldığındaGameWebView.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:
cp riaslink.build.properties.example riaslink.build.properties
# değerleri düzenle
Manuel build
./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:
- RPG Maker'da projeni web'e dışa aktar (Deploy Masterpiece).
- Oluşan
www/klasörünün içeriğiniapp/src/main/assets/www/üzerine kopyala (mevcut placeholder içeriğin üzerine yaz). RIA_FPSCounter.jsveRIA_TavernMenu.jsdosyalarınıapp/src/main/assets/www/js/plugins/altına kopyala (zaten template'te mevcutlarsa atlayabilirsin).- Kendi
js/plugins.jsdosyana şu girişleri ekle (RPG Maker editörünün Plugin Manager'ından da ekleyebilirsin):
$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:
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.