Централизованное хранилище и инструменты VS кода для моддеров.
SiloDB — это важный инфраструктурный инструмент для Farming Simulator 25. Он предлагает создателям модов централизованную и структурированную базу данных для постоянного хранения информации без риска конфликта между модами благодаря системе изоляции «пространства имен».
Больше не нужно управлять сложными файлами XML или JSON вручную для каждого мода. С помощью SiloDB данные систематизируются, типизируются и автоматически сохраняются в папке с игрой (Savegame).
Основные особенности:
- 📦 Полная система ORM: определите свои модели данных (поля, типы, значения по умолчанию).
- 🛡️ Полная изоляция: у каждого мода есть собственное пространство для хранения (пространство имен).
- 💾 Автоматическое сохранение: данные связаны с текущей резервной копией.
- ⚡ Оптимизированная производительность: облегченный движок NoSQL на основе JSON.
- 🛠️ Инструменты разработчика: включены консольные команды для проверки и изменения базы данных в режиме реального времени.
- 🔗 Нулевая конфигурация: интегрируется через простую зависимость в modDesc.xml.
Чтобы ускорить ваш рабочий процесс, в него включено специальное расширение VS Code, включающее IntelliSense, фрагменты кода и живое дерево для проверки файлов базы данных непосредственно в редакторе.
---
Руководство по началу работы (модераторы)
Чтобы использовать SiloDB в своем проекте, сначала добавьте зависимость в файл modDesc.xml:
1 <зависимости>
2 <имя зависимости="FS25_SILODB" />
3 </зависимости>
Пример реализации (API v2.0):
Вот как инициализировать API, определить шаблон и сохранить данные в несколько строк:
-- 1. Инициализация (Доступ к глобальному API)
локальный SILODB = g_globalMods["FS25_SILODB"]
если SILODB и SILODB.isReady(), то
-- Подключение к выделенному пространству для хранения данных
локальная база данных = SILODB.bind("FS25_MonMod")
-- 2. Определение модели (структура данных)
db:define("PlayerStats", {
поля = {
имя = {тип = "строка", требуется = true},
точки = {тип = "число", по умолчанию = 0},
isVIP = { type = "boolean", по умолчанию = false },
параметры = {тип = "таблица" }
}
})
-- 3. Сохранение данных (Установить/Создать)
local newRecord, err = db:create("PlayerStats", {
name = "Гризли",
баллы = 150,
isVIP = правда
})
если не ошибаюсь, то
print("Данные сохранены с идентификатором: " .. newRecord.id)
конец
-- Обновление существующей записи
db:update("PlayerStats", newRecord.id, {points = 200})
конец
---
Консольные команды (отладка):
- dbList <пространство имен>: список всех ключей/моделей мода.
- dbGet <пространство имен> <модель> <id>: отображает содержимое записи.
- dbSet <пространство имен> <ключ> <значение>: быстро изменяет простое значение.
---
Примите участие
Мы ждем отзывов! Если вы хотите сообщить об ошибке, запросить функцию или предложить интеграцию, присоединяйтесь к обсуждению на GitHub.
Депозит и документы:
SILODB: https://github.com/LeGrizzly/FS25_SILODB
Расширение VSCode: https://github.com/LeGrizzly/VS_Code_SILODB.
Дискорд: https://discord.gg/7xUh3AsJPZ
Основные изменения:
- Полный ребрендинг: DBAPI становится SILODB (modDesc, скрипты, консольные команды и API).
- Переход на ORM: Внедрение структурированной системы управления данными (CRUD: Создать, Обновить, Удалить, Найти).
- Механизм запросов: добавлен QueryEngine (фильтрация, сортировка, разбиение на страницы) и SchemaValidator.
Критические изменения:
- Удаление ключа-значения: старые методы getValue, setValue, deleteValue и listKeys удалены.
- Новый экспорт: сценарии теперь должны вызывать SILODB вместо DBAPI.
Улучшения:
— Обновлен файл exampleDbUsage.lua с обработкой ошибок.