Posted July 23, 201312 yr Hello, sadly the old newRecord = new ItemRecord(id, "sound file", false).setUnlocalizedName("record") does not work anymore. Is there a new way to make custom discs? burnner
July 26, 201312 yr Author I got my dics back, but there is no sound and I cant figure out where to put the records file. assets/modid/records/ is not really working
July 29, 201312 yr GOT IT =D Here's how: Extend ItemRecord like... public class ItemModDisc extends ItemRecord { public ItemModDisc(int id, String recordName) { super(id, recordName); this.setCreativeTab(CreativeTabs.tabMisc); this.maxStackSize = 1; } // Rest of your ItemRecord code... } Then to your main class, add your constructor with one change: modDisc = (new ItemModDisc(modDiscID, "your_modname_lowercased:moddisc")).setUnlocalizedName("moddisc"); Put your ogg to the assets/your_modname_lowercased/records and keep the name same as above (so my custom record is moddisc.ogg and path is then assets/my_mods_name/records/moddisc.ogg And load it the the soundPoolStreaming (in your sound load event handler) for example like this: event.manager.soundPoolStreaming.addSound("your_modname_lowercased:moddisc.ogg"); Note that you don't use folder records in handler because soundPoolStreaming is looking always from /assets/your_modname_lowercased/records like soundPoolSounds is looking from /assets/your_modname_lowercased/sounds And there it is, your custom record which works just fine =) edit: Little clean up for code because I copy pasted it without removing unneeded lines...
August 1, 201312 yr GOT IT =D Here's how: Extend ItemRecord like... public class ItemModDisc extends ItemRecord { public final String recordName; public ItemModDisc(int id, String recordName) { super(id, recordName); this.setCreativeTab(CreativeTabs.tabMisc); this.maxStackSize = 1; this.recordName = "moddisc"; } Then to your main class, add your constructor with one change: modDisc = (new ItemModDisc(modDiscID, "your_modname_lowercased:moddisc")).setUnlocalizedName("moddisc"); Put your ogg to the assets/your_modname_lowercased/records and keep the name same as above (so my custom record is moddisc.ogg and path is then assets/my_mods_name/records/moddisc.ogg And load it the the soundPoolStreaming (in your sound load event handler) for example like this: event.manager.soundPoolStreaming.addSound("your_modname_lowercased:moddisc.ogg"); Note that you don't use folder records in handler because soundPoolStreaming is looking always from /assets/your_modname_lowercased/records like soundPoolSounds is looking from /assets/your_modname_lowercased/sounds And there it is, your custom record which works just fine =) The jukebox accepts the disc, but this text is showing up (Now Playing: C418 - blablabla) and the sound doesn't play. I put the soundfile into /assets/myModid/records/. http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
August 2, 201312 yr You may want to change this: @SideOnly(Side.CLIENT) /** * Return the title for this record. */ public String getRecordTitle() { return "C418 - " + this.recordName; } To whatever it is you want. In your constructor, this is useless: this.recordName = "moddisc"; because it is already done by the call to super(id, recordName); You can also remove: public final String recordName; this field already exists in the parent class.
August 2, 201312 yr You may want to change this: @SideOnly(Side.CLIENT) /** * Return the title for this record. */ public String getRecordTitle() { return "C418 - " + this.recordName; } To whatever it is you want. In your constructor, this is useless: this.recordName = "moddisc"; because it is already done by the call to super(id, recordName); You can also remove: public final String recordName; this field already exists in the parent class. Thank you! The name is fixed now. But what about the sound not playing? I put the file into the right directory http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
August 2, 201312 yr It is lower cased. http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
August 2, 201312 yr Ok then.. double check your directory structure because you won't get any error message to the console if Minecraft doesn't find your music file. Oh and another thing, I haven't tested any other formats than .ogg so I'm not sure about other formats.. Edit: Hey...can I see your soundloader because the problem could be there?
August 2, 201312 yr Registering of the SoundLoader in PreInit: MinecraftForge.EVENT_BUS.register(new SoundHandler()); SoundHandler.java: package MoreDimensions.handler; import net.minecraft.client.audio.SoundManager; import net.minecraftforge.client.event.sound.SoundLoadEvent; import net.minecraftforge.event.ForgeSubscribe; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import MoreDimensions.MoreDimensions; public class SoundLoader { @SideOnly(Side.CLIENT) @ForgeSubscribe public void onSoundsLoaded(SoundLoadEvent event) { SoundManager manager = event.manager; manager.soundPoolSounds.addSound(MoreDimensions.modid + ":KsTBeats - Explosive.ogg"); manager.soundPoolSounds.addSound(MoreDimensions.modid + ":KsTBeats - Frequenz.ogg"); manager.soundPoolSounds.addSound(MoreDimensions.modid + ":KsTBeats - Recent.ogg"); manager.soundPoolSounds.addSound(MoreDimensions.modid + ":KsTBeats - Rising Again.ogg"); manager.soundPoolSounds.addSound(MoreDimensions.modid + ":KsTBeats - Watching.ogg"); } } My modid is moredimensions and my folder structure is \assets\moredimensions\records\KsTBeats - Explosive.ogg and the other ones. EDIT: I tried mp3 and it didn't work either. http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
August 2, 201312 yr Couple things that could effect.. MinecraftForge.EVENT_BUS.register(new SoundHandler()); so Class name (compilation unit) should be also SoundHandler (see your SoundHandler.java, line: public class SoundLoader ) Music discs should be loaded to soundPoolStreaming, not to the soundPoolSounds. You see, soundPoolSounds gets sounds from the directory /assets/modid/sounds/file.ogg and soundPoolStreaming from /assets/modid/records/file.ogg Also, I wouldn't recommend to use spaces in filenames..
August 2, 201312 yr I renamed SoundHandler to SoundLoader while I made this post so a couple things are messed up, but everything is called SoundLoader. I changed everything to soundPoolStraming and to explosive instead of KsTBeats - Explosvie as well as the file name, and it still doesn't work. This is my init part btw: explosiveDisc = new Explosive(explosiveDiscID, modid + ":explosive").setUnlocalizedName("explosiveDisc").setCreativeTab(moreDimensionsSound); http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
August 2, 201312 yr Did you also remember to change manager.soundPoolSounds.addSound(MoreDimensions.modid + ":KsTBeats - Explosive.ogg"); to manager.soundPoolStreaming.addSound(MoreDimensions.modid + ":KsTBeats - Explosive.ogg"); (or manager.soundPoolStreaming.addSound(MoreDimensions.modid + ":explosive.ogg"); if you changed everything to lowercased) ..?
August 2, 201312 yr Yes I did so. http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
August 2, 201312 yr I'm running out of ideas...the only thing you haven't change is the way you use your sound loader. So try remove line SoundManager manager = event.manager because you don't need it. Just use: @ForgeSubscribe public void onSoundsLoaded(SoundLoadEvent event) { event.manager.soundPoolStreaming.addSound(MoreDimensions.modid + ":explosive.ogg"); //and so on... } ...to load your music disc. edit: And by the way...I'm registering my items in load, and sounds in preinit...just to let you know..
August 2, 201312 yr Still doesn't work http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
August 2, 201312 yr mm....can you show me your extended ItemRecord? package MoreDimensions.music; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemRecord; import net.minecraft.item.ItemStack; import MoreDimensions.MoreDimensions; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class Explosive extends ItemRecord { public Explosive(int id, String recordName) { super(id, recordName); this.maxStackSize = 1; } @SideOnly(Side.CLIENT) public String getRecordTitle() { return "KsTBeats - Explosive"; } @SideOnly(Side.CLIENT) public EnumRarity getRarity(ItemStack par1ItemStack) { return EnumRarity.rare; } @SideOnly(Side.CLIENT) public void registerIcons(IconRegister reg) { this.itemIcon = reg.registerIcon(MoreDimensions.modid + ":record_explosive"); } } http://i.imgur.com/kPfhwnJ.png[/img] ↑↑↑↑↑↑↑↑↑↑ Click it please? :3 ↑↑↑↑↑↑↑↑↑↑
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.