Minecraft Modding
Учебник по созданию Minecraft модов
mode_editРедактировать

Звукиlink

Создадим файл sounds.json и папку sounds по пути:

└── src    
    └── main
        └── resources
            └── assets
                └── tut

У вас в папке tut должен быть создан файл sounds.json!

Отредактируем его!

{
    "test_sound": {
        "category": "player",
        "sounds": ["*modid*:myTestSound"]
    }
}

Продвинутый пример:

{
    "test_sound": {
        "category": "player",
        "sounds": [
            {
                "name": "*modid*:myTestSound",
                "stream": true
            },
            {
                "name": "*modid*:myTestSound2",
                "pitch": 0.2,
                "weight": 2.0
            }
        ]
    },
    "nextSound": {
        "sounds": ["*modid*:nextSound"]
    }
}

Создадим класс Sounds.

public class Sounds
{
    //Это наш звук, `test_sound` это название звука указанного в sounds.json
    public static final SoundEvent test = reg("test_sound")

    @SubscribeEvent
    public void regSound(RegistryEvent.Register<SoundEvent> e)
    {
        //Регистрация звука
        ForgeRegistries.SOUND_EVENTS.register(lvlUp)
    }

    //Упрощённая регистрация звука
    private SoundEvent reg(String name)
    {
        ResourceLocation rl = new ResourceLocation(*modid*, name)
        return new SoundEvent(rl).setRegistryName(rl)
    }
}

*modid* - это modid вашего мода

Чтобы проиграть наш звук, где либо добавим такой код:

/**
 *  blockPos - это позиция на которой будет проигрываться звук
 *  Sounds.test - это наш звук из ранее созданного класса Sounds
 *  SoundCategory.PLAYERS - категория звука
 *  1.0 - громкость
 *  1.0 - высота
 *  false - задержка
 */
world.playSound(blockPos, Sounds.test, SoundCategory.PLAYERS, 1.0F, 1.0F, false)

Затем зарегистрируем данный класс в MinecraftForge.EVENT_BUS и зайдём в игру!

Ivasik
Автор
mcmodding.ru v1.1.1