- Регистрация
- 4 Апр 2025
- Сообщения
- 24
- Реакции
- 0
- Баллы
- 1
- Город
- Санкт-Петербург
- Веб-сайт
- paxgame.ru
- Discord
- nicolayka
Если Вы хотите добавить музыкальный диск к своему моду, тогда этот урок для Вас!
Вам понадобится:
Если Вы не знаете, как зарегистрировать звук, то есть много обучающих программа для этого, я же предпочитаю Nealegamings, они просты и забавны.
При регистрации Вы должны дать ему имя "records.Kitten" или "records.HipHop"
Удостоверьтесь, что Вы уже имеете:
Для этого вставьте эту строку в предварительную инициализацию (Init)
Но не забудьте сменить название файла!
Так же Вы должны получить сообщение об ошибке MusicDisk, к этому мы вернёмся позже
Код:
GameRegistry.registerItem(record_Kitten, "record_Kitten");
Теперь возвращаемся к ошибке диска. Вы должны создать новый класс:
Это означает, что Вы должны будете описать структуру своего звука record_Kitten, или record_HipHop, в зависимости от того, как вы назвали Ваш звук.
Эта часть кода отвечает в основном за то, что бы диск проигрывался в музыкальном автомате
Вам понадобится:
- Main class (главный класс)
- sounds.json
- Ваш звук/песня, которую Вы хотите добавить в мод
- Текстура диска
- Как создать предмет
- Как заставить работать sound.json
- Как зарегистрировать звуки в sounds.json
Если Вы не знаете, как зарегистрировать звук, то есть много обучающих программа для этого, я же предпочитаю Nealegamings, они просты и забавны.
При регистрации Вы должны дать ему имя "records.Kitten" или "records.HipHop"
Удостоверьтесь, что Вы уже имеете:
public static record_Kitten;
Для этого вставьте эту строку в предварительную инициализацию (Init)
Java:
record_Kitten=new MusicDisc("Kitten").setUnlocalizedName("record_Kitten").setCreativeTab(CustomTab);
Но не забудьте сменить название файла!
Так же Вы должны получить сообщение об ошибке MusicDisk, к этому мы вернёмся позже
Код:
GameRegistry.registerItem(record_Kitten, "record_Kitten");
Теперь возвращаемся к ошибке диска. Вы должны создать новый класс:
Java:
public class MusicDisc extends ItemRecord
{
private static final Map records = new HashMap();
public final String recordName;
public MusicDisc(String recordName)
{
super(recordName);
this.recordName = recordName;
this.maxStackSize = 1;
records.put(recordName, this);
}
@Override
public void registerIcons(IIconRegister iconRegister)
{
itemIcon = iconRegister.registerIcon("dragonborn:" + "record_" + recordName);
}
@Override
public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int par7, float par8, float par9, float par10)
{
//TODO: world.getBlock()
if (world.getBlock(x, y, z) == Blocks.jukebox && world.getBlockMetadata(x, y, z) == 0)
{
if (world.isRemote)
return true;
else
{
//TODO: .insertRecord()
((BlockJukebox)Blocks.jukebox).func_149926_b(world, x, y, z, itemStack);
//TODO: Item.getIdFromItem()
world.playAuxSFXAtEntity((EntityPlayer)null, 1005, x, y, z, Item.getIdFromItem(this));
--itemStack.stackSize;
return true;
}
}
else
return false;
}
@Override
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
{
par3List.add(this.getRecordNameLocal());
}
@Override
//TODO: getRecordTitle()
public String getRecordNameLocal()
{
return StatCollector.translateToLocal(this.getUnlocalizedName() + ".desc");
}
@Override
public EnumRarity getRarity(ItemStack itemStack)
{
return EnumRarity.rare;
}
public static MusicDisc getRecord(String par0Str)
{
return (MusicDisc)records.get(par0Str);
}
@Override
public ResourceLocation getRecordResource(String name)
{
return new ResourceLocation("Dragonborn:" + name);
}
}
Это означает, что Вы должны будете описать структуру своего звука record_Kitten, или record_HipHop, в зависимости от того, как вы назвали Ваш звук.
Java:
@Override
public void registerIcons(IIconRegister iconRegister)
{
itemIcon = iconRegister.registerIcon("dragonborn:" + "record_" + recordName);
}
Java:
@Override
public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int par7, float par8, float par9, float par10)
{
//TODO: world.getBlock()
if (world.getBlock(x, y, z) == Blocks.jukebox && world.getBlockMetadata(x, y, z) == 0)
{
if (world.isRemote)
return true;
else
{
//TODO: .insertRecord()
((BlockJukebox)Blocks.jukebox).func_149926_b(world, x, y, z, itemStack);
//TODO: Item.getIdFromItem()
world.playAuxSFXAtEntity((EntityPlayer)null, 1005, x, y, z, Item.getIdFromItem(this));
--itemStack.stackSize;
return true;
}
}
else
return false;
}