Перейти к содержимому

Seam

Общие классы и ресурсы для Perspective и Luminance.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
590
Подписчиков на Modrinth
0
версии
3
Обновлён
23 июля 202623 июл.
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игруНужна 1 модам. Скачайте её, если этого требует другой мод.

Коротко о моде

Библиотека — нужна другим модам: её требуют 1
Работает на Fabric
Для Minecraft 1.21.11
Работает и в игре, и на сервере — ставьте, где нужен
Последняя версия — 1.0-beta.1+1.21.11 от 23 июля 2026
Нужен Fabric API
Где нужен
В игренеобязателенНа серверенеобязателен

Работает и в игре, и на сервере — ставьте, где нужен

Версии игры1.21.11
Описание переведено автоматическиПоказать оригинал (EN)

Seam

Общие классы и ресурсы для Perspective и Luminance.

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

Кроме того, вы можете сообщить нам об этом в канале #bug reports на моём сервере Fluxer или Discord, и мы создадим issue за вас.
Вы также можете использовать канал #modding chat, если вам нужна помощь!

Если вы игрок, вам не нужно устанавливать это, если только какой-либо мод не попросил вас об этом. Большинство модов, использующих Seam, должны включать его в комплекте; вы всё ещё можете установить Seam отдельно, и Fabric будет использовать самую актуальную версию.

Следующая информация предназначена для разработчиков модов, чтобы помочь им понять, как использовать Seam.

События

Seam содержит несколько реестров событий, чтобы упростить разработку.
Они были в первую очередь разработаны для Luminance и Perspective, однако другие моды также могут их использовать!

Это описание не является исчерпывающим, рекомендую посмотреть наш исходный код!

Клиентские события

Следующие реестры клиентских событий находятся в классе dev.dannytaylor.perspective.seam.client.events.SeamClientEvents:

  • CustomBadges

    • Рекомендуется использовать функцию SeamClientEvents.registerCustomBadge(Identifier badgeId, int outlineColor, int fillColor, int textColor); для регистрации кастомных значков, см. пример в разделе ModMenu Badges ниже.
  • ModBadges

    • Рекомендуется использовать функцию SeamClientEvents.registerModBadge(String modId, Identifier customBadgeId); для регистрации значков модов, см. пример в разделе ModMenu Badges ниже.
  • IconOverrides

    • Рекомендуется использовать функцию SeamClientEvents.registerIconOverride(String modId, IconOverride iconOverride); для регистрации переопределений иконок.
  • ProfiledDebugEntries

    • Рекомендуется использовать функцию SeamClientEvents.registerProfiledDebugEntry(Identifier identifier, DebugScreenEntry debugScreenEntry, DebugScreenProfile profile, DebugScreenEntryStatus status); для регистрации профилированных отладочных записей.
  • ClientResourceReloaders

    • Map из net.minecraft.resources.Identifier, net.minecraft.server.packs.resources.PreparableReloadListener, который регистрируется при инициализации клиента и выполняется при перезагрузке клиентских ресурсов.
  • AfterClientResourceReload

    • Map из net.minecraft.resources.Identifier, java.lang.Runnable, который выполняется после перезагрузки клиентских ресурсов.
  • BeforeGuiRender

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.GuiRender, который рендерится перед gui.
  • AfterGuiRender

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.GuiRender, который рендерится после gui.
  • BeforeGameRender

    • Map из net.minecraft.resources.Identifier, java.lang.Runnable, который выполняется перед рендером игры.
  • AfterPanoramaRender

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.PanoramaRender, который рендерится после панорамы меню.
  • AfterVanillaPostEffectRender

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.GameRender, который рендерится после ванильного пост-эффект шейдера.
  • BeforeUiRender

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.GameRender, который рендерится перед текущим экраном.
  • AfterUiBackgroundRender

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.GameRender, который рендерится после фона текущего экрана.
  • AfterUiRender

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.GameRender, который рендерится после всего.
  • OnResized

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.OnResized, который выполняется при изменении размера окна.
  • OnMouseScroll

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientCallables.OnMouseScroll, который выполняется при прокрутке мыши.
  • OnMouseButton

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientCallables.OnMouseButton, который выполняется при нажатии кнопки мыши.
  • OnJoinWorld

    • Map из net.minecraft.resources.Identifier, java.lang.Runnable, который выполняется при подключении клиента к миру.
  • OnLeaveWorld

    • Map из net.minecraft.resources.Identifier, java.lang.Runnable, который выполняется при выходе клиента из мира.
  • OnStartItemUse

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.UseItem, который выполняется при использовании предмета (только на стороне клиента).
  • OnFinishItemUse

    • Map из net.minecraft.resources.Identifier, dev.dannytaylor.perspective.seam.client.events.SeamClientRunnables.FinishUsingItem, который выполняется при завершении использования предмета (только на стороне клиента).
Панель сообщений

Seam добавляет панель сообщений в верхней части экрана по центру. О том, как отправлять сообщения с сервера, см. в разделе «Общие события».

Вы можете обновлять панель сообщений (на стороне клиента), используя следующую функцию:
dev.dannytaylor.perspective.seam.client.events.SeamClientEvents.sendToMessageBar(Component.literal("this is an example message!"));

Переопределения иконок

Вы можете зарегистрировать собственное переопределение иконки с помощью Seam. Это автоматически обновит иконку вашего мода в Mod Menu. Если вы используете это с другим модом (например, Sodium), вам придётся реализовать это вручную.

Вот пример того, как зарегистрировать переопределение иконки, которое меняется только 1 апреля.

import net.fabricmc.api.ClientModInitializer;
import net.minecraft.resources.Identifier;
import dev.dannytaylor.perspective.seam.client.events.SeamClientEvents;
import dev.dannytaylor.perspective.seam.common.util.DateHelper;
import dev.dannytaylor.perspective.seam.client.events.IconOverride;

public class MyClientInitializer implements ClientModInitializer {    
    @Override
    public void onInitializeClient() {
        SeamClientEvents.registerIconOverride("modId", new IconOverride(Identifier.parse("modid:textures/icon2.png"), DateHelper::isAprilFools));
    }
}
Значки ModMenu

Вы можете зарегистрировать собственные значки Mod Menu с помощью Seam.
Для регистрации собственных значков Mod Menu не требуется установленный Mod Menu.

Вот пример того, как зарегистрировать собственный значок Mod Menu.

import net.fabricmc.api.ClientModInitializer;
import net.minecraft.resources.Identifier;
import dev.dannytaylor.perspective.seam.client.events.SeamClientEvents;

public class MyClientInitializer implements ClientModInitializer {
    public static final Identifier EXAMPLE_BADGE = SeamClientEvents.registerCustomBadge(
        Identifier.parse("modid:example_badge"), // badge identifier
        0xFFAAAAAA, // outline colour
        0xFF808080, // fill colour
        0xFFFFFFFF // text colour
    );
    
    @Override
    public void onInitializeClient() {
        SeamClientEvents.registerModBadge("modId", EXAMPLE_BADGE);
    }
}

_Также вам нужно добавить следующий ключ в ваш языковой файл (`/assets//lang/en_us.json`)._

{
  "gui.modid.custom_badge.example_badge": "Example"
}

Формат языкового ключа: `gui..custom_badge.`.

Встроенные значки

Seam содержит два встроенных значка.

Perspective

Используется модами Perspective, указывая на то, что они являются частью Perspective.

Luminance

Следует использовать модам, которые используют Luminance, указывая на поддержку шейдеров luminance.
Вот пример того, как добавить значок luminance в ваш мод.

import net.fabricmc.api.ClientModInitializer;
import dev.dannytaylor.perspective.seam.client.events.Badges;

public class MyClientInitializer implements ClientModInitializer {    
    @Override
    public void onInitializeClient() {
        Badges.luminance("modId");
    }
}

Общие события

В настоящее время Seam не содержит общих реестров или реестров только для сервера.
Однако он содержит некоторые общие функции и классы.

dev.dannytaylor.perspective.seam.common.data.FabricMod хранит id мода, имя и создаёт логгер. Вы также можете отправлять сообщения в свой логгер через dev.dannytaylor.perspective.seam.common.data.log.SeamLog, указав свой FabricMod в аргументах функции (info, warn, error и debug принимают следующие аргументы: (AbstractMod mod, String message, Object... args)).

dev.dannytaylor.perspective.seam.common.events.SeamEvents содержит функции tryRun и onInitialize. Эти функции перехватывают и логируют ошибки при выполнении указанного runnable. Функции onInitialize также логируют то, что они инициализируют.

Панель сообщений

Если вы делаете клиентский мод, смотрите раздел «Клиентские события» выше. Это следует использовать для серверных модов.

Вы можете отправить сообщение в панель сообщений клиента с помощью dev.dannytaylor.perspective.seam.common.events.SeamEvents.sendToMessageBar(ServerPlayer player, Component message);.

Также можно отправить сообщение с настраиваемой длительностью в тиках с помощью dev.dannytaylor.perspective.seam.common.events.SeamEvents.sendToMessageBar(ServerPlayer player, Component message, float ticks);.


Лицензировано под LGPL-3.0

Частые вопросы

Как установить Seam?

Установите Fabric под свою версию Minecraft, скачайте Seam под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Seam?

У Seam есть сборки для Minecraft 1.21.11.

Нужен ли Seam на сервере?

Работает и в игре, и на сервере — ставьте, где нужен

Лицензия и источник
GNU Lesser General Public License v3.0 onlyможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее