это мощная и гибкая система автоматической загрузки модулей для Garry's Mod, разработанная для удобной организации, масштабирования и поддержки крупных игровых режимов. Система поддерживает разделение кода на серверную, клиентскую и общую части, автоматическую обработку зависимостей, ведёт подробное логирование и предоставляет удобные инструменты для отладки и мониторинга.
- Автоматическая загрузка модулей из структурированных папок с поддержкой вложенности.
- Проверка и обработка зависимостей между модулями.
- Гибкая регистрация и учёт загруженных файлов с хранением подробной информации о каждом модуле.
- Логирование всех этапов загрузки, ошибок и предупреждений.
- Консольные команды для просмотра состояния системы, структуры модулей, статистики и отладки.
Система рекурсивно ищет все .lua файлы в папке modules/, определяет их тип по префиксу и сортирует по приоритету (shared → server → client). Перед загрузкой каждого файла система проверяет, удовлетворены ли его зависимости (если они указаны). Каждый загруженный файл регистрируется в системе с уникальным ID, именем, типом, временем загрузки, методом загрузки и списком зависимостей.
Консольные команды
- prp_modules_list — список всех загруженных модулей.
- prp_modules_by_type <тип> — фильтрация модулей по типу (shared/server/client/all).
- prp_module_deps <имя_модуля> — просмотр зависимостей модуля.
- prp_load_order — порядок загрузки модулей.
- prp_modules_stats — подробная статистика по модулям.
- prp_clean_duplicates — удаление дублирующихся записей.
- prp_register_file <путь> [тип] — регистрация существующего файла.
- prp_modules_tree — визуализация структуры папок модулей.
- prp_test_system — комплексное тестирование системы загрузки.
Преимущества
- Легко добавлять новые модули и поддерживать большие проекты.
- Поддержка вложенных папок и различных структур модулей.
- Предотвращение повторной загрузки, обработка ошибок и зависимостей.