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:
1 file changed
+1
-248
@@ -145,7 +145,7 @@ class BlockEntityHider {
|
||||
break
|
||||
}
|
||||
val hitBlockType = hitBlock.typeFast
|
||||
if (!isAir(hitBlockType) && !isLiquid(hitBlockType) && !isTransparent(hitBlockType)) {
|
||||
if (hitBlockType.isOccluding) {
|
||||
if (eyeOffset == Vector(0, 0, 0)) {
|
||||
blockingBlocks += hitBlock.location.toBlockPosition()
|
||||
}
|
||||
@@ -160,253 +160,6 @@ class BlockEntityHider {
|
||||
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) {
|
||||
fun toLocation(world: World) = Location(world, x.toDouble(), y.toDouble(), z.toDouble())
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user