Almacenamiento centralizado y herramientas de código VS para modders
SiloDB es una herramienta de infraestructura esencial para Farming Simulator 25. Ofrece a los creadores de mods una base de datos centralizada y estructurada para almacenar información de forma persistente, sin riesgo de conflicto entre mods gracias a un sistema de aislamiento "Namespace".
No más archivos XML o JSON complejos para administrar manualmente para cada mod. Con SiloDB, los datos se organizan, se escriben y se guardan automáticamente en la carpeta de tu juego (Savegame).
Características principales:
- 📦 Sistema ORM completo: Defina sus modelos de datos (campos, tipos, valores predeterminados).
- 🛡️ Aislamiento total: Cada mod tiene su propio espacio de almacenamiento (namespace).
- 💾 Persistencia automática: los datos están vinculados a la copia de seguridad actual.
- ⚡ Rendimiento optimizado: Motor NoSQL ligero basado en JSON.
- 🛠️ Herramientas de desarrollador: Comandos de consola incluidos para inspeccionar y modificar la base de datos en tiempo real.
- 🔗 Configuración cero: se integra mediante una dependencia simple en modDesc.xml.
Para mejorar su flujo de trabajo, viene con una extensión VS Code dedicada que incluye IntelliSense, fragmentos de código y un árbol en vivo para inspeccionar los archivos de su base de datos directamente en el editor.
---
Guía de introducción (moderadores)
Para usar SiloDB en su proyecto, primero agregue la dependencia en su modDesc.xml:
1 <dependencias>
2 <nombre de dependencia="FS25_SILODB" />
3 </dependencias>
Ejemplo de implementación (API v2.0):
A continuación se explica cómo inicializar la API, definir una plantilla y guardar datos en unas pocas líneas:
-- 1. Inicialización (Acceso a API global)
SILODB local = g_globalMods["FS25_SILODB"]
si SILODB y SILODB.isReady() entonces
-- Conexión a su espacio de almacenamiento dedicado
base de datos local = SILODB.bind("FS25_MonMod")
-- 2. Definición del modelo (estructura de datos)
db:define("Estadísticas del jugador", {
campos = {
nombre = {tipo = "cadena", requerido = verdadero},
puntos = { tipo = "número", predeterminado = 0 },
isVIP = {tipo = "booleano", predeterminado = falso},
opciones = { tipo = "tabla" }
}
})
-- 3. Guardar datos (Establecer / Crear)
nuevoRecord local, err = db:create("Estadísticas del jugador", {
nombre = "oso pardo",
puntos = 150,
esVIP = verdadero
})
si no te equivocas entonces
print("Datos guardados con ID: " .. newRecord.id)
fin
-- Actualización de un registro existente
db:update("PlayerStats", newRecord.id, { puntos = 200 })
fin
---
Comandos de consola (depuración):
- dbList <espacio de nombres>: enumera todas las claves/modelos de un mod.
- dbGet <espacio de nombres> <modelo> <id>: muestra el contenido de un registro.
- dbSet <espacio de nombres> <clave> <valor>: Modifica un valor simple rápidamente.
---
Involúcrate
¡Estamos buscando comentarios! Ya sea que desee informar un error, solicitar una función o sugerir una integración, únase a la conversación en GitHub.
Depósito y documentos:
SILODB: https://github.com/LeGrizzly/FS25_SILODB
Extensión VSCode: https://github.com/LeGrizzly/VS_Code_SILODB
Discordia: https://discord.gg/7xUh3AsJPZ
Cambios importantes:
- Cambio de marca completo: DBAPI se convierte en SILODB (modDesc, scripts, comandos de consola y API).
- Transición a ORM: Introducción de un sistema de gestión de datos estructurados (CRUD: Crear, Actualizar, Eliminar, Buscar).
- Query Engine: Se agregó QueryEngine (filtrado, clasificación, paginación) y SchemaValidator.
Cambios importantes:
- Eliminación de Key-Value: Se eliminan los antiguos métodos getValue, setValue, deleteValue y listKeys.
- Nueva exportación: los scripts ahora deben llamar a SILODB en lugar de DBAPI.
Mejoras:
- EjemploDbUsage.lua actualizado con manejo de errores.