我无法在游戏中实现自定义音乐光盘。带有实际项目的所有内容(纹理,模型,在自动点唱机中播放音乐等)都可以正常运行,但是在播放音乐时,无论您身在何处,都可以听到。我要这样做,以使我的音乐光盘像香草光盘一样具有有限的距离。

这是我对该项的注册(为方便起见,我仅删除了其中一张音乐光盘,就删除了所有其他项):

@SubscribeEvent
public static void registerItems(final RegistryEvent.Register<Item> event) {

    event.getRegistry().registerAll
    (
        //All other items
        ModItems.music_disc_song = new ModMusicDiscItem(15, new SoundEvent(location("song")), (new Item.Properties().group(MODGROUP).maxStackSize(1).rarity(Rarity.RARE))).setRegistryName(location("music_disc_song"))
    );
}


这是我在ModItems中对光盘的初始化:

//All other items
public static Item music_disc_song;


这是ModMusicDiscItem类:

public class ModMusicDiscItem extends MusicDiscItem {

    public ModMusicDiscItem(int id, SoundEvent sound, Item.Properties prop) {
        super(id, sound, prop);
    }
}


这是我的sounds.json:

{
    "song": {
        "sounds": [
            {
                "name": "censoredid:music_discs/song",
                "volume": 0.05,
                "stream": true
            }
        ]
    }
}


同样,播放音乐可以正常工作,但是音量不会随着距离的增加而减小。该代码适用于1.13.2(当然,将MusicDiscItem更改为ItemRecord),但在1.14.3或1.14.4中无效。谢谢你的帮助。

最佳答案

该文件需要以单声道记录,然后传输到.ogg。 Mono允许游戏仅基于透视图编辑声音,而立体声(您要处理的内容)则仅播放音频文件,即音频文件。

关于java - 在我的Minecraft 1.14.4 mod中,音乐光盘的距离没有变安静,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57277755/

10-15 23:39