Jump to content

SubortusDevMC

Members
  • Posts

    6
  • Joined

  • Last visited

Everything posted by SubortusDevMC

  1. Found the solution, will be closing this soon. The Minecraft mining overlay can be rendered using: "serverplayer.connection.send(new ClientboundBlockDestructionPacket(serverplayer.getId(), blockpos, i));" Everything else is completely unnecessary, and I was making this harder than it had to be.
  2. Bump? Do I have to add more content or can I just say this? Any help would be really appreciated.
  3. I couldn't find much usage, I found this and attempted to implement it. It doesn't seem to do anything though. I have this linked to a server to client packet... I have been at this since September seventh and have not made any progress. Blockpos and Blockstate are all pre-assigned variables, as is pLevel. I took the vertex consumer directly from LevelRenderer where I got this code from anyways. I didn't know what number to put into the ModelBakery.DESTROY_TYPES.get() so I just put the breakTime I used in the above code. Am I missing something?
  4. I figured as much, I had originally left it out because I didn't see how it would cause an issue. I added it now. Thanks for the new knowledge. I was not aware that was the case. Do you know how to make the block breaking overlay (The animation that appears when mining) appear here? I haven't found anything on it. Edit: I don't know how, but it fixed the snow issue. Might have been a personal error though.
  5. I'm attempting to make a tool that doesn't use the base player mining. I am doing this because eventually I want to expand the area that the tool can mine. The code right now is using a packet sent to the server and attempting to break a block like zombies do with the doors. This only sporadically works, and stops working when I attempt to use this to mine snow. I would also eventually like to render the mining overlay on top of the block I am mining. I have a good amount of java experience, I only need a push in the right direction. Is there anywhere I can look in the API for help on this? Is there something I am missing? Any help would be much appreciated. public void handle(Supplier<NetworkEvent.Context> ctx) { ServerPlayer player = ctx.get().getSender(); if(player == null) return; ServerLevel pLevel = player.serverLevel(); HitResult targetBlock = player.pick(18.0D, 0.0F, false); BlockPos blockpos = ((BlockHitResult) targetBlock).getBlockPos(); BlockState blockState = pLevel.getBlockState(blockpos); Block block = blockState.getBlock(); ++breakTime; int i = (int)((float)breakTime / (float)this.getBlockBreakTime(block) * 10.0F); if (i != lastBreakProgress) { pLevel.destroyBlockProgress(player.getId(), blockpos, i); lastBreakProgress = i; } if (breakTime == getBlockBreakTime(block)) { pLevel.destroyBlock(blockpos, true); pLevel.levelEvent(2001, blockpos, Block.getId(pLevel.getBlockState(blockpos))); breakTime = 0; lastBreakProgress = 0; } ctx.get().setPacketHandled(true); } EDIT: The solution to rendering the mining overlay is to use: player.connection.send(new ClientboundBlockDestructionPacket(player.getId(), blockpos, i)); (where player is a "ServerPlayer") in place of "pLevel.destroyBlockProgress...."
×
×
  • Create New...

Important Information

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