Создал оружие(ну типо), при выстреле должен проигрываться звук, но он что-то не хочет.
Само оружие
SoundHandler
звук кидаю в assets/testmod/sound
Само оружие
Код:
package mods.warz.mod.items;
import mods.warz.mod.ModInfo;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class Gun extends Item
{
private int fireSpeed;
public Gun(int id)
{
super(id);
this.setMaxDamage(400);
this.setCreativeTab(CreativeTabs.tabCombat);
this.setFull3D();
}
public void registerIcons(IconRegister tex)
{
this.itemIcon = tex.registerIcon(ModInfo.MODID + ":PM");
}
public void onUpdate(ItemStack is, World world, Entity entity, int i, boolean b)
{
this.fireSpeed++;
}
public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player)
{
this.fireSpeed++;
if(this.fireSpeed >= 32) // 32 - задержка между выстрелами в (тиках вроде)
{
int itemAmmoID = Item.redstone.itemID;
if(player.inventory.hasItem(itemAmmoID) || player.capabilities.isCreativeMode)
{
if(!world.isRemote)
{
this.fireSpeed = 0;
world.spawnEntityInWorld(new EntityBlasterBullet(world, player));
}
player.rotationPitch -= 1.0F; // Отдача - пробуй эксперементировть в debug-mode
world.playSoundAtEntity(player, "testmod:g18shoot", 1.5F, 1.0F);
if(!player.capabilities.isCreativeMode) player.inventory.consumeInventoryItem(itemAmmoID);
}
else
{
world.playSoundAtEntity(player, "random.click", 0.5F, 1.1F); // Звук, когда нету патрон (редстоуна) - см альтернативу выше
}
}
return is;
}
}
Код:
package mods.warz.mod;
import net.minecraftforge.client.event.sound.SoundLoadEvent;
import net.minecraftforge.event.ForgeSubscribe;
public class SoundHandler
{
@ForgeSubscribe
public void onSoundLoad(SoundLoadEvent event) {
event.manager.addSound("testmod:g18shoot.wav");
}
}