Skip to content

🎛️ Пресеты игровых правил и элементы управления

ПараметрСпецификация
Класс движка пресетовnet.instantgratification.collapsiblegamerules.preset.GameRulePresetEngine
Структура пресетаrecord Preset(String id, Component displayName, Map<String, Object> ruleValues)
Интерактивные виджетыIntegerSliderWidget, BooleanToggleWidget
Вспомогательный классnet.instantgratification.collapsiblegamerules.util.GameRuleSliderHelper
Фон активного режима0x4400FF00 (Изумрудно-зеленый фон)
Фон выключенного режима0x44FF0000 (Рубиново-красный фон)
Встроенные пресетыbuilder ("🏰 Режим строителя"), fast_play ("⚡ Быстрая игра"), hardcore ("💀 Хардкорный реализм")

📖 Обзор механики

Collapsible Game Rules предоставляет интерактивные элементы управления и готовые игровые пресеты, позволяющие активировать целые конфигурации мира в один клик или плавно менять числа ползунками вместо ручного ввода цифр в текстовые поля.


🏰 Матрица встроенных пресетов

GameRulePresetEngine включает три базовых профиля:

ID пресетаНазваниеПравило игрыНастроенное значениеВлияние на геймплей
builder🏰 Режим строителяdoDaylightCycle
doWeatherCycle
doMobSpawning
keepInventory
mobGriefing
doFireTick
false
false
false
true
false
false
Идеально для строительства: фиксирует время и погоду, выключает мобов, криперов и огонь.
fast_play⚡ Быстрая играrandomTickSpeed
playersSleepingPercentage
keepInventory
10
0
true
Быстрое выживание: ускоряет рост посевов ($3\times$), пропуск ночи одним игроком, сохранение инвентаря.
hardcore💀 Хардкорный реализмnaturalRegeneration
doInsomnia
playersSleepingPercentage
false
true
100
Экстремальное выживание: отключает регенерацию здоровья (нужны яблоки/зелья), включает фантомов.

🎚️ Числовой ползунок (IntegerSliderWidget)

IntegerSliderWidget заменяет поля ввода чисел на удобные ползунки.

Математические формулы нормализации

Определение положения ползунка из целого числа $v$: $$\text{normalized} = \frac{\text{clamp}(v, \text{min}, \text{max}) - \text{min}}{\text{max} - \text{min}}$$

Вычисление целого числа из позиции ползунка $p \in [0.0, 1.0]$: $$\text{calculatedInt} = \text{min} + \text{round}\left(p \times (\text{max} - \text{min})\right)$$

Границы ванильных правил (GameRuleSliderHelper)

Ключ правилаМинимум ($ ext{min}$)Максимум ($ ext{max}$)Ванильное значение
randomTickSpeed01003
spawnRadius03210
playersSleepingPercentage0100100
maxEntityCramming010024
maxCommandChainLength06553665536
commandModificationBlockLimit06553632768

🔘 Двухпозиционный переключатель (BooleanToggleWidget)

BooleanToggleWidget обеспечивает наглядную обратную связь:

  • Состояние: ИСТИНА (ON): Текст ✔ ON зеленым шрифтом с полупрозрачным фоном 0x4400FF00.
  • Состояние: ЛОЖЬ (OFF): Текст ✖ OFF красным шрифтом с полупрозрачным фоном 0x44FF0000.
  • Клик мыши: Переключает состояние и выполняет колбэк onToggle.accept(newState).
┌─────────────────────────┐     ┌─────────────────────────┐
│         ✔ ON            │     │         ✖ OFF           │
│   (Green Tint 0x4400FF00)│     │   (Red Tint 0x44FF0000) │
└─────────────────────────┘     └─────────────────────────┘

🔗 Связанная документация

Official documentation & web portal for Dasik Igaijinn mods.