Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

IDuckz_

Members
  • Joined

  • Last visited

Everything posted by IDuckz_

  1. Okay so the explanation was fantastic and I understood how that works. I did set everything up but is there any way that I could make it so it just makes a new cube with the texture inside the cauldron? Or is that not possible?
  2. Ooh thanks for the great explanation!
  3. Never mind I can't seem to be figure it out. Lol
  4. Eh after checking setWaterLevel code multiple times and trying to understand it, I think I understood how it works.
  5. I have but I don't really understand since it probably has something to do with levels of the block or whatever.
  6. Hey, so I am making a different cauldron type block and I am wondering how can I make it so whenever you right click the block with a water bucket, it will add the water inside the cauldron, so basically just changing the shape. Would be appreciated with ideas or answers.
  7. Incredibly sorry for late response, did not work while rotating it to the other way, I guess there is no possible way to do this, thanks for all the help anyways. Greatly appreciated ❤️
  8. Okay, I will try rotating it to the other way.
  9. I will try changing the block to use less VoxelShapes but for now I want to see how I could fix this issue. If I have already done what I asked for how come is it misaligned? Unless I misunderstood. Ok I will fix that. Thanks
  10. Um ok here: package com.iduckz.usefulemeralds.blocks; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.HorizontalBlock; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.item.BlockItemUseContext; import net.minecraft.state.DirectionProperty; import net.minecraft.state.StateContainer; import net.minecraft.util.Mirror; import net.minecraft.util.Rotation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.shapes.IBooleanFunction; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.world.IBlockReader; import net.minecraftforge.common.ToolType; import javax.annotation.Nullable; import java.util.stream.Stream; public class WitchCauldron extends Block { public WitchCauldron() { super(Block.Properties.create(Material.IRON) .hardnessAndResistance(2.5f, 3.5f) .sound(SoundType.METAL) .harvestLevel(2) .harvestTool(ToolType.PICKAXE) .setRequiresTool()); } private static final DirectionProperty FACING = HorizontalBlock.HORIZONTAL_FACING; public static final VoxelShape SHAPE_N = VoxelShapes.or( Block.makeCuboidShape(14, 6, -2, 15, 7, 7), Block.makeCuboidShape(1, 6, -2, 2, 7, 7), Block.makeCuboidShape(2, 2.6999999999999993D, -1.4600000000000009D, 14, 3.6999999999999993D, -0.46000000000000085D), Block.makeCuboidShape(9, 0, 9, 11, 2, 11), Block.makeCuboidShape(10, 0, 11, 11, 2, 12), Block.makeCuboidShape(11, 0, 10, 12, 2, 11), Block.makeCuboidShape(11, 0, 11, 13, 2, 13), Block.makeCuboidShape(12, 0, 13, 13, 2, 14), Block.makeCuboidShape(13, 0, 12, 14, 2, 13), Block.makeCuboidShape(13, 0, 13, 15, 2, 15), Block.makeCuboidShape(3, 0, 13, 4, 2, 14), Block.makeCuboidShape(1, 0, 13, 3, 2, 15), Block.makeCuboidShape(2, 0, 12, 3, 2, 13), Block.makeCuboidShape(3, 0, 11, 5, 2, 13), Block.makeCuboidShape(4, 0, 10, 5, 2, 11), Block.makeCuboidShape(5, 0, 11, 6, 2, 12), Block.makeCuboidShape(5, 0, 9, 7, 2, 11), Block.makeCuboidShape(3, 0, 2, 4, 2, 3), Block.makeCuboidShape(5, 0, 5, 7, 2, 7), Block.makeCuboidShape(3, 0, 3, 5, 2, 5), Block.makeCuboidShape(1, 0, 1, 3, 2, 3), Block.makeCuboidShape(4, 0, 5, 5, 2, 6), Block.makeCuboidShape(5, 0, 4, 6, 2, 5), Block.makeCuboidShape(2, 0, 3, 3, 2, 4), Block.makeCuboidShape(13, 0, 1, 15, 2, 3), Block.makeCuboidShape(9, 0, 5, 11, 2, 7), Block.makeCuboidShape(11, 0, 3, 13, 2, 5), Block.makeCuboidShape(10, 0, 4, 11, 2, 5), Block.makeCuboidShape(11, 0, 5, 12, 2, 6), Block.makeCuboidShape(12, 0, 2, 13, 2, 3), Block.makeCuboidShape(13, 0, 3, 14, 2, 4), Block.makeCuboidShape(7, 0, 9, 9, 2, 16), Block.makeCuboidShape(0, 0, 7, 16, 2, 9), Block.makeCuboidShape(7, 0, 0, 9, 2, 7), Block.makeCuboidShape(2, 2, 2, 14, 3, 14), Block.makeCuboidShape(3, 3, 2, 13, 13, 3), Block.makeCuboidShape(3, 3, 13, 13, 13, 14), Block.makeCuboidShape(13, 3, 2, 14, 13, 14), Block.makeCuboidShape(2, 3, 2, 3, 13, 14) ); public static final VoxelShape SHAPE_E = VoxelShapes.or( Block.makeCuboidShape(9, 6, 14, 18, 7, 15), Block.makeCuboidShape(9, 6, 1, 18, 7, 2), Block.makeCuboidShape(16.46f, 2.7f, 2, 17.46f, 3.7f, 14), Block.makeCuboidShape(5, 0, 9, 7, 2, 11), Block.makeCuboidShape(4, 0, 10, 5, 2, 11), Block.makeCuboidShape(5, 0, 11, 6, 2, 12), Block.makeCuboidShape(3, 0, 11, 5, 2, 13), Block.makeCuboidShape(2, 0, 12, 3, 2, 13), Block.makeCuboidShape(3, 0, 13, 4, 2, 14), Block.makeCuboidShape(1, 0, 13, 3, 2, 15), Block.makeCuboidShape(2, 0, 3, 3, 2, 4), Block.makeCuboidShape(1, 0, 1, 3, 2, 3), Block.makeCuboidShape(3, 0, 2, 4, 2, 3), Block.makeCuboidShape(3, 0, 3, 5, 2, 5), Block.makeCuboidShape(5, 0, 4, 6, 2, 5), Block.makeCuboidShape(4, 0, 5, 5, 2, 6), Block.makeCuboidShape(5, 0, 5, 7, 2, 7), Block.makeCuboidShape(13, 0, 3, 14, 2, 4), Block.makeCuboidShape(9, 0, 5, 11, 2, 7), Block.makeCuboidShape(11, 0, 3, 13, 2, 5), Block.makeCuboidShape(13, 0, 1, 15, 2, 3), Block.makeCuboidShape(10, 0, 4, 11, 2, 5), Block.makeCuboidShape(11, 0, 5, 12, 2, 6), Block.makeCuboidShape(12, 0, 2, 13, 2, 3), Block.makeCuboidShape(13, 0, 13, 15, 2, 15), Block.makeCuboidShape(9, 0, 9, 11, 2, 11), Block.makeCuboidShape(11, 0, 11, 13, 2, 13), Block.makeCuboidShape(11, 0, 10, 12, 2, 11), Block.makeCuboidShape(10, 0, 11, 11, 2, 12), Block.makeCuboidShape(13, 0, 12, 14, 2, 13), Block.makeCuboidShape(12, 0, 13, 13, 2, 14), Block.makeCuboidShape(0, 0, 7, 7, 2, 9), Block.makeCuboidShape(7, 0, 0, 9, 2, 16), Block.makeCuboidShape(9, 0, 7, 16, 2, 9), Block.makeCuboidShape(2, 2, 2, 14, 3, 14), Block.makeCuboidShape(13, 3, 3, 14, 13, 13), Block.makeCuboidShape(2, 3, 3, 3, 13, 13), Block.makeCuboidShape(2, 3, 13, 14, 13, 14), Block.makeCuboidShape(2, 3, 2, 14, 13, 3) ); public static final VoxelShape SHAPE_S = VoxelShapes.or( Block.makeCuboidShape(1, 6, 9, 2, 7, 18), Block.makeCuboidShape(14, 6, 9, 15, 7, 18), Block.makeCuboidShape(2, 2.6999999999999993D, 16.46f, 14, 3.6999999999999993D, 17.46f), Block.makeCuboidShape(5, 0, 5, 7, 2, 7), Block.makeCuboidShape(5, 0, 4, 6, 2, 5), Block.makeCuboidShape(4, 0, 5, 5, 2, 6), Block.makeCuboidShape(3, 0, 3, 5, 2, 5), Block.makeCuboidShape(3, 0, 2, 4, 2, 3), Block.makeCuboidShape(2, 0, 3, 3, 2, 4), Block.makeCuboidShape(1, 0, 1, 3, 2, 3), Block.makeCuboidShape(12, 0, 2, 13, 2, 3), Block.makeCuboidShape(13, 0, 1, 15, 2, 3), Block.makeCuboidShape(13, 0, 3, 14, 2, 4), Block.makeCuboidShape(11, 0, 3, 13, 2, 5), Block.makeCuboidShape(11, 0, 5, 12, 2, 6), Block.makeCuboidShape(10, 0, 4, 11, 2, 5), Block.makeCuboidShape(9, 0, 5, 11, 2, 7), Block.makeCuboidShape(12, 0, 13, 13, 2, 14), Block.makeCuboidShape(9, 0, 9, 11, 2, 11), Block.makeCuboidShape(11, 0, 11, 13, 2, 13), Block.makeCuboidShape(13, 0, 13, 15, 2, 15), Block.makeCuboidShape(11, 0, 10, 12, 2, 11), Block.makeCuboidShape(10, 0, 11, 11, 2, 12), Block.makeCuboidShape(13, 0, 12, 14, 2, 13), Block.makeCuboidShape(1, 0, 13, 3, 2, 15), Block.makeCuboidShape(5, 0, 9, 7, 2, 11), Block.makeCuboidShape(3, 0, 11, 5, 2, 13), Block.makeCuboidShape(5, 0, 11, 6, 2, 12), Block.makeCuboidShape(4, 0, 10, 5, 2, 11), Block.makeCuboidShape(3, 0, 13, 4, 2, 14), Block.makeCuboidShape(2, 0, 12, 3, 2, 13), Block.makeCuboidShape(7, 0, 0, 9, 2, 7), Block.makeCuboidShape(0, 0, 7, 16, 2, 9), Block.makeCuboidShape(7, 0, 9, 9, 2, 16), Block.makeCuboidShape(2, 2, 2, 14, 3, 14), Block.makeCuboidShape(3, 3, 13, 13, 13, 14), Block.makeCuboidShape(3, 3, 2, 13, 13, 3), Block.makeCuboidShape(2, 3, 2, 3, 13, 14), Block.makeCuboidShape(13, 3, 2, 14, 13, 14) ); public static final VoxelShape SHAPE_W = VoxelShapes.or( Block.makeCuboidShape(-2, 6, 1, 7, 7, 2), Block.makeCuboidShape(-2, 6, 14, 7, 7, 15), Block.makeCuboidShape(-1.4600000000000009D, 2.6999999999999993D, 2, -0.46000000000000085D, 3.6999999999999993D, 14), Block.makeCuboidShape(9, 0, 5, 11, 2, 7), Block.makeCuboidShape(11, 0, 5, 12, 2, 6), Block.makeCuboidShape(10, 0, 4, 11, 2, 5), Block.makeCuboidShape(11, 0, 3, 13, 2, 5), Block.makeCuboidShape(13, 0, 3, 14, 2, 4), Block.makeCuboidShape(12, 0, 2, 13, 2, 3), Block.makeCuboidShape(13, 0, 1, 15, 2, 3), Block.makeCuboidShape(13, 0, 12, 14, 2, 13), Block.makeCuboidShape(13, 0, 13, 15, 2, 15), Block.makeCuboidShape(12, 0, 13, 13, 2, 14), Block.makeCuboidShape(11, 0, 11, 13, 2, 13), Block.makeCuboidShape(10, 0, 11, 11, 2, 12), Block.makeCuboidShape(11, 0, 10, 12, 2, 11), Block.makeCuboidShape(9, 0, 9, 11, 2, 11), Block.makeCuboidShape(2, 0, 12, 3, 2, 13), Block.makeCuboidShape(5, 0, 9, 7, 2, 11), Block.makeCuboidShape(3, 0, 11, 5, 2, 13), Block.makeCuboidShape(1, 0, 13, 3, 2, 15), Block.makeCuboidShape(5, 0, 11, 6, 2, 12), Block.makeCuboidShape(4, 0, 10, 5, 2, 11), Block.makeCuboidShape(3, 0, 13, 4, 2, 14), Block.makeCuboidShape(1, 0, 1, 3, 2, 3), Block.makeCuboidShape(5, 0, 5, 7, 2, 7), Block.makeCuboidShape(3, 0, 3, 5, 2, 5), Block.makeCuboidShape(4, 0, 5, 5, 2, 6), Block.makeCuboidShape(5, 0, 4, 6, 2, 5), Block.makeCuboidShape(2, 0, 3, 3, 2, 4), Block.makeCuboidShape(3, 0, 2, 4, 2, 3), Block.makeCuboidShape(9, 0, 7, 16, 2, 9), Block.makeCuboidShape(7, 0, 0, 9, 2, 16), Block.makeCuboidShape(0, 0, 7, 7, 2, 9), Block.makeCuboidShape(2, 2, 2, 14, 3, 14), Block.makeCuboidShape(2, 3, 3, 3, 13, 13), Block.makeCuboidShape(13, 3, 3, 14, 13, 13), Block.makeCuboidShape(2, 3, 2, 14, 13, 3), Block.makeCuboidShape(2, 3, 13, 14, 13, 14) ); @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext context) { return this.getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite()); } @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { switch(state.get(FACING)) { case NORTH: return SHAPE_N; case SOUTH: return SHAPE_S; case WEST: return SHAPE_W; default: return SHAPE_E; } } @Override public BlockState rotate(BlockState state, Rotation rot) { return state.with(FACING, rot.rotate(state.get(FACING))); } @Override public BlockState mirror(BlockState state, Mirror mirrorIn) { return state.rotate(mirrorIn.toRotation(state.get(FACING))); } @Override protected void fillStateContainer(StateContainer.Builder<Block, BlockState> builder) { builder.add(FACING); } @Override public float getAmbientOcclusionLightValue(BlockState state, IBlockReader worldIn, BlockPos pos) { return 0.3f; } }
  11. It seems I have alraedy done that: https://gyazo.com/6062f42293576f15cbf56e95d2656574
  12. Okay, I will try using less voxelshapes in the future and I did remove the stream#of and replaced it with VoxelShapes#or I also removed the return and reduce type at the end so the code wasn't necessary provided by BlockBench when I exported it as VoxelShapes, and it is maybe irrelevant but if I want make more custom blocks in the future it might include diagonal shapes too. Also, one question, how would I create a voxelshape for every possible rotation and change it via it's block state? Also thanks for all the help by the way, greatly appreciated.
  13. Hello, I setup a custom model like this: https://gyazo.com/51fabdfc1ebaee01e766dc20aea486c2 but in game it doesn't show it correctly. It shows the block bound or voxelshape like this: https://gyazo.com/594430fbe27b6941a81afa85319f73b7 The problem is that it has diagonal shape and it doesn't seem to like diagonal shapes and it decides to break. My voxelshape code (It's a lot of code that I can't show it all since it's too big but I think you get the idea): https://gyazo.com/6e7d09f1b467f404b6fa73b5326eb62c If anyone could help, that would be greatly appreciated. Thank you

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.