Jump to content

[SOLVED] Making A Hammer to break a 3X3 Block. Breaking two layers at a time now.


MinecraftDW2020

Recommended Posts

I am trying to make a Hammer in 1.12.2.  I know, the regular, typical Hammer, once again in another mod. 
Overall I got the 3x3 Working, it breaks. Here is the code:

	public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand,
			EnumFacing facing, float hitX, float hitY, float hitZ) {

		if (player.isSneaking()) {
			
			AxisAlignedBB grid = (new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), (pos.getX() + 3),
					(pos.getY() + 3), (pos.getZ() + 3)));
			for (int x = (int) grid.minX; x < (int) grid.maxX; x++) {
				for (int y = (int) grid.minY; y < (int) grid.maxY; y++) {
					for (int z = (int) grid.minZ; z < (int) grid.maxZ; z++) {
						BlockPos newpos = new BlockPos(x, y, z);
						if (worldIn.getBlockState(newpos).getBlock() != Blocks.AIR) {
							worldIn.destroyBlock(newpos, true);
						}
					}
				}
			}

			return EnumActionResult.PASS;

		} else if (!player.isSneaking()) {
			worldIn.destroyBlock(pos, true);

			return EnumActionResult.PASS;
		}
		return EnumActionResult.FAIL;
	}


However I have been messing around with it and I did not get it to work in the sense that I wanted, which is starting from the middle and breaking top,down, left and right.
I did try the top and down method. pos.up() pos.down() etc but that did not work when I did the whole facing checks. So it would be different for when I looked east, or when I looked north. I did fix that, but when I looked up or down, it did not.
I guess it was because it checked player Horizontal Plane for Direction..

 

Anyway Results Below:

image.thumb.png.7480776600055b00a367e474f6702a94.png

 

image.thumb.png.250f67b33f60633537474c9e6d471bf1.png

 

Its starting from bottom left to top right.
I have been trying to get it into the middle block and it does it around

Edited by MinecraftDW2020
Solved The Problem
Link to comment
Share on other sites

If you want to break only 9 blocks (and not 27) you need to know either:

a) which direction the player is facing 

b) which side of the block the player was aiming at

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Just now, Draco18s said:

If you want to break only 9 blocks (and not 27) you need to know either:

 a) which direction the player is facing 

b) which side of the block the player was aiming at

No, I got the breaking part to work. Just not the actual placement.
 

 

23 minutes ago, MinecraftDW2020 said:

Its starting from bottom left to top right.
I have been trying to get it into the middle block and it does it around

 

Link to comment
Share on other sites

You mean, starting in the center?

Your problem is here:

 

AxisAlignedBB grid = (new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), (pos.getX() + 3),
					(pos.getY() + 3), (pos.getZ() + 3)));

 

You need to subtract 1 from the first three values and only add 1 to the last three. so the range is -1, 0, 1.

  • Like 1

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

32 minutes ago, Draco18s said:

You mean, starting in the center?

Your problem is here:

 


AxisAlignedBB grid = (new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), (pos.getX() + 3),
					(pos.getY() + 3), (pos.getZ() + 3)));

 

You need to subtract 1 from the first three values and only add 1 to the last three. so the range is -1, 0, 1.

Well Thanks, That worked, it got to the middle but now it breaks two layer at a time, and I think it is because of the for loop, for the past 30 minutes I have been trying to get it to not do that, I tried changing the greater than signs around, messing around with min and max even more, and just doing other experimenting to it.

Link to comment
Share on other sites

Well, you're breaking a 3x3x3 cube because of your offsets.

As I said, if I want a 3x3x1, you need to know either the facing of the player or the side that was hit so you can determine which of the three directions should be only 1 unit thick.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

1 hour ago, Draco18s said:

Well, you're breaking a 3x3x3 cube because of your offsets.

As I said, if I want a 3x3x1, you need to know either the facing of the player or the side that was hit so you can determine which of the three directions should be only 1 unit thick.

Yeah nevermind, I did that in my old method, got both confused, I decided to experiment with more on my old method instead and it felt much better. Not short but still remembered to do the facings.
Well now it is solved

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Okay I got on the discord server and followed there steps and got it to start working, however the log is constantly being filled with this error code. It is creating additional copies of the config file, up to 5 copies.
    • I would like to force the pose of a living entity to a standing position (i.e. Pose.STANDING) when it is riding a certain vehicle. I have tried to call Entity#setPose every tick via LivingTickEvent, but the living entity remains in a sitting position. Here is my code: // I made it a low-priority event because I was wondering if the code should be executed at the end of each tick. @SubscribeEvent(priority = EventPriority.LOWEST) public static void livingTickEvent(LivingEvent.LivingTickEvent event) { LivingEntity livingEntity = event.getEntity(); if (!livingEntity.level.isClientSide && livingEntity.getVehicle() instanceof TheVehicle) { livingEntity.setPose(Pose.STANDING); } }   By the way, I am aware there is a setForcedPose method, but it's only for the Player class.
    • I am trying to get a Private Vault Hunters 3rd edition up and running. The server launched fine before I pasted the Vault+Hunters+3rd+Edition-Update-10.0.1_Server-Files Contents into the file I made for the server info. Then after I pasted it I get the log information in the spoiler. I don't understand what I'm looking at. I'm using Forge 1.18.2, I also downloaded the most recent version of JDK.
    • Hey, my friends put together a custom modpack to use and asked me to set up a server to run it. Problem is, they didn't think to log which mods where client side only and which worked server side. Naturally, I only found this out when I actually attempted to run said server. There's quite a long list of them and, frankly, I have no idea which are causing the problem. I just run servers and install modpacks, not curate them. If anyone could help me identify the problem and what's causing the error, it would be greatly appreciated.   To make things a bit easier, I'm running the server in a docker container on a Ubuntu 20.04 server installation. Also, I'm using Java 17 and Forge ver 1.19.2 release 43.2.8 as that is the same version as the modpack, so everything should be working. Again, any help would be really appreciated. latest log: https://pastebin.com/f95NC0X7 All mods installed: https://pastebin.com/xy8d55kJ
    • I'm trying to install Forge for 1.12.2. The installer runs properly and says it installed forged succesfully, but when I go into the launcher there is no Forge profile and forge isn't in the version list when cresting a custom profile. In the versions folder in .minecraft the forge 1.12.2 folder is there, but it only has the .json file, it seems that the installer is not actually getting the .jar file. I tried with both the recommended and latest installers. I also tried downloading the universal .jar directly and pasting it into the versions folder but that didn't work either.   Installer log: JVM info: Oracle Corporation - 1.8.0_371 - 25.371-b11 java.net.preferIPv4Stack=true Found java version 1.8.0_371 Extracting json Considering minecraft client jar Downloading libraries Found 0 additional library directories Considering library net.minecraftforge:forge:1.12.2-14.23.5.2859   File exists: Checksum validated. Considering library org.ow2.asm:asm-debug-all:5.2   File exists: Checksum validated. Considering library net.minecraft:launchwrapper:1.12   File exists: Checksum validated. Considering library org.jline:jline:3.5.1   File exists: Checksum validated. Considering library com.typesafe.akka:akka-actor_2.11:2.3.3   File exists: Checksum validated. Considering library com.typesafe:config:1.2.1   File exists: Checksum validated. Considering library org.scala-lang:scala-actors-migration_2.11:1.1.0   File exists: Checksum validated. Considering library org.scala-lang:scala-compiler:2.11.1   File exists: Checksum validated. Considering library org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2_mc   File exists: Checksum validated. Considering library org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2_mc   File exists: Checksum validated. Considering library org.scala-lang:scala-library:2.11.1   File exists: Checksum validated. Considering library org.scala-lang:scala-parser-combinators_2.11:1.0.1   File exists: Checksum validated. Considering library org.scala-lang:scala-reflect:2.11.1   File exists: Checksum validated. Considering library org.scala-lang:scala-swing_2.11:1.0.1   File exists: Checksum validated. Considering library org.scala-lang:scala-xml_2.11:1.0.2   File exists: Checksum validated. Considering library lzma:lzma:0.0.1   File exists: Checksum validated. Considering library java3d:vecmath:1.5.2   File exists: Checksum validated. Considering library net.sf.trove4j:trove4j:3.0.3   File exists: Checksum validated. Considering library org.apache.maven:maven-artifact:3.5.3   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:5.0.3   File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-api:2.15.0   File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-core:2.15.0   File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-slf4j18-impl:2.15.0   File exists: Checksum validated. Building Processors Injecting profile Finished!
  • Topics

×
×
  • Create New...

Important Information

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