Звуки#
Создадим файл sounds.json
и папку sounds
по пути:
└── src
└── main
└── resources
└── assets
└── tut
tut
должен быть создан файл sounds.json
!
Отредактируем его!
{
"test_sound":
{
"category": "player",
"sounds":
[
{
"*modid*:myTestSound"
}
]
}
}
category
- указывает на то, какая категория будет у данного звука, т.е. если мы указали player
, то в игре, в настройках звука мы сможем отключить свой звук передвинув ползунок Игроки
. Категории звуков в игре:
- master
- общие звуки
- music
- музыка
- record
- пластинка
- weather
- погода
- block
- блоки
- hostile
- враждебные сущности
- neutral
- нейтральные или дружелюбные(как написано в игре)
- player
- игроки
- ambient
- окружение
- voice
- голос/речь
* sounds
- массив звуковых файлов, который будет поочерёдно проигрываться.
- name
- название звука без формата
- volume
- громкость. Чем выше значение, тем дальше будет слышимость
- pitch
- высота звука. Если 1.0, то звук будет нормально проигрываться, если же ниже, то звук будет иметь эффект замедления
- weight
- шанс воспроизведения звука
- stream
- имеет два положения true/false
, при true
проигрывается звук из файла. Это нужно, чтобы избежать проблем со звучанием звука в игре, т.е. если ваш звук более одной минуты, то рекомендуется выставить данный параметр на true
.
Продвинутый пример:
{
"test_sound": {
"category": "player",
"sounds": [
{
"name": "*modid*:myTestSound",
"stream": true
},
{
"name": "*modid*:myTestSound2",
"pitch": 0.2,
"weight": 2.0
}
]
},
"nextSound": {
"sounds": ["*modid*:nextSound"]
}
}
Создадим класс TutSounds
.
@Mod.EventBusSubscriber(modid= TestMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class TutSounds
{
//Это наш звук, `test_sound` это название звука указанного в sounds.json
public static SoundEvent TEST = reg("change_stage");
@SubscribeEvent
public static void resister(RegistryEvent.Register<SoundEvent> event)
{
event.getRegistry().register(CHANGE_STAGE);
}
private static SoundEvent reg(String name)
{
ResourceLocation rl = new ResourceLocation(TestMod.MOD_ID, name);
return new SoundEvent(rl).setRegistryName(rl);
}
}
/**
* x, y, z - это позиция на которой будет проигрываться звук
* Sounds.test - это наш звук из ранее созданного класса Sounds
* SoundCategory.PLAYERS - категория звука
* 1.0 - громкость
* 1.0 - высота
* false - задержка
*/
world.playSound(x, y, z, TutSounds.TEST, SoundCategory.PLAYERS, 1.0F, 1.0F, false)