Posted October 23, 20168 yr As only destroy crops? This code: int i = MathHelper.floor_double(this.posX); int j = MathHelper.floor_double(this.posY); int k = MathHelper.floor_double(this.posZ); for (int l = 0; l < 4; ++l) { i = MathHelper.floor_double(this.posX + (double)((float)(l % 2 * 2 - 1) * 0.25F)); j = MathHelper.floor_double(this.posY); k = MathHelper.floor_double(this.posZ + (double)((float)(l / 2 % 2 * 2 - 1) * 0.25F)); BlockPos blockpos = new BlockPos(i, j, k); Class block = BlockCrops.class; IBlockState iblockstate = this.worldObj.getBlockState(blockpos); if (iblockstate.getClass() == block); { this.worldObj.destroyBlock(blockpos, true); } } Destroys farmland and water.
October 23, 20168 yr Why do you check for the class??? just check for the Block instance Blocks.Crops itself...
October 23, 20168 yr Author int i = MathHelper.floor_double(this.posX); int j = MathHelper.floor_double(this.posY); int k = MathHelper.floor_double(this.posZ); for (int l = 0; l < 4; ++l) { i = MathHelper.floor_double(this.posX + (double)((float)(l % 2 * 2 - 1) * 0.25F)); j = MathHelper.floor_double(this.posY); k = MathHelper.floor_double(this.posZ + (double)((float)(l / 2 % 2 * 2 - 1) * 0.25F)); BlockPos blockpos = new BlockPos(i, j, k); IBlockState iblockstate = this.worldObj.getBlockState(blockpos); if (iblockstate.getBlock() == Blocks.CARROTS); { this.worldObj.destroyBlock(blockpos, true); } }
October 23, 20168 yr What are you doing with all of these Math.floor 's for? As far as I can see, that's the X, Y & Z coordinate, which for, when looking for blocks, integers will do just fine. Just use BlockPos#getAllInBox to get a list of BlockPos' that you can loop through. I have my own CropGrower (which also harvests them, resetting them to their youngest stage) here. Lines of interest are: #57, and #104->115 Also previously known as eAndPi. "Pi, is there a station coming up where we can board your train of thought?" -Kronnn Published Mods: Underworld Handy links: Vic_'s Forge events Own WIP Tutorials.
October 23, 20168 yr I use this code? No. As far as I can read from your posts, what my code does, and what you want, are different. Read it through. Learn what happens. Adapt what suits your needs. Create your own code. Also previously known as eAndPi. "Pi, is there a station coming up where we can board your train of thought?" -Kronnn Published Mods: Underworld Handy links: Vic_'s Forge events Own WIP Tutorials.
October 23, 20168 yr Author This code works perfectly. int i = MathHelper.floor_double(this.posX); int j = MathHelper.floor_double(this.posY); int k = MathHelper.floor_double(this.posZ); for (int l = 0; l < 4; ++l) { i = MathHelper.floor_double(this.posX + (double)((float)(l % 2 * 2 - 1) * 0.25F)); j = MathHelper.floor_double(this.posY); k = MathHelper.floor_double(this.posZ + (double)((float)(l / 2 % 2 * 2 - 1) * 0.25F)); BlockPos blockpos = new BlockPos(i, j, k); IBlockState iblockstate = this.worldObj.getBlockState(blockpos); Block block = worldObj.getBlockState(blockpos).getBlock(); if(block instanceof BlockCrops){ this.worldObj.destroyBlock(blockpos, true); } } Thanks.
October 23, 20168 yr We still dont know what your MathHelper.floor_double Method deos. nbody will understand this thread in the future
October 24, 20168 yr Blocks are organized in x y z . There's no need to round anything as all the coordinates for blocks are whole numbers. There's no need for rounding and flooring. Simply check the block the character is looking at and if is a crop remove it. Disclaimer: I been told to keep my opinions to myself, to shut up and that I am spreading lies and misinformation or even that my methods are unorthodox and or too irregular. Here are my suggestions take it or leave it.
October 24, 20168 yr We still dont know what your MathHelper.floor_double Method deos. nbody will understand this thread in the future It's a vanilla method that returns the greatest int less than or equal to the double argument. It's equivalent to calling Math.floor and casting the result to int . Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
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.