Merge pull request #11 from SKBotNL/main

Use Material#isOccluding instead of manual lists
This commit was merged in pull request #11.
This commit is contained in:
NotAlexNoyle authored and GitHub committed 2026-07-24 12:37:11 -04:00
commit a4400a349d
1 file changed
+1 -248
@@ -145,7 +145,7 @@ class BlockEntityHider {
break break
} }
val hitBlockType = hitBlock.typeFast val hitBlockType = hitBlock.typeFast
if (!isAir(hitBlockType) && !isLiquid(hitBlockType) && !isTransparent(hitBlockType)) { if (hitBlockType.isOccluding) {
if (eyeOffset == Vector(0, 0, 0)) { if (eyeOffset == Vector(0, 0, 0)) {
blockingBlocks += hitBlock.location.toBlockPosition() blockingBlocks += hitBlock.location.toBlockPosition()
} }
@@ -160,253 +160,6 @@ class BlockEntityHider {
return blockingBlocks return blockingBlocks
} }
fun isTransparent(material: Material): Boolean {
return when (material) {
// <editor-fold desc="Transparent materials">
Material.ACACIA_DOOR,
Material.ACACIA_FENCE,
Material.ACACIA_FENCE_GATE,
// Material.ACACIA_HANGING_SIGN,
Material.ACACIA_LEAVES,
Material.ACACIA_PRESSURE_PLATE,
Material.ACACIA_SIGN,
Material.ACACIA_SLAB,
Material.ACACIA_STAIRS,
Material.ACACIA_TRAPDOOR,
// Material.ACACIA_WALL_HANGING_SIGN,
Material.ACACIA_WALL_SIGN,
Material.AZALEA_LEAVES,
Material.BAMBOO,
// Material.BAMBOO_BLOCK,
// Material.BAMBOO_DOOR,
// Material.BAMBOO_FENCE,
// Material.BAMBOO_FENCE_GATE,
// Material.BAMBOO_HANGING_SIGN,
// Material.BAMBOO_MOSAIC,
// Material.BAMBOO_MOSAIC_SLAB,
// Material.BAMBOO_MOSAIC_STAIRS,
// Material.BAMBOO_PLANKS,
// Material.BAMBOO_PRESSURE_PLATE,
Material.BAMBOO_SAPLING,
// Material.BAMBOO_SIGN,
// Material.BAMBOO_SLAB,
// Material.BAMBOO_STAIRS,
// Material.BAMBOO_TRAPDOOR,
// Material.BAMBOO_WALL_HANGING_SIGN,
// Material.BAMBOO_WALL_SIGN,
Material.BIRCH_DOOR,
Material.BIRCH_FENCE,
Material.BIRCH_FENCE_GATE,
// Material.BIRCH_HANGING_SIGN,
Material.BIRCH_LEAVES,
Material.BIRCH_PRESSURE_PLATE,
Material.BIRCH_SIGN,
Material.BIRCH_SLAB,
Material.BIRCH_STAIRS,
Material.BIRCH_TRAPDOOR,
Material.BIRCH_WALL_SIGN,
Material.BLACK_BANNER,
Material.BLACK_BED,
Material.BLACK_CARPET,
Material.BLACK_WALL_BANNER,
Material.BLUE_BANNER,
Material.BLUE_BED,
Material.BLUE_CARPET,
Material.BLUE_WALL_BANNER,
Material.BROWN_BANNER,
Material.BROWN_BED,
Material.BROWN_CARPET,
Material.BROWN_MUSHROOM_BLOCK,
Material.BROWN_WALL_BANNER,
Material.CAMPFIRE,
// Material.CHERRY_DOOR,
// Material.CHERRY_FENCE,
// Material.CHERRY_FENCE_GATE,
// Material.CHERRY_HANGING_SIGN,
// Material.CHERRY_LEAVES,
// Material.CHERRY_LOG,
// Material.CHERRY_PLANKS,
// Material.CHERRY_PRESSURE_PLATE,
// Material.CHERRY_SIGN,
// Material.CHERRY_SLAB,
// Material.CHERRY_STAIRS,
// Material.CHERRY_TRAPDOOR,
// Material.CHERRY_WALL_HANGING_SIGN,
// Material.CHERRY_WALL_SIGN,
// Material.CHERRY_WOOD,
Material.CHEST,
// Material.CHISELED_BOOKSHELF,
// Material.CRIMSON_HANGING_SIGN,
// Material.CRIMSON_WALL_HANGING_SIGN,
Material.CYAN_BANNER,
Material.CYAN_BED,
Material.CYAN_CARPET,
Material.CYAN_WALL_BANNER,
Material.DARK_OAK_DOOR,
Material.DARK_OAK_FENCE,
Material.DARK_OAK_FENCE_GATE,
// Material.DARK_OAK_HANGING_SIGN,
Material.DARK_OAK_LEAVES,
Material.DARK_OAK_PRESSURE_PLATE,
Material.DARK_OAK_SIGN,
Material.DARK_OAK_SLAB,
Material.DARK_OAK_STAIRS,
Material.DARK_OAK_TRAPDOOR,
// Material.DARK_OAK_WALL_HANGING_SIGN,
Material.DARK_OAK_WALL_SIGN,
Material.DAYLIGHT_DETECTOR,
Material.DEAD_BUSH,
Material.FERN,
Material.FLOWERING_AZALEA_LEAVES,
Material.GLOW_LICHEN,
Material.GRASS,
Material.GRAY_BANNER,
Material.GRAY_BED,
Material.GRAY_CARPET,
Material.GRAY_WALL_BANNER,
Material.GREEN_BANNER,
Material.GREEN_BED,
Material.GREEN_CARPET,
Material.GREEN_WALL_BANNER,
Material.HANGING_ROOTS,
Material.JUKEBOX,
Material.JUNGLE_DOOR,
Material.JUNGLE_FENCE,
Material.JUNGLE_FENCE_GATE,
// Material.JUNGLE_HANGING_SIGN,
Material.JUNGLE_LEAVES,
Material.JUNGLE_PRESSURE_PLATE,
Material.JUNGLE_SIGN,
Material.JUNGLE_SLAB,
Material.JUNGLE_STAIRS,
Material.JUNGLE_TRAPDOOR,
// Material.JUNGLE_WALL_HANGING_SIGN,
Material.JUNGLE_WALL_SIGN,
Material.LARGE_FERN,
Material.LECTERN,
Material.LIGHT_BLUE_BANNER,
Material.LIGHT_BLUE_BED,
Material.LIGHT_BLUE_CARPET,
Material.LIGHT_BLUE_WALL_BANNER,
Material.LIGHT_GRAY_BANNER,
Material.LIGHT_GRAY_BED,
Material.LIGHT_GRAY_CARPET,
Material.LIGHT_GRAY_WALL_BANNER,
Material.LILAC,
Material.LIME_BANNER,
Material.LIME_BED,
Material.LIME_CARPET,
Material.LIME_WALL_BANNER,
Material.LOOM,
Material.MAGENTA_BANNER,
Material.MAGENTA_BED,
Material.MAGENTA_CARPET,
Material.MAGENTA_WALL_BANNER,
Material.MANGROVE_DOOR,
Material.MANGROVE_FENCE,
Material.MANGROVE_FENCE_GATE,
// Material.MANGROVE_HANGING_SIGN,
Material.MANGROVE_LEAVES,
Material.MANGROVE_PRESSURE_PLATE,
Material.MANGROVE_ROOTS,
Material.MANGROVE_SIGN,
Material.MANGROVE_SLAB,
Material.MANGROVE_STAIRS,
Material.MANGROVE_TRAPDOOR,
// Material.MANGROVE_WALL_HANGING_SIGN,
Material.MANGROVE_WALL_SIGN,
Material.OAK_DOOR,
Material.OAK_FENCE,
Material.OAK_FENCE_GATE,
// Material.OAK_HANGING_SIGN,
Material.OAK_LEAVES,
Material.OAK_PRESSURE_PLATE,
Material.OAK_SIGN,
Material.OAK_SLAB,
Material.OAK_STAIRS,
Material.OAK_TRAPDOOR,
// Material.OAK_WALL_HANGING_SIGN,
Material.OAK_WALL_SIGN,
Material.ORANGE_BANNER,
Material.ORANGE_BED,
Material.ORANGE_CARPET,
Material.ORANGE_WALL_BANNER,
Material.PEONY,
Material.PINK_BANNER,
Material.PINK_BED,
Material.PINK_CARPET,
Material.PINK_WALL_BANNER,
Material.PURPLE_BANNER,
Material.PURPLE_BED,
Material.PURPLE_CARPET,
Material.PURPLE_WALL_BANNER,
Material.RED_BANNER,
Material.RED_BED,
Material.RED_CARPET,
Material.RED_WALL_BANNER,
Material.ROSE_BUSH,
Material.SOUL_CAMPFIRE,
Material.SPRUCE_DOOR,
Material.SPRUCE_FENCE,
Material.SPRUCE_FENCE_GATE,
// Material.SPRUCE_HANGING_SIGN,
Material.SPRUCE_LEAVES,
Material.SPRUCE_PRESSURE_PLATE,
Material.SPRUCE_SIGN,
Material.SPRUCE_SLAB,
Material.SPRUCE_STAIRS,
Material.SPRUCE_TRAPDOOR,
// Material.SPRUCE_WALL_HANGING_SIGN,
Material.SPRUCE_WALL_SIGN,
// Material.STRIPPED_BAMBOO_BLOCK,
// Material.STRIPPED_CHERRY_LOG,
// Material.STRIPPED_CHERRY_WOOD,
Material.SUNFLOWER,
Material.TALL_GRASS,
Material.TRAPPED_CHEST,
Material.VINE,
// Material.WARPED_HANGING_SIGN,
// Material.WARPED_WALL_HANGING_SIGN,
Material.WHITE_BANNER,
Material.WHITE_BED,
Material.WHITE_CARPET,
Material.WHITE_WALL_BANNER,
Material.YELLOW_BANNER,
Material.YELLOW_BED,
Material.YELLOW_CARPET,
Material.YELLOW_WALL_BANNER,
Material.PISTON,
Material.STICKY_PISTON,
Material.PISTON_HEAD,
Material.SNOW,
Material.POWDER_SNOW,
Material.ICE,
Material.BLUE_ICE,
Material.PACKED_ICE,
Material.FROSTED_ICE ->
// </editor-fold>
true
else -> false
}
}
fun isAir(material: Material): Boolean {
return when (material) {
Material.AIR,
Material.CAVE_AIR,
Material.VOID_AIR -> true
else -> false
}
}
fun isLiquid(material: Material): Boolean {
return when (material) {
Material.WATER,
Material.LAVA -> true
else -> false
}
}
data class BlockPosition(var x: Int, var y: Int, var z: Int) { data class BlockPosition(var x: Int, var y: Int, var z: Int) {
fun toLocation(world: World) = Location(world, x.toDouble(), y.toDouble(), z.toDouble()) fun toLocation(world: World) = Location(world, x.toDouble(), y.toDouble(), z.toDouble())
} }