Скачать For the Love of God Would You Shut Up — Minecraft Моды — MetaMods

For the Love of God Would You Shut Up

Архивирован

Установок

0

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

3 года назад

Версии

22w13a — 22w14a
Клиент
Fabric
Утилиты

For the Love of God Would You Shut Up

Этот мод отменяет изменение, которое было внедрено в снимке 22w13a, где нотные блоки издавали звуки даже при наличии блоков над ними. Основная цель модификации — сделать работу с редстоуном менее раздражающей, отключая звуки нотных блоков, когда сверху что-то расположено.

Важно отметить: несмотря на отключение звуков, нотные блоки по-прежнему отправляют игровые события, что позволяет активировать эллаев и скалки-сенсоры.

Объяснение изменений в коде

Изначально код для воспроизведения ноты выглядел следующим образом:

private void playNote(World world, BlockPos pos) {
    if (world.getBlockState(pos.up()).isAir()) {
        world.addSyncedBlockEvent(pos, this, 0, 0); // воспроизводит звук
    }
}

В версии 22w13a была добавлена игровая система событий для нотных блоков, при этом звук блокировался только если сверху находилась шерсть или ковер:

private void playNote(@Nullable Entity entity, World world, BlockPos pos) {
    BlockState blockState = world.getBlockState(pos.up());
    if (blockState.isIn(BlockTags.WOOL) || blockState.isIn(BlockTags.WOOL_CARPETS)) {
        return;
    }
    world.addSyncedBlockEvent(pos, this, 0, 0); // воспроизводит звук
    world.emitGameEvent(entity, GameEvent.NOTE_BLOCK_PLAY, pos); // уведомляет эллаев, вардена и скалки-сенсоры
}

Данный мод вносит следующие корректировки в кодфактически превращает world.addSyncedBlockEvent в метод с проверкой условия```diff private void playNote(@Nullable Entity entity, World world, BlockPos pos) { BlockState blockState = world.getBlockState(pos.up()); if (blockState.isIn(BlockTags.WOOL) || blockState.isIn(BlockTags.WOOL_CARPETS)) { return; }

  • if (world.getBlockState(pos.up()).isAir()) {
  • world.addSyncedBlockEvent(pos, this, 0, 0); // воспроизводит звук
  • }
  • world.addSyncedBlockEvent(pos, this, 0, 0); world.emitGameEvent(entity, GameEvent.NOTE_BLOCK_PLAY, pos); // уведомляет эллаев, вардена и скалки-сенсоры }

Поскольку мод направлен исключительно на снижение раздражающих аспектов редстоуна, он просто отключает звуки нотных блоков при наличии любых блоков над ними, при этом сохраняя функциональность уведомлений для эллаев и скалков.

Проект распространяется по лицензии Unlicense.

Участники проекта
F53

F53

Разработчик

CassieNya

CassieNya

Разработчик

Создан: 11 апр 2022

ID: 21247