Jump to content

Recommended Posts

Posted

Hello guys. So I have two questions.

 

1.How do I make my armor undamageable(is this a word  :P)?

2.How would I make lightning spawn on right click. I already know how to make lightning spawn. But I don't get how you know where a player right clicks even if its 5 blocks away.

I'm back from being gone for... I think its been about a year. I'm pretty sure nobody remembers me, but hello anybody who does!

Posted

1) I am not certain, but setting the maxdamage to negative value Should work, because the game checks if the current damage value is 0.

2) With a simple raytrace, you can find an example in Minecraft class using the player's arm length as max raytrace length.

Posted
  On 7/21/2014 at 9:15 PM, ShaneCraft said:

1) I am not certain, but setting the maxdamage to negative value Should work, because the game checks if the current damage value is 0.

2) With a simple raytrace, you can find an example in Minecraft class using the player's arm length as max raytrace length.

I will try putting the maxdamage to a negative value but can you please explain the raytrace?

 

Edit: I put the maxdamage to a negative value and it worked. Thanks.

I'm back from being gone for... I think its been about a year. I'm pretty sure nobody remembers me, but hello anybody who does!

Posted

I went and looked up raytrace and found out all about vectors and such. And after a lot of tinkering around I came up with this.

public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {

         MovingObjectPosition objectMouseOver;
         Minecraft mc = Minecraft.getMinecraft();

         objectMouseOver = mc.thePlayer.rayTrace(300, 1);

         if (objectMouseOver != null && objectMouseOver.typeOfHit == MovingObjectType.BLOCK) {

            int i = objectMouseOver.blockX;
            int j = objectMouseOver.blockY;
            int k = objectMouseOver.blockZ;
            world.spawnEntityInWorld(new EntityLightningBolt(world, i, j, k));
            if (!world.isRemote) {
            	Random rand=new Random();
            	int num=rand.nextInt(6);
            	if(num == 1){
            		if(world.getBlock(i+1, j+1, k)==Blocks.air){
            			world.setBlock(i+1, j+1, k, Blocks.fire);
	            	}
            		
            	}
            	if(num == 2){
            		if(world.getBlock(i, j+1, k+1)==Blocks.air){
            			world.setBlock(i, j+1, k+1, Blocks.fire);
	            	}
            		
            	}
            	if(world.getBlock(i, j+1, k)==Blocks.air){
            		world.setBlock(i, j+1, k, Blocks.fire);
            	}
               
               
            }
         }

    

      

      return itemStack;
   }

It worked pretty well. Thanks for pointing me in the right direction.

I'm back from being gone for... I think its been about a year. I'm pretty sure nobody remembers me, but hello anybody who does!

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

    • Well, as usual, it was user error. Naming mismatch in sounds.json.  Please delete this post if you find it necessary. 
    • Hello Forge community.  I'm running into an issue with a mod I'm working on.  To preface, I can call /playsound modId:name music @a and I can hear the sound I registered being played in game. Great!  However, I cannot get it to trigger via my mod code.    Registration: public static final RegistryObject<SoundEvent> A_WORLD_OF_MADNESS = SOUND_EVENTS.register("a_world_of_madness", () -> new SoundEvent(new ResourceLocation("tetheredsouls", "a_world_of_madness")));   Playback: Minecraft mc = Minecraft.getInstance(); if (!(mc.player instanceof LocalPlayer) || mc.level == null) return; LocalPlayer player = (LocalPlayer) mc.player; BlockPos pos = player.blockPosition(); SoundEvent track = ModSounds.A_WORLD_OF_MADNESS.get(); System.out.println(track); System.out.println(pos); System.out.println(player); // play exactly like the tutorial: client-only, at the player's position try { mc.level.playLocalSound( player.getX(), player.getY(), player.getZ(), track, SoundSource.MUSIC, // Or MASTER if needed 1f, 1f, false ); System.out.println("[DEBUG] playSound success: " + track.getLocation()); } catch (Exception e) { System.err.println("[ERROR] Failed to play sound: " + track.getLocation()); e.printStackTrace(); } Sounds.json:   { "theme_of_laura": { "category": "music", "sounds": [ { "name": "tetheredsouls:a_world_of_madness", "stream": true } ] } } Things I have tried: - multiple .ogg files. Short .ogg files (5 seconds, <100KB).  - default minecraft sounds imported from import net.minecraft.sounds.SoundEvents; These work given my code. No idea why these are different.  - playSound() method, as well as several others in past iterations that did not work   I would be forever grateful if somebody could point me in the right direction. I've looked at several mod github repositories and found extremely similar code to what I'm doing. I've also found several threads in this forum that did not solve my issue. I just cannot figure out what I'm doing differently, and why I'm able to queue sounds manually with playsound but the code won't play it (despite confirming the code is being run with the debug statements.)
    • Delete the tensura-reincarnated/common.toml file (config folder)
    • Jesus Christ is God's Son, Jesus died for our sins and rose from the dead to Give us eternal life. Ask Him to also heal your body.
  • Topics

  • Create New...

Important Information

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