Jump to content

How to assign blocks sounds


Thecheatgamer1

Recommended Posts

Well i have been trying to find out how to assign my blocks and items sounds and music when placed or used (something like the IC2 machines)

I have searched through out the codes of minecraftforge sound things and i cant seem to understand how i do it, i have set up my sound loader!

 

SoundHandler.class

 

 

package com.iic.SenSenTechnologies.client.audio;

 

import com.iic.SenSenTechnologies.lib.Sounds;

 

import net.minecraft.launchwrapper.LogWrapper;

import net.minecraftforge.client.event.sound.SoundLoadEvent;

import net.minecraftforge.event.ForgeSubscribe;

 

public class SoundHandler {

 

    @ForgeSubscribe

    public void onSoundLoad(SoundLoadEvent event) {

 

        // For each custom sound file we have defined in Sounds

        for (String soundFile : Sounds.soundFiles) {

            // Try to add the custom sound file to the pool of sounds

            try {

                event.manager.addSound(soundFile);

            }

            // If we cannot add the custom sound file to the pool, log the exception

            catch (Exception e) {

                LogWrapper.warning("Failed loading sound file: " + soundFile);

            }

        }

    }

}

 

 

Sounds.class

 

 

package com.iic.SenSenTechnologies.lib;

 

public class Sounds {

 

    private static final String SOUND_RESOURCE_LOCATION = Reference.MOD_ID.toLowerCase() + ":";

    private static final String SOUND_PREFIX = Reference.MOD_ID.toLowerCase() + ":";

 

    public static String[] soundFiles = { SOUND_RESOURCE_LOCATION + "cubecore.ogg" };

   

    public static final String CUBECORE = SOUND_PREFIX + "cubecore";

}

 

 

I cant seem to figure out how to connect the loading sound with any block or item or even entity for that matter!

 

I have got my sounds in correct conditions and i just need the code so my mod knows what sound plays were and when really

 

Please help!

Link to comment
Share on other sites

hey why not instead use this code just replace medieval with modid and fireshot1, 2, 3 with your sounds

package medieval.medievalsounds;

import net.minecraftforge.client.event.sound.SoundLoadEvent;
import net.minecraftforge.event.ForgeSubscribe;

public class Fireshot_Sound 

{

	@ForgeSubscribe
    public void onSound(SoundLoadEvent event)
    {
        try 
        {
        	event.manager.addSound("medieval:fireshot1.wav");
        	event.manager.addSound("medieval:fireshot2.wav");
        	event.manager.addSound("medieval:fireshot3.wav");
        }
        
        catch (Exception e)
        {
            System.err.println("Fire sounds error");
        }

    }
}

 

and after register the sound in your clientproxy like this where Fireshot_Sound is your class sound name

MinecraftForge.EVENT_BUS.register(new Fireshot_Sound());

 

for example if im using my code and in my block the step sound would be just "fireshot" and will automatically choose one of the 3 sounds fireshot1,2,3 so when you have a sound add a number on the file

I like helping people because i was also in a same problem and i do not like unfinished work, so a thank you will be enough for the people im helping and a thank you to the people that helped me :)

Link to comment
Share on other sites

o wait my bad its supossed to be different this is only for registered in the block class sorry :/ check out block.class

I like helping people because i was also in a same problem and i do not like unfinished work, so a thank you will be enough for the people im helping and a thank you to the people that helped me :)

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
    • It is an issue with quark - update it to this build: https://www.curseforge.com/minecraft/mc-mods/quark/files/3642325
    • Remove Instant Massive Structures Mod from your server     Add new crash-reports with sites like https://paste.ee/  
    • Update your drivers: https://www.amd.com/en/support/graphics/amd-radeon-r9-series/amd-radeon-r9-200-series/amd-radeon-r9-280x
  • Topics

×
×
  • Create New...

Important Information

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