Скачать Fractal — Minecraft Моды — MetaMods
Fractal

Fractal

Активный

Установок

1

Последнее обновление

1 месяц назад

Версии

1.19.2 — 1.21.8
Клиент и сервер
Fabric
Quilt
Библиотеки

Fractal

Fractal представляет собой форк проекта lib39/fractal от unascribed, дополненный поддержкой стилизованных групп. Данный репозиторий поддерживается в актуальном состоянии, пока оригинальный разработчик занят другими проектами.

Модификация добавляет в Minecraft систему подгрупп предметов для творческого режима, что позволяет лучше организовать содержимое вкладок.

Преимущества использования

Подгруппы Fractal отличаются компактным расположением - вы можете создать до 12 подгрупп для каждой основной вкладки. Процесс создания новой ItemSubGroup требует всего одной строки кода и не требует изменения существующей логики распределения предметов по группам. Просто передайте ItemSubGroup вместо основной группы предметов.

Ограничения

Хотя технически возможно создание более 12 подгрупп на одну группу предметов, такое количество будет выглядеть некорректно. Также стоит учитывать, что мелкий шрифт, используемый для подписей, не поддерживает полный набор символов Unicode.

Примеры использования

Подгруппы в стиле ванильной игры

Скриншоты творческих вкладок

public static final Identifier GROUP_ID = new Identifier("mymod", "main");

public static final ItemGroup MAIN = FabricItemGroup.builder()
        .icon(() -> new ItemStack(Blocks.REDSTONE_BLOCK))
        .entries((displayContext, entries) -> entries.add(Items.APPLE))
        .displayName(Text.translatable("mymod.1"))
        .noRenderedName()
        .build();

public static final ItemGroup EQUIPMENT = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.equipment")).entries((displayContext, entries) -> entries.add(Items.APPLE)).build();
public static final ItemGroup FUNCTIONAL = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.functional")).styled(STYLE).entries((displayContext, entries) -> entries.add(Items.BAKED_POTATO)).build();
public static final ItemGroup CUISINE = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.cuisine")).entries((displayContext, entries) -> entries.add(Items.CACTUS)).build();
public static final ItemGroup RESOURCES = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.resources")).styled(STYLE).entries((displayContext, entries) -> entries.add(Items.DANDELION)).build();

@Override
public void onInitialize() {
    Registry.register(Registries.ITEM_GROUP, GROUP_ID, MAIN);
}

Применение пользовательских стилей

Вы можете настраивать внешний вид подгрупп, задавая собственные текстуры для фона, вкладок, подвкладок и полос прокрутки. Более того, допускается комбинирование разных стилей в рамках одной модификации.

В представленном примере первые две подгруппы используют кастомный стиль с текстурами, поставляемыми вместе с модом, а остальные сохраняют стандартный ванильный вид.

Скриншоты творческих вкладок

// Текстура (разместить в \resources\assets\fractal\textures\gui\container\creative_inventory)
public static final Identifier BACKGROUND_TEXTURE = new Identifier("fractal", "textures/gui/container/creative_inventory/custom_background.png");

// Спрайты (разместить в \resources\assets\fractal\textures\gui\sprites\container\creative_inventory)
public static final Identifier SCROLLBAR_ENABLED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_scrollbar_enabled");
public static final Identifier SCROLLBAR_DISABLED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_scrollbar_disabled");

public static final Identifier SUBTAB_SELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_subtab_selected");
public static final Identifier SUBTAB_UNSELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_subtab_unselected");

public static final Identifier TAB_TOP_FIRST_SELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_top_first_selected");
public static final Identifier TAB_TOP_SELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_top_selected");
public static final Identifier TAB_TOP_LAST_SELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_top_last_selected");
public static final Identifier TAB_TOP_FIRST_UNSELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_top_first_unselected");
public static final Identifier TAB_TOP_UNSELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_top_unselected");
public static final Identifier TAB_TOP_LAST_UNSELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_top_last_unselected");
public static final Identifier TAB_BOTTOM_FIRST_SELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_bottom_first_selected");
public static final Identifier TAB_BOTTOM_SELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_bottom_selected");
public static final Identifier TAB_BOTTOM_LAST_SELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_bottom_last_selected");
public static final Identifier TAB_BOTTOM_FIRST_UNSELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_bottom_first_unselected");
public static final Identifier TAB_BOTTOM_UNSELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_bottom_unselected");
public static final Identifier TAB_BOTTOM_LAST_UNSELECTED_TEXTURE = new Identifier("fractal", "container/creative_inventory/custom_tab_bottom_last_unselected");

public static final ItemSubGroup.Style STYLE = new ItemSubGroup.Style.Builder()
        .background(BACKGROUND_TEXTURE)
        .scrollbar(SCROLLBAR_ENABLED_TEXTURE, SCROLLBAR_DISABLED_TEXTURE)
        .subtab(SUBTAB_SELECTED_TEXTURE, SUBTAB_UNSELECTED_TEXTURE)
        .tab(TAB_TOP_FIRST_SELECTED_TEXTURE, TAB_TOP_SELECTED_TEXTURE, TAB_TOP_LAST_SELECTED_TEXTURE, TAB_TOP_FIRST_UNSELECTED_TEXTURE, TAB_TOP_UNSELECTED_TEXTURE, TAB_TOP_LAST_UNSELECTED_TEXTURE,
                TAB_BOTTOM_FIRST_SELECTED_TEXTURE, TAB_BOTTOM_SELECTED_TEXTURE, TAB_BOTTOM_LAST_SELECTED_TEXTURE, TAB_BOTTOM_FIRST_UNSELECTED_TEXTURE, TAB_BOTTOM_UNSELECTED_TEXTURE, TAB_BOTTOM_LAST_UNSELECTED_TEXTURE)
        .build();

public static final ItemGroup EQUIPMENT = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.equipment")).styled(STYLE).entries((displayContext, entries) -> entries.add(Items.APPLE)).build();
public static final ItemGroup FUNCTIONAL = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.functional")).styled(STYLE).entries((displayContext, entries) -> entries.add(Items.BAKED_POTATO)).build();
public static final ItemGroup CUISINE = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.cuisine")).entries((displayContext, entries) -> entries.add(Items.CACTUS)).build();
public static final ItemGroup RESOURCES = new ItemSubGroup.Builder(MAIN, Text.translatable("itemGroup.mymod.resources")).entries((displayContext, entries) -> entries.add(Items.DANDELION)).build();
Участники проекта
DaFuqs

DaFuqs

Разработчик

Создан: 21 июл 2023

ID: 6889