Revelationary avatar

Revelationary [1.21.4] [1.20.6] [1.19.4]

Скрытый предмет

Обзор

Система раскрытия блоков и предметов на основе данных. Открывайте по мере прохождения!

Revelationary предоставляет способ ограничить обнаружение новых блоков в мире через data pack или API (для других модов). С помощью этого решения можно проектировать прогрессию в модпаках, избегая перегрузки игроков информацией на старте. Блоки становятся видимыми только после получения конкретного достижения.

Пример: Игрок видит определённую руду как камень. После победы над Эндердраконом руда становится видимой и добываемой — она существовала в мире с самого начала. Индивидуально для каждого игрока с высокой производительностью.

Механика раскрытия

Для создателей модов и модпаков с прогрессией Revelationary позволяет постепенно открывать блоки в мире по мере развития игрока. Например, обычный камень может превратиться в жилу руды после достижения ключевого этапа.

До получения необходимого прогресса замаскированные блоки и предметы будут иметь абстрактные названия. Блоки сохраняют свойства маскируемого объекта (хитбокс, светопроницаемость) и выпадают соответствующие дропы.

Ограничения

При выборе блоков для маскировки учитывайте схожесть характеристик. Например, руду лучше маскировать под камень или глубинный сланец, а растения — под маковые кусты.

Программисты могут использовать Revelation API для динамического изменения свойств блоков в зависимости от видимости. Например, цветок, замаскированный под воздух, получит пустой хитбокс до раскрытия.

Примеры использования data packs и API доступны в вики: https://github.com/DaFuqs/Revelationary/wiki

Регистрация через Data Pack

Файлы должны располагаться в папке 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"
  }
}

Пример реализации скрытого предмета

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() { }

}

Коллбэки при раскрытии

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;
            }
        }
    }
});

Требуемые зависимости

Fabric API avatarFabric APImodmuss50

Скачать Revelationary

 
Тип Скачать Версия Загрузчик Обновлено Размер
Release1.3.8+1.21.11.21.1Fabric15 января 2025154,8 КБ
Release1.4.0+1.21.41.21.4Fabric26 декабря 2024156,7 КБ
Release1.3.9+1.20.11.20.1Fabric19 октября 2024152,5 КБ
Release1.3.8-1.20.11.20.1Fabric21 июня 2024152,3 КБ
Release1.3.7-1.20.51.20.5+1 Fabric30 апреля 2024149,8 КБ
Release1.3.7-1.20.11.20.1Fabric27 января 2024147 КБ
Release1.3.5-1.20.11.20.1Fabric8 декабря 2023147,1 КБ
Release1.3.6-1.20.11.20.1Fabric8 декабря 2023147,1 КБ
Release1.3.5-1.20.21.20.2Fabric18 октября 2023146,9 КБ
Release1.3.5+1.19.41.19.4Fabric20 июля 2023147 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.