Mod geliştiriciler için merkezi depolama ve VS kodu araçları
SiloDB, Farming Simulator 25 için önemli bir altyapı aracıdır. "Ad Alanı" izolasyon sistemi sayesinde mod yaratıcılarına, modlar arasında çakışma riski olmadan bilgileri kalıcı olarak depolamak için merkezi ve yapılandırılmış bir veritabanı sunar.
Artık her mod için manuel olarak yönetilecek karmaşık XML veya JSON dosyaları yok. SiloDB ile veriler düzenlenir, yazılır ve otomatik olarak oyun klasörünüze (Savegame) kaydedilir.
Ana özellikler:
- 📦 Tam ORM sistemi: Veri modellerinizi tanımlayın (alanlar, türler, varsayılan değerler).
- 🛡️ Tam izolasyon: Her modun kendi depolama alanı (ad alanı) vardır.
- 💾 Otomatik kalıcılık: Veriler mevcut yedeklemeye bağlanır.
- ⚡ Optimize edilmiş performans: JSON'u temel alan hafif NoSQL motoru.
- 🛠️ Geliştirici Araçları: Veritabanını gerçek zamanlı olarak incelemek ve değiştirmek için konsol komutları dahildir.
- 🔗 Sıfır yapılandırma: modDesc.xml'e basit bir bağımlılık yoluyla entegre olur.
İş akışınızı güçlendirmek için IntelliSense, kod parçacıkları ve veritabanı dosyalarınızı doğrudan düzenleyicide incelemek için canlı bir ağaç içeren özel bir VS Code uzantısıyla birlikte gelir.
---
Başlangıç Kılavuzu (Moderler)
SiloDB'yi projenizde kullanmak için öncelikle bağımlılığı modDesc.xml dosyanıza ekleyin:
1 <bağımlılıklar>
2 <bağımlılık adı = "FS25_SILODB" />
3 </bağımlılıklar>
Uygulama örneği (API v2.0):
API'yi nasıl başlatacağınız, bir şablon tanımlayacağınız ve birkaç satırda verileri nasıl kaydedeceğiniz aşağıda açıklanmıştır:
-- 1. Başlatma (Global API'ye erişim)
yerel SILODB = g_globalMods["FS25_SILODB"]
SILODB ve SILODB.isReady() ise o zaman
-- Özel depolama alanınıza bağlantı
yerel veri tabanı = SILODB.bind("FS25_MonMod")
-- 2. Model Tanımı (Veri Yapısı)
db:define("Oyuncu İstatistikleri", {
alanlar = {
ad = { tür = "dize", gerekli = doğru },
puan = { tür = "sayı", varsayılan = 0 },
isVIP = { type = "boolean", varsayılan = false },
seçenekler = { tür = "tablo" }
}
})
-- 3. Verileri kaydetme (Ayarla / Oluştur)
yerel yeniKayıt, err = db:create("PlayerStats", {
isim = "Grizzly",
puan = 150,
isVIP = doğru
})
eğer hata değilse o zaman
print("Veriler ID ile kaydedildi: " .. newRecord.id)
son
-- Mevcut bir kaydın güncellenmesi
db:update("PlayerStats", newRecord.id, { puan = 200 })
son
---
Konsol komutları (Hata Ayıklama):
- dbList <namespace>: Bir modun tüm anahtarlarını/modellerini listeler.
- dbGet <ad alanı> <model> <id>: Bir kaydın içeriğini görüntüler.
- dbSet <ad alanı> <anahtar> <değer>: Basit bir değeri hızla değiştirir.
---
Katılın
Geri bildirim arıyoruz! Bir hatayı bildirmek, bir özellik istemek veya bir entegrasyon önermek istiyorsanız GitHub'daki sohbete katılın.
Depozito ve belgeler:
SILODB: https://github.com/LeGrizzly/FS25_SILODB
VSCode uzantısı: https://github.com/LeGrizzly/VS_Code_SILODB
Anlaşmazlık: https://discord.gg/7xUh3AsJPZ
Büyük Değişiklikler:
- Tamamen yeniden markalama: DBAPI, SILODB'ye (modDesc, komut dosyaları, konsol komutları ve API) dönüşür.
- ORM'ye geçiş: Yapılandırılmış bir veri yönetim sisteminin tanıtılması (CRUD: Oluştur, Güncelle, Sil, Bul).
- Sorgu Motoru: QueryEngine (filtreleme, sıralama, sayfalandırma) ve SchemaValidator eklendi.
Son Değişiklikler:
- Anahtar-Değer Değerinin Kaldırılması: Eski getValue, setValue, deleteValue ve listKeys yöntemleri kaldırıldı.
- Yeni Dışa Aktarma: Komut dosyaları artık DBAPI yerine SILODB'yi çağırmalıdır.
İyileştirmeler:
- ÖrnekDbUsage.lua hata işlemeyle güncellendi.