mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Less ugly (realized it can go here)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
This commit is contained in:
parent
a886fd2424
commit
c27bfaf1aa
1 changed files with 30 additions and 34 deletions
|
@ -113,19 +113,6 @@ public class ChunkUtils {
|
||||||
public static void updateBlock(GeyserSession session, int blockState, Vector3i position) {
|
public static void updateBlock(GeyserSession session, int blockState, Vector3i position) {
|
||||||
updateBlockClientSide(session, blockState, position);
|
updateBlockClientSide(session, blockState, position);
|
||||||
session.getChunkCache().updateBlock(position.getX(), position.getY(), position.getZ(), blockState);
|
session.getChunkCache().updateBlock(position.getX(), position.getY(), position.getZ(), blockState);
|
||||||
|
|
||||||
if (!session.getBlockMappings().getExtendedCollisionBoxes().isEmpty()) {
|
|
||||||
int belowBlock = session.getGeyser().getWorldManager().getBlockAt(session, position.getX(), position.getY() - 1, position.getZ());
|
|
||||||
BlockDefinition belowBedrockExtendedCollisionDefinition = session.getBlockMappings().getExtendedCollisionBoxes().get(belowBlock);
|
|
||||||
if (belowBedrockExtendedCollisionDefinition != null && blockState == BlockStateValues.JAVA_AIR_ID) {
|
|
||||||
UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket();
|
|
||||||
updateBlockPacket.setDataLayer(0);
|
|
||||||
updateBlockPacket.setBlockPosition(position);
|
|
||||||
updateBlockPacket.setDefinition(belowBedrockExtendedCollisionDefinition);
|
|
||||||
updateBlockPacket.getFlags().add(UpdateBlockPacket.Flag.NETWORK);
|
|
||||||
session.sendUpstreamPacket(updateBlockPacket);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -157,27 +144,6 @@ public class ChunkUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extended collision boxes for custom blocks
|
|
||||||
if (!session.getBlockMappings().getExtendedCollisionBoxes().isEmpty()) {
|
|
||||||
int aboveBlock = session.getGeyser().getWorldManager().getBlockAt(session, position.getX(), position.getY() + 1, position.getZ());
|
|
||||||
BlockDefinition aboveBedrockExtendedCollisionDefinition = session.getBlockMappings().getExtendedCollisionBoxes().get(blockState);
|
|
||||||
if (aboveBedrockExtendedCollisionDefinition != null && aboveBlock == BlockStateValues.JAVA_AIR_ID) {
|
|
||||||
UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket();
|
|
||||||
updateBlockPacket.setDataLayer(0);
|
|
||||||
updateBlockPacket.setBlockPosition(position.add(0, 1, 0));
|
|
||||||
updateBlockPacket.setDefinition(aboveBedrockExtendedCollisionDefinition);
|
|
||||||
updateBlockPacket.getFlags().add(UpdateBlockPacket.Flag.NETWORK);
|
|
||||||
session.sendUpstreamPacket(updateBlockPacket);
|
|
||||||
} else if (aboveBlock == BlockStateValues.JAVA_AIR_ID) {
|
|
||||||
UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket();
|
|
||||||
updateBlockPacket.setDataLayer(0);
|
|
||||||
updateBlockPacket.setBlockPosition(position.add(0, 1, 0));
|
|
||||||
updateBlockPacket.setDefinition(session.getBlockMappings().getBedrockAir());
|
|
||||||
updateBlockPacket.getFlags().add(UpdateBlockPacket.Flag.NETWORK);
|
|
||||||
session.sendUpstreamPacket(updateBlockPacket);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prevent moving_piston from being placed
|
// Prevent moving_piston from being placed
|
||||||
// It's used for extending piston heads, but it isn't needed on Bedrock and causes pistons to flicker
|
// It's used for extending piston heads, but it isn't needed on Bedrock and causes pistons to flicker
|
||||||
if (!BlockStateValues.isMovingPiston(blockState)) {
|
if (!BlockStateValues.isMovingPiston(blockState)) {
|
||||||
|
@ -200,6 +166,36 @@ public class ChunkUtils {
|
||||||
session.sendUpstreamPacket(waterPacket);
|
session.sendUpstreamPacket(waterPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extended collision boxes for custom blocks
|
||||||
|
if (!session.getBlockMappings().getExtendedCollisionBoxes().isEmpty()) {
|
||||||
|
int aboveBlock = session.getGeyser().getWorldManager().getBlockAt(session, position.getX(), position.getY() + 1, position.getZ());
|
||||||
|
BlockDefinition aboveBedrockExtendedCollisionDefinition = session.getBlockMappings().getExtendedCollisionBoxes().get(blockState);
|
||||||
|
int belowBlock = session.getGeyser().getWorldManager().getBlockAt(session, position.getX(), position.getY() - 1, position.getZ());
|
||||||
|
BlockDefinition belowBedrockExtendedCollisionDefinition = session.getBlockMappings().getExtendedCollisionBoxes().get(belowBlock);
|
||||||
|
if (belowBedrockExtendedCollisionDefinition != null && blockState == BlockStateValues.JAVA_AIR_ID) {
|
||||||
|
UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket();
|
||||||
|
updateBlockPacket.setDataLayer(0);
|
||||||
|
updateBlockPacket.setBlockPosition(position);
|
||||||
|
updateBlockPacket.setDefinition(belowBedrockExtendedCollisionDefinition);
|
||||||
|
updateBlockPacket.getFlags().add(UpdateBlockPacket.Flag.NETWORK);
|
||||||
|
session.sendUpstreamPacket(updateBlockPacket);
|
||||||
|
} else if (aboveBedrockExtendedCollisionDefinition != null && aboveBlock == BlockStateValues.JAVA_AIR_ID) {
|
||||||
|
UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket();
|
||||||
|
updateBlockPacket.setDataLayer(0);
|
||||||
|
updateBlockPacket.setBlockPosition(position.add(0, 1, 0));
|
||||||
|
updateBlockPacket.setDefinition(aboveBedrockExtendedCollisionDefinition);
|
||||||
|
updateBlockPacket.getFlags().add(UpdateBlockPacket.Flag.NETWORK);
|
||||||
|
session.sendUpstreamPacket(updateBlockPacket);
|
||||||
|
} else if (aboveBlock == BlockStateValues.JAVA_AIR_ID) {
|
||||||
|
UpdateBlockPacket updateBlockPacket = new UpdateBlockPacket();
|
||||||
|
updateBlockPacket.setDataLayer(0);
|
||||||
|
updateBlockPacket.setBlockPosition(position.add(0, 1, 0));
|
||||||
|
updateBlockPacket.setDefinition(session.getBlockMappings().getBedrockAir());
|
||||||
|
updateBlockPacket.getFlags().add(UpdateBlockPacket.Flag.NETWORK);
|
||||||
|
session.sendUpstreamPacket(updateBlockPacket);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BlockStateValues.getLecternBookStates().handleBlockChange(session, blockState, position);
|
BlockStateValues.getLecternBookStates().handleBlockChange(session, blockState, position);
|
||||||
|
|
||||||
// Iterates through all Bedrock-only block entity translators and determines if a manual block entity packet
|
// Iterates through all Bedrock-only block entity translators and determines if a manual block entity packet
|
||||||
|
|
Loading…
Reference in a new issue