Revelationary
Система раскрытия блоков и предметов на основе данных. Открывай по мере игры!
- Загрузчики
- FabricNeoForgeQuilt
- Скачиваний на Modrinth
- 546 тыс.
- Подписчиков на Modrinth
- 63
- версия
- 41
- Обновлён
- 6 сентября 20266 сент.
- Опубликован
- в 2022
Коротко о моде
Нужен и в игре, и на сервере
Обзор
Управляемая данными система раскрытия блоков и предметов. Открывай по мере игры!
Revelationary добавляет способ ограничивать обнаружение новых блоков в мире через датапак или API (для других модов). С помощью Revelationary ты можешь выстроить прогрессию своих паков / модов так, чтобы игрок не чувствовал себя перегруженным, начиная новое прохождение. Он сможет воспринимать эти блоки из генерации мира только после того, как разблокирует определённое достижение, делающее блок видимым для него.
Пример: Игрок видит определённую руду как камень. Когда он побеждает enderdragon, он теперь может видеть и добывать твою руду в мире — она была там с самого начала. Индивидуально для каждого игрока и очень производительно.
Revelations
"[a] revelation is the revealing or disclosing of some form of truth or knowledge"
Если ты разработчик мода или модпака, основанного на прогрессии, ты попал по адресу.
С Revelationary ты можешь использовать датапаки или Revelation API, чтобы постепенно раскрывать блоки в мире по мере прогресса игрока. Обычная расщелина, заполненная камнем, может раскрыться как кишащая жизнью и рудой, когда игрок побеждает босса или достигает важной вехи.
Пока у игрока нет необходимого прогресса, блоки и предметы, которые ты регистрируешь через Revelationary с помощью API или датапака, будут иметь лишь загадочные названия, а в случае блоков в мире — выпадать те же дропы, что и блок, под который они замаскированы, обеспечивая игроку бесшовный опыт без наводнения неизвестными ресурсами, которые он не может использовать в начале. Вместо этого ты можешь вводить ресурсы по мере необходимости.
Ограничения
Помимо внешнего вида и дропов, замаскированные блоки сохраняют все свойства оригинального блока: хитбокс, пропускает ли через себя свет и всё остальное. Учитывай это при поиске подходящих кандидатов. Идеальной маскировкой для твоей руды будет камень или глубинный сланец, так как они имеют много общего. Аналогично ты можешь замаскировать своё неуловимое растение под мак: у обоих маленький хитбокс, и игроки могут проходить сквозь них.
Если ты программист, ты можешь использовать Revelation API, чтобы динамически менять свойства своих блоков в зависимости от того, видимы они игроку или нет. Так ты можешь даже замаскировать свой цветок под воздух: придав ему пустой хитбокс в замаскированном состоянии, твои игроки могут даже не знать, что он там, пока не смогут его увидеть!
Множество примеров для датапаков и API ищи в вики Revelationary: https://github.com/DaFuqs/Revelationary/wiki
Регистрация Revelations через датапак
Должны быть размещены в папке resources/data/<<mod_id>>/revelations
{
"advancement": "spectrum:milestones/reveal_quitoxic_reeds",
"block_states": {
"minecraft:grass": "minecraft:beacon",
"minecraft:tall_grass": "minecraft:obsidian",
"minecraft:tall_grass[half=upper]": "minecraft:netherite_block"
},
"items": {
"minecraft:nether_star": "minecraft:gunpowder"
}
}Регистрация блока или предмета, "осведомлённого о revelation"
public class CloakedItem extends Item implements RevelationAware {
Identifier cloakAdvancementIdentifier;
Item cloakItem;
public CloakedItem(Settings settings, Identifier cloakAdvancementIdentifier, Item cloakItem) {
super(settings);
this.cloakAdvancementIdentifier = cloakAdvancementIdentifier;
this.cloakItem = cloakItem;
registerCloak();
}
@Override
public Identifier getCloakAdvancementIdentifier() {
return cloakAdvancementIdentifier;
}
@Override
public Hashtable<BlockState, BlockState> getBlockStateCloaks() {
return new Hashtable<>();
}
@Override
public Pair<Item, Item> getItemCloak() {
return new Pair<>(this, cloakItem);
}
@Override
public void onCloak() { }
@Override
public void onUncloak() { }
}
## Регистрация колбэка при наступлении Revelations
```java
RevelationHolder.registerRevelationCallback(new RevelationHolder.UncloakCallback() {
@Override
public void trigger(List<Identifier> advancements, List<Block> blocks, List<Item> items) {
for(Block block : blocks) {
if(Registry.BLOCK.getId(block).getNamespace().equals(MOD_ID)) {
...
<Не знаю. Типа показать попап что ли. Тебе решать>
...
break
}
}
}
});Discord
На Discord-сервере Spectrum ты найдёшь много полезных людей. Там всегда есть дружелюбные и готовые помочь. Заглядывай, если хочешь!
Частые вопросы
Как установить Revelationary?
Установите Fabric под свою версию Minecraft, скачайте Revelationary под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Revelationary?
У Revelationary есть сборки для Minecraft 1.21.1, 1.21.4–1.21.8, 26.1–26.1.1, 26.2 ….
Нужен ли Revelationary на сервере?
Нужен и в игре, и на сервере