Trying to get my Custom Lightsaber weapon to play the lighsaber sound when you swing it at an entity. My sound code is below. I can get sound to work on a custom mob when you hit it but not the weapon. Thanks for any help.
Here is the code in my WeaponPurpleLightsaberItem class:
public void onUsingItemTick(ItemStack stack, EntityPlayer player, int count)
{
if (stack.itemID == LordRhysModMain.purpleLightsaber.itemID)
{
player.worldObj.playSoundAtEntity(player, "lordrhys_mod:lightsaber/lightsaber", 1.0F, 1.0F);
//player.addChatMessage("[ARMOR TICK] You're using a LightSaber!!! Yippee!");
}
}
the onUsingItemTick function is called because the commented out message will appear if I
uncomment it.
@Mod(modid = LordRhysModMain.modid, name = "LordRhys Mod", version = "1.0.0")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class LordRhysModMain
{
public static final String modid = "lordrhys_mod";
@Instance("lordrhys_mod")
public static LordRhysModMain instance;
@SidedProxy(clientSide = "lordrhys_mod.ClientProxy", serverSide = "lordrhys_mod.ServerProxy")
public static ServerProxy proxy;
.....
@EventHandler
public void load(FMLInitializationEvent event)
{
.....
//Settings for Weapons
purpleLightsaber = new WeaponPurpleLightsaberItem(5008,LightEnergy).setUnlocalizedName("purple_lightsaber");
goldenBow = new WeaponGoldenBowItem(5009).setUnlocalizedName("goldenBow").setTextureName("goldenBow");
Here is the code in my WeaponPurpleLightsaberItem class:
{
if (stack.itemID == LordRhysModMain.purpleLightsaber.itemID)
{
player.worldObj.playSoundAtEntity(player, "lordrhys_mod:lightsaber/lightsaber", 1.0F, 1.0F);
//player.addChatMessage("[ARMOR TICK] You're using a LightSaber!!! Yippee!");
}
}
the onUsingItemTick function is called because the commented out message will appear if I
uncomment it.
Here is my registerSound class:
import net.minecraftforge.client.event.sound.SoundLoadEvent;
import net.minecraftforge.event.ForgeSubscribe;
public class registerLightSounds
{
@ForgeSubscribe
public void onSound(SoundLoadEvent event)
{
event.manager.addSound("lordrhys_mod:lightsaber/lightsaber1.ogg");
event.manager.addSound("lordrhys_mod:lightsaber/lightsaber2.ogg");
event.manager.addSound("lordrhys_mod:lightsaber/lightsaber3.ogg");
event.manager.addSound("lordrhys_mod:lightsaber/lightsaber4.ogg");
}
}
The sounds are in the following folder:
src/minecraft/assets/lordrhys_mod/sound/lightsaber
Here is the code in my main class registering the event:
import lordrhys_mod.biome.*;
import lordrhys_mod.block.*;
import lordrhys_mod.crafting.*;
import lordrhys_mod.fluids.FluidLightFluid;
import lordrhys_mod.food.*;
import lordrhys_mod.gui.*;
import lordrhys_mod.item.*;
import lordrhys_mod.lib.ConfigHandler;
import lordrhys_mod.lib.Golden_Bonemeal_Event;
import lordrhys_mod.sound.registerLightSounds;
import lordrhys_mod.tabs.*;
import lordrhys_mod.tileentity.*;
import lordrhys_mod.weapon.*;
import lordrhys_mod.armor.*;
import net.minecraft.block.Block;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.material.MaterialLiquid;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.stats.Achievement;
import net.minecraft.stats.AchievementList;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.EnumHelper;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.Fluid;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = LordRhysModMain.modid, name = "LordRhys Mod", version = "1.0.0")
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class LordRhysModMain
{
public static final String modid = "lordrhys_mod";
@Instance("lordrhys_mod")
public static LordRhysModMain instance;
@SidedProxy(clientSide = "lordrhys_mod.ClientProxy", serverSide = "lordrhys_mod.ServerProxy")
public static ServerProxy proxy;
.....
@EventHandler
public void load(FMLInitializationEvent event)
{
.....
//Settings for Weapons
purpleLightsaber = new WeaponPurpleLightsaberItem(5008,LightEnergy).setUnlocalizedName("purple_lightsaber");
goldenBow = new WeaponGoldenBowItem(5009).setUnlocalizedName("goldenBow").setTextureName("goldenBow");
registerItem(purpleLightsaber, modid + (purpleLightsaber.getUnlocalizedName().substring(5)), "Purple Lightsaber");
registerItem(goldenBow, modid + (goldenBow.getUnlocalizedName().substring(5)), "Golden Bow");
//Events
MinecraftForge.EVENT_BUS.register(new Golden_Bonemeal_Event());
MinecraftForge.EVENT_BUS.register(new registerLightSounds());
proxy.registerRenderThings();
proxy.registerServerTickHandler();
}