Jump to content

Mod Help. (1.7.10) Setting Tab Background, Adding Records, Item Persistence, etc


CausticLasagne

Recommended Posts

Hi guys, I'm making a mod called TheMoneyMod!, which adds currency to minecraft in Australian currency.. ish.

 

I need help on several items,

 

1. How do you add a background to a Creative Tab? I had it at one point but none of the items rendered on the page.

 

2. How do you add a Record? I can't get it to work and this ResourceLocation is confusing me.

 

3. How do you make an item stay in the crafting table?

 

4. How can you detect if an item is crafted as an ingredient, and then returned to the Inventory?, like buckets, for example.

 

I have limited forge experience, but I am learning. I'll understand most of what you post.

 

Thanks. Caustic Lasagne.

 

 

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

Current Creative Tab Src.

Am I doing it Right?

 

 

package com.CausticLasagnesMods.TheMoneyMod;

 

import cpw.mods.fml.client.*;

import cpw.mods.fml.client.registry.*;

import net.minecraftforge.transformers.*;

import net.minecraft.init.*;

... More

 

import java.util.Random;

 

public class TAB_CREATIVE

{

 

public Object instance;

 

private String backgroundImageName;

 

public static CreativeTabs tab = new CreativeTabs("The Money Mod!") {

                @SideOnly(Side.CLIENT)

                public Item getTabIconItem()

                {

                        return TheMoneyMod.ITM_NOTE_100cR;

                }

        };

 

public TAB_CREATIVE(int id, String name){}

 

public void load(){

}

 

public void registerRenderers(){}

public void generateNether(World world, Random random, int chunkX, int chunkZ){}

public void generateSurface(World world, Random random, int chunkX, int chunkZ){}

public int addFuel(ItemStack fuel){

return 0;

}

public void serverLoad(FMLServerStartingEvent event){}

public void preInit(FMLPreInitializationEvent event){}

 

public TAB_CREATIVE setBackgroundImageName(String backgroundImageName)

{

// TODO Auto-generated method stub

this.backgroundImageName = "";

    return this;

}

 

 

}

 

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

Sorry, I'm new to the modding scene and lack of tutorials and detail has forced me to create messy code.

I do understand java, just not minecraft modding.

 

1. Yes, I have tried this and it doesn't work. I call the function setBackgroundImageName, and minecraft completely ignores it.

Am I supposed to call that function when I add the tab to the registry? Because that's what I'm doing.

 

2. ResourceLocation. Where do I put the sounds?

 

public ResourceLocation getRecordResource(String name)
    {
        return new ResourceLocation(name);
        // 
    }

I know it needs to be an ogg file and under a certain size...

 

3. I want to change an item in the crafting grid as it is crafted, like when lavabuckets in furnaces return an empty bucket.

 

4. so these methods will allow me to detect if an item has been crafted with?

 

[glow=green,2,300]Thanks for helping.[/glow]

 

(Turns out that these special stuff don't work on Windows 10: Edge.)

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

This is the Entire code for my CreativeTabs file.

It seems weird, but it works. I just can't set an image in the background.

I've been trying for the the 3 days it took me to make the mod, from the ground up.

 

TAB_CREATIVE.java

package com.CausticLasagnesMods.TheMoneyMod;

import net.minecraftforge.event.world.*;
import net.minecraftforge.oredict.*;
import net.minecraftforge.transformers.*;
import net.minecraft.init.*;
...
// Imports removed to save space.

import java.util.Random;

public class TAB_CREATIVE 
{

public Object instance;

private String backgroundImageName;

public static CreativeTabs tab = new CreativeTabs("The Money Mod!") {
                @SideOnly(Side.CLIENT)
                public Item getTabIconItem()
                {
                        return TheMoneyMod.ITM_NOTE_100cR;
                }
        };

public TAB_CREATIVE(int id, String name){}

public void load(){
}

public void registerRenderers(){}
public void generateNether(World world, Random random, int chunkX, int chunkZ){}
public void generateSurface(World world, Random random, int chunkX, int chunkZ){}
public int addFuel(ItemStack fuel){
return 0;
}
public void serverLoad(FMLServerStartingEvent event){}
public void preInit(FMLPreInitializationEvent event){}

public TAB_CREATIVE setBackgroundImageName(String backgroundImageName) 
{
// TODO Auto-generated method stub
this.backgroundImageName = "";
    return this;
}


}

 

Setting the Tab for an Item, and declaring the tab in THEMONEYMOD.java

		
this.setCreativeTab(TheMoneyMod.TAB_CREATIVE.tab);
TAB_CREATIVE = new TAB_CREATIVE(CreativeTabs.getNextID(), "The_Money_Mod").setBackgroundImageName("tab_CreativeTab");

 

Does it look funny?

It works, but I can't set a background, no matter what I type in.

 

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

Ohhh, a Container Item. I thought you meant like a Container like a chest or furnace.

Yeah, I get it now. Stacked Items like a Russian doll.

 

ResourceLocation never was obvious because in the mojang code, they don't need to use domains.. I think.

so it should result

new ResourceLocation("TheMoneyMod", "Audio/Music/Sample.ogg")code]

ok cool. seems easy.

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

Yes, you are right. I have no idea what i'm doing.

 

How do you suggest I go about making a tab, based on the horrible code you've seen?

 

Also, i'm testing the record in my mod to see if it works.

According to what you've said, it will dig up a file in assets/themoneymod/audio/music/test.ogg

Here goes!

 

Ok. It works with the jukebox, only it doesn't play the audio.

It displays the record name and everything, but no audio.

This is what I got:

[03:38:24] [Client thread/WARN]: Unable to play unknown soundEvent: TheMoneyMod:audio/music/test.ogg

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

Ok. I'll explore the creativetabs class.

 

One more thing.

I tried to use the record with a jukebox, and it showed the rainbow text, but there was no audio. I even checked my audio settings.

It returned this:

[03:38:24] [Client thread/WARN]: Unable to play unknown soundEvent: TheMoneyMod:audio/music/test.ogg

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

ok

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

same error, only this time:

[04:12:14] [Client thread/WARN]: Unable to play unknown soundEvent: themoneymod:audio/test.ogg

My MODID is lowercase now:

return new ResourceLocation(TheMoneyMod.MODID, "audio/test.ogg");

Only the class names and item names are uppercase.

I'll have to recode the entire mod to fix it all.

Only this time, i'll know what i'm doing.

 

Do you have any idea what would cause this?

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

oooh. sounds shiny.

I'll take a look at it.

 

Thanks for your help.

I'll reply again if I have trouble.

 

for now, +1 to you.

or more like +7 to you.

 

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

Could not find the original file to base my new file from.

.minecraft\assets\objects does not exist.

 

It's getting late. I'm going to bed.

Let's continue this tomorrow.

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

The

ResourceLocation

returned from

ItemRecord#getRecordResource

is used as the name of a sound event, not a file. You need to create a sounds.json file in assets/themoneymod in this format. Your sound files need to go in assets/themoneymod/sounds.

 

If you name the sound event

records.<recordname>

(where

<recordname>

is the argument you passed to the

ItemRecord

constructor), you can just use the

name

argument of

getRecordResource

directly. I have an example implementation of a record here and a sounds.json file here.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Could not find the original file to base my new file from.

.minecraft\assets\objects does not exist.

 

It's getting late. I'm going to bed.

Let's continue this tomorrow.

 

If you've set up a ForgeGradle workspace, you'll have a copy of Minecraft's assets in ~/.gradle/caches/minecraft/assets (replace ~ with %USERPROFILE% on Windows).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Thanks everyone for your help.

 

If I need any more help, i'll be sure to know where to go.

 

Thanks.  ;)

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

It's not working.

 

[04:39:33] [Client thread/WARN]: Unable to play unknown soundEvent: themoneymod:record.rawk

 

sounds.json

{
  "record.rawk": 
  {
    "category": "record",
    "sounds": 
    [
      {
        "name": "audio/test.ogg",
        "stream": true
      }
    ]
  }
}

 

summontherawk.java

public ResourceLocation getRecordResource(String name)
    {
        return new ResourceLocation(TheMoneyMod.MODID, "record.rawk");
    }

 

Let's continue this tomorrow.

I'm really, really, really, really tired.

 

 

 

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

The file paths in sounds.json are relative to assets/<modid>/sounds, so your path is invalid unless your sound file is located at assets/themoneymod/sounds/audio/test.ogg.

 

There should be a warning from

SoundHandler

earlier in the log saying that the file doesn't exist and can't be added to the sound event.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Ok. I've moved some stuff around, and it still doesn't work.

I no longer get errors when using the jukebox.

 

sounds.json

{
"record.rawk": { "category": "record", "sounds":[{"name": "audio/test", "stream": true}] }
}

 

summontherawk.java

package com.CausticLasagnesMods.TheMoneyMod;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockJukebox;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemRecord;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;

public class SummontheRawk extends ItemRecord
{
    private static final Map field_150928_b = new HashMap();
    public final String recordName;
    private static final String __OBFID = "CL_00000057";
protected SummontheRawk(String recordName) 
{
	super(recordName);
        this.recordName = recordName;
	this.maxStackSize = 1;
	this.setCreativeTab(TheMoneyMod.TAB_CREATIVE.tab);
	field_150928_b.put("records." + recordName, this); //Forge Bug Fix: RenderGlobal adds a "records." when looking up below.
	//field_150928_b.put("records." + p_i45350_1_, this);
	// TODO Auto-generated constructor stub
}

    @SideOnly(Side.CLIENT)
    public IIcon getIconFromDamage(int icon_index)
    {
        return this.itemIcon;
    }
    
    public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
    {
        if (p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_) == Blocks.jukebox && p_77648_3_.getBlockMetadata(p_77648_4_, p_77648_5_, p_77648_6_) == 0)
        {
            if (p_77648_3_.isRemote)
            {
                return true;
            }
            else
            {
                ((BlockJukebox)Blocks.jukebox).func_149926_b(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_, p_77648_1_);
                p_77648_3_.playAuxSFXAtEntity((EntityPlayer)null, 1005, p_77648_4_, p_77648_5_, p_77648_6_, Item.getIdFromItem(this));
                --p_77648_1_.stackSize;
                return true;
            }
        }
        else
        {
            return false;
        }
    }
    
    @SideOnly(Side.CLIENT)
    public void addInformation(ItemStack item_in_use, EntityPlayer player, List itemstacklist, boolean p_77624_4_)
    {
        itemstacklist.add(this.getRecordNameLocal());
    }
    
    @SideOnly(Side.CLIENT)
    public String getRecordNameLocal()
    {
        return StatCollector.translateToLocal("item.record." + this.recordName + ".desc");
    }
    
    public EnumRarity getRarity(ItemStack item_in_use)
    {
        return EnumRarity.rare;
    }
    
    @SideOnly(Side.CLIENT)
    public static ItemRecord getRecord(String recordname)
    {
        return (ItemRecord)field_150928_b.get(recordname);
    }
    
    public ResourceLocation getRecordResource(String name)
    {
        return new ResourceLocation(TheMoneyMod.MODID, "record.rawk");
    }

}

 

I don't get it.

 

Is there a way I can output text to the development console, or a way to debug what's going on?

 

the file test.ogg is at \src\main\resources\assets\themoneymod\sounds\audio

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

90% of the code in

SummontheRawk

is pointless, there's no need to override a super method to do exactly the same thing. All you need to override is

getRecordResource

. When you do override a method, you should add the

@Override

annotation to it.

 

You can print text to the log/console using the standard

System.out

(for quick and dirty debugging) or

FMLLog

(for properly formatted output). You can also use a wrapper around

FMLLog

, like this.

 

You can also set breakpoints and launch Minecraft in debug mode.

 

Do you get any warnings from

SoundManager

earlier in the log?

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

I copied your sounds.json into my own, put an audio file at assets/testmod2/sounds/audio/test.ogg and created a new record class using

"record.rawk"

as the sound event and it worked without issue. You can see what I did here.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Ok. The sound works, but I had to reduce the audio quality to export it to ogg.

I'm using audacity.

Is there a Maximum length an audioclip can be?

or is there a way I can make it compressed or something?

 

Also, when I play the music, there is a pause of about 2 seconds.

Is this normal? I don't notice it with other mods. Are they doing something different?

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

I don't think Minecraft imposes a maximum length. The file will be compressed when its in the mod's JAR, I don't think you can compress it in any other way.

 

I'm not sure why there'd be a pause. Do you get a pause when playing the OGG in a normal audio player?

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

I don't think Minecraft imposes a maximum length. The file will be compressed when its in the mod's JAR, I don't think you can compress it in any other way.

 

I'm not sure why there'd be a pause. Do you get a pause when playing the OGG in a normal audio player?

 

You need to define the sound as stream, or it'll load the entire track into the memory when played.

http://minecraft.gamepedia.com/Sounds.json

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

No there isn't a delay, though in the game there is.

 

I have Stream set to true.

 

Also, what do you mean by defining the audio as stream?

I don't see any options in the code, unless you mean flagging it in the json.

 

I took a look at the examples provided, but they make no difference.

 

Any ideas?

▒█▀▀▀█ █░░█ █▀▀█ █▀▀ █▀▀█ ▒█░▒█ █░░ ▀▀█▀▀ █▀▀█ █▀▀█ ▒█▀▄▀█ █▀▀ █▀▀▀ █▀▀█ ░█▀▀█ █░░░█ █▀▀ █▀▀ █▀▀█ █▀▄▀█ █▀▀ █

░▀▀▀▄▄ █░░█ █░░█ █▀▀ █▄▄▀ ▒█░▒█ █░░ ░░█░░ █▄▄▀ █▄▄█ ▒█▒█▒█ █▀▀ █░▀█ █▄▄█ ▒█▄▄█ █▄█▄█ █▀▀ ▀▀█ █░░█ █░▀░█ █▀▀ ▀

▒█▄▄▄█ ░▀▀▀ █▀▀▀ ▀▀▀ ▀░▀▀ ░▀▄▄▀ ▀▀▀ ░░▀░░ ▀░▀▀ ▀░░▀ ▒█░░▒█ ▀▀▀ ▀▀▀▀ ▀░░▀ ▒█░▒█ ░▀░▀░ ▀▀▀ ▀▀▀ ▀▀▀▀ ▀░░░▀ ▀▀▀ ▄

Link to comment
Share on other sites

No there isn't a delay, though in the game there is.

 

I have Stream set to true.

 

Also, what do you mean by defining the audio as stream?

I don't see any options in the code, unless you mean flagging it in the json.

 

I took a look at the examples provided, but they make no difference.

 

Any ideas?

 

Yes, I meant flagging it in your .json

 

What do you mean by: "No there isn't a delay, though in the game there is."?

 

Also, can you show us your current sounds.json?

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.