Версия Minecraft
1.12.2
Некорректные теги
Пытаюсь добавить свою пластинку с музыкой, но все ресурсы только на 1.7.10, а мне требуется на 1.12.2.
 
Решение
Java:
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;

public class recordExample
{
    public static final SoundEvent title = reg("examplesound");

    private static SoundEvent reg(String name)
    {
        ResourceLocation rl = new ResourceLocation("exmple", "examplesound");
        return new SoundEvent(rl).setRegistryName(rl);
    }

}
JSON:
{
    "examplesound":
    {
        "category": "record",
        "subtitle": "examplesound",
        "sounds": [
        {
                "name": "exmple:title",
                "stream": true
        }
        ]
    }
}
создаешь пластинку
Java:
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemRecord;
import...

Endless

Любитель OpenGL
270
11
82
Java:
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;

public class recordExample
{
    public static final SoundEvent title = reg("examplesound");

    private static SoundEvent reg(String name)
    {
        ResourceLocation rl = new ResourceLocation("exmple", "examplesound");
        return new SoundEvent(rl).setRegistryName(rl);
    }

}
JSON:
{
    "examplesound":
    {
        "category": "record",
        "subtitle": "examplesound",
        "sounds": [
        {
                "name": "exmple:title",
                "stream": true
        }
        ]
    }
}
создаешь пластинку
Java:
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemRecord;
import net.minecraft.util.SoundEvent;

public class ExampleDisk extends ItemRecord
{


    private String recordName;

    protected ExampleDisk(String recordName,) {
        super(recordName, soundIn);
         this.setCreativeTab(CreativeTabs.MISC);
            this.recordName = recordName;
            this.maxStackSize = 1;
            this.setUnlocalizedName(recordName);
            this.setRegistryName(recordName);
    }

}
и регистрируешь предмет и текстуру в другом классе
ну и можно и локализовать пластинку
JSON:
record.*вместо этого пишешь,то как зарегал предмета*.name=ЛюбоеНазвание
item.record.*сюда тоже*.desc=Любое Название
 
Последнее редактирование:

Endless

Любитель OpenGL
270
11
82
Первый класс это SoundEvent он действует как ссылка на звук, поэтому SoundEvent его нужно где-то хранить. Если мод имеет API, он должен предоставлять свои SoundEvents в API. А SoundEvent soundIn это показывает что звук должен проигрываться здесь (то есть у предмета Диска). Крч как-то так :/ еще?
 
А ты пробовал искать гайды в ресурсах? Там есть пример добавления звука, лишь создай предмет как пластинку в ванили и укажи свой звук для неё.
Пробовал. Нашел ток на 1.7.10. У меня получалось сделать звук, который постоянно проигрывался, но не мог привязать к пластинке(код пластинки нашел в исходниках майна, но там не было комментов, что за что отвечает). Вроде, все объяснил...
 
148
2
6
Впиши ещё раз в m1, как бы 1552670833205.png
 

Endless

Любитель OpenGL
270
11
82
Да. Почему, когда я пытаюсь зарегать пластинку, Eclipse ругается на то, что я ничего не вписал в SoundEvent?
Ой извиняюсь, в классе пластинки убери
SoundEvent soundIn (если у тебя не свой АПИ со своим SoundEvent'oм, вообще мой косяк думал у тебя свое :D) и дальше регай
Java:
 public static void init() {
        ExampleDiscRegister();
    }
и опять дальше дописываешь
 
Ой извиняюсь, в классе пластинки убери
SoundEvent soundIn (если у тебя не свой АПИ со своим SoundEvent'oм, вообще мой косяк думал у тебя свое :D) и дальше регай
Java:
 public static void init() {
        ExampleDiscRegister();
    }
и опять дальше дописываешь
Пж, скинь просто классы пластинки, как зарегать и добавить музыку с комментами. Я уже не могу...
 
Сверху