Improve IsOnGround

This commit is contained in:
BruceChen 2022-09-07 17:25:06 +08:00
parent 317f2e78a9
commit c5d5287938
2 changed files with 208 additions and 20 deletions

View file

@ -19,32 +19,40 @@ namespace MinecraftClient.Mapping
{ {
switch (m) switch (m)
{ {
case Material.AcaciaDoor:
case Material.AcaciaFence: case Material.AcaciaFence:
case Material.AcaciaFenceGate: case Material.AcaciaFenceGate:
case Material.AcaciaLeaves: case Material.AcaciaLeaves:
case Material.AcaciaLog: case Material.AcaciaLog:
case Material.AcaciaPlanks: case Material.AcaciaPlanks:
case Material.AcaciaPressurePlate:
case Material.AcaciaSign:
case Material.AcaciaSlab: case Material.AcaciaSlab:
case Material.AcaciaStairs: case Material.AcaciaStairs:
case Material.AcaciaTrapdoor: case Material.AcaciaTrapdoor:
case Material.AcaciaWallSign:
case Material.AcaciaWood: case Material.AcaciaWood:
case Material.AmethystBlock: case Material.AmethystBlock:
case Material.AmethystCluster: case Material.AmethystCluster:
case Material.AncientDebris:
case Material.Andesite: case Material.Andesite:
case Material.AndesiteSlab: case Material.AndesiteSlab:
case Material.AndesiteStairs: case Material.AndesiteStairs:
case Material.AndesiteWall: case Material.AndesiteWall:
case Material.Anvil: case Material.Anvil:
case Material.AttachedMelonStem:
case Material.AttachedPumpkinStem:
case Material.Azalea: case Material.Azalea:
case Material.AzaleaLeaves: case Material.AzaleaLeaves:
case Material.Bamboo: case Material.Bamboo:
case Material.BambooSapling:
case Material.Barrel: case Material.Barrel:
case Material.Barrier: case Material.Barrier:
case Material.Basalt: case Material.Basalt:
case Material.Beacon: case Material.Beacon:
case Material.Bedrock: case Material.Bedrock:
case Material.BeeNest:
case Material.Beehive: case Material.Beehive:
case Material.BeeNest:
case Material.Bell: case Material.Bell:
case Material.BirchDoor: case Material.BirchDoor:
case Material.BirchFence: case Material.BirchFence:
@ -52,10 +60,14 @@ namespace MinecraftClient.Mapping
case Material.BirchLeaves: case Material.BirchLeaves:
case Material.BirchLog: case Material.BirchLog:
case Material.BirchPlanks: case Material.BirchPlanks:
case Material.BirchPressurePlate:
case Material.BirchSign:
case Material.BirchSlab: case Material.BirchSlab:
case Material.BirchStairs: case Material.BirchStairs:
case Material.BirchTrapdoor: case Material.BirchTrapdoor:
case Material.BirchWallSign:
case Material.BirchWood: case Material.BirchWood:
case Material.BlackBanner:
case Material.BlackBed: case Material.BlackBed:
case Material.BlackCandle: case Material.BlackCandle:
case Material.BlackCandleCake: case Material.BlackCandleCake:
@ -68,9 +80,12 @@ namespace MinecraftClient.Mapping
case Material.Blackstone: case Material.Blackstone:
case Material.BlackstoneSlab: case Material.BlackstoneSlab:
case Material.BlackstoneStairs: case Material.BlackstoneStairs:
case Material.BlackstoneWall:
case Material.BlackTerracotta: case Material.BlackTerracotta:
case Material.BlackWallBanner:
case Material.BlackWool: case Material.BlackWool:
case Material.BlastFurnace: case Material.BlastFurnace:
case Material.BlueBanner:
case Material.BlueBed: case Material.BlueBed:
case Material.BlueCandle: case Material.BlueCandle:
case Material.BlueCandleCake: case Material.BlueCandleCake:
@ -82,15 +97,17 @@ namespace MinecraftClient.Mapping
case Material.BlueStainedGlass: case Material.BlueStainedGlass:
case Material.BlueStainedGlassPane: case Material.BlueStainedGlassPane:
case Material.BlueTerracotta: case Material.BlueTerracotta:
case Material.BlueWallBanner:
case Material.BlueWool: case Material.BlueWool:
case Material.BoneBlock: case Material.BoneBlock:
case Material.Bookshelf: case Material.Bookshelf:
case Material.BrainCoralBlock: case Material.BrainCoralBlock:
case Material.BrewingStand: case Material.BrewingStand:
case Material.Bricks:
case Material.BrickSlab: case Material.BrickSlab:
case Material.BrickStairs: case Material.BrickStairs:
case Material.BrickWall: case Material.BrickWall:
case Material.Bricks: case Material.BrownBanner:
case Material.BrownBed: case Material.BrownBed:
case Material.BrownCandle: case Material.BrownCandle:
case Material.BrownCandleCake: case Material.BrownCandleCake:
@ -102,6 +119,7 @@ namespace MinecraftClient.Mapping
case Material.BrownStainedGlass: case Material.BrownStainedGlass:
case Material.BrownStainedGlassPane: case Material.BrownStainedGlassPane:
case Material.BrownTerracotta: case Material.BrownTerracotta:
case Material.BrownWallBanner:
case Material.BrownWool: case Material.BrownWool:
case Material.BubbleColumn: case Material.BubbleColumn:
case Material.BubbleCoralBlock: case Material.BubbleCoralBlock:
@ -115,10 +133,13 @@ namespace MinecraftClient.Mapping
case Material.CartographyTable: case Material.CartographyTable:
case Material.CarvedPumpkin: case Material.CarvedPumpkin:
case Material.Cauldron: case Material.Cauldron:
case Material.Chain:
case Material.ChainCommandBlock: case Material.ChainCommandBlock:
case Material.Chest: case Material.Chest:
case Material.ChippedAnvil: case Material.ChippedAnvil:
case Material.ChiseledDeepslate: case Material.ChiseledDeepslate:
case Material.ChiseledNetherBricks:
case Material.ChiseledPolishedBlackstone:
case Material.ChiseledQuartzBlock: case Material.ChiseledQuartzBlock:
case Material.ChiseledRedSandstone: case Material.ChiseledRedSandstone:
case Material.ChiseledSandstone: case Material.ChiseledSandstone:
@ -137,6 +158,7 @@ namespace MinecraftClient.Mapping
case Material.CobblestoneSlab: case Material.CobblestoneSlab:
case Material.CobblestoneStairs: case Material.CobblestoneStairs:
case Material.CobblestoneWall: case Material.CobblestoneWall:
case Material.Cobweb:
case Material.CommandBlock: case Material.CommandBlock:
case Material.Composter: case Material.Composter:
case Material.Conduit: case Material.Conduit:
@ -144,10 +166,26 @@ namespace MinecraftClient.Mapping
case Material.CopperOre: case Material.CopperOre:
case Material.CrackedDeepslateBricks: case Material.CrackedDeepslateBricks:
case Material.CrackedDeepslateTiles: case Material.CrackedDeepslateTiles:
case Material.CrackedNetherBricks:
case Material.CrackedPolishedBlackstoneBricks:
case Material.CrackedStoneBricks: case Material.CrackedStoneBricks:
case Material.CraftingTable: case Material.CraftingTable:
case Material.CreeperHead: case Material.CreeperHead:
case Material.CreeperWallHead: case Material.CreeperWallHead:
case Material.CrimsonDoor:
case Material.CrimsonFence:
case Material.CrimsonFenceGate:
case Material.CrimsonHyphae:
case Material.CrimsonNylium:
case Material.CrimsonPlanks:
case Material.CrimsonPressurePlate:
case Material.CrimsonSign:
case Material.CrimsonSlab:
case Material.CrimsonStairs:
case Material.CrimsonStem:
case Material.CrimsonTrapdoor:
case Material.CrimsonWallSign:
case Material.CryingObsidian:
case Material.CutCopper: case Material.CutCopper:
case Material.CutCopperSlab: case Material.CutCopperSlab:
case Material.CutCopperStairs: case Material.CutCopperStairs:
@ -155,6 +193,7 @@ namespace MinecraftClient.Mapping
case Material.CutRedSandstoneSlab: case Material.CutRedSandstoneSlab:
case Material.CutSandstone: case Material.CutSandstone:
case Material.CutSandstoneSlab: case Material.CutSandstoneSlab:
case Material.CyanBanner:
case Material.CyanBed: case Material.CyanBed:
case Material.CyanCandle: case Material.CyanCandle:
case Material.CyanCandleCake: case Material.CyanCandleCake:
@ -165,6 +204,7 @@ namespace MinecraftClient.Mapping
case Material.CyanStainedGlass: case Material.CyanStainedGlass:
case Material.CyanStainedGlassPane: case Material.CyanStainedGlassPane:
case Material.CyanTerracotta: case Material.CyanTerracotta:
case Material.CyanWallBanner:
case Material.CyanWool: case Material.CyanWool:
case Material.DamagedAnvil: case Material.DamagedAnvil:
case Material.DarkOakDoor: case Material.DarkOakDoor:
@ -173,29 +213,54 @@ namespace MinecraftClient.Mapping
case Material.DarkOakLeaves: case Material.DarkOakLeaves:
case Material.DarkOakLog: case Material.DarkOakLog:
case Material.DarkOakPlanks: case Material.DarkOakPlanks:
case Material.DarkOakPressurePlate:
case Material.DarkOakSign:
case Material.DarkOakSlab: case Material.DarkOakSlab:
case Material.DarkOakStairs: case Material.DarkOakStairs:
case Material.DarkOakTrapdoor: case Material.DarkOakTrapdoor:
case Material.DarkOakWallSign:
case Material.DarkOakWood: case Material.DarkOakWood:
case Material.DarkPrismarine: case Material.DarkPrismarine:
case Material.DarkPrismarineSlab: case Material.DarkPrismarineSlab:
case Material.DarkPrismarineStairs: case Material.DarkPrismarineStairs:
case Material.DaylightDetector: case Material.DaylightDetector:
case Material.DeadBrainCoral:
case Material.DeadBrainCoralBlock: case Material.DeadBrainCoralBlock:
case Material.DeadBrainCoralFan:
case Material.DeadBrainCoralWallFan:
case Material.DeadBubbleCoral:
case Material.DeadBubbleCoralBlock: case Material.DeadBubbleCoralBlock:
case Material.DeadBubbleCoralFan:
case Material.DeadBubbleCoralWallFan:
case Material.DeadFireCoral:
case Material.DeadFireCoralBlock: case Material.DeadFireCoralBlock:
case Material.DeadFireCoralFan:
case Material.DeadFireCoralWallFan:
case Material.DeadHornCoral:
case Material.DeadHornCoralBlock: case Material.DeadHornCoralBlock:
case Material.DeadHornCoralFan:
case Material.DeadHornCoralWallFan:
case Material.DeadTubeCoral:
case Material.DeadTubeCoralBlock: case Material.DeadTubeCoralBlock:
case Material.DeadTubeCoralFan:
case Material.DeadTubeCoralWallFan:
case Material.Deepslate: case Material.Deepslate:
case Material.DeepslateBricks:
case Material.DeepslateBrickSlab: case Material.DeepslateBrickSlab:
case Material.DeepslateBrickStairs: case Material.DeepslateBrickStairs:
case Material.DeepslateBrickWall: case Material.DeepslateBrickWall:
case Material.DeepslateBricks: case Material.DeepslateCoalOre:
case Material.DeepslateCopperOre: case Material.DeepslateCopperOre:
case Material.DeepslateDiamondOre:
case Material.DeepslateEmeraldOre:
case Material.DeepslateGoldOre:
case Material.DeepslateIronOre:
case Material.DeepslateLapisOre:
case Material.DeepslateRedstoneOre:
case Material.DeepslateTiles:
case Material.DeepslateTileSlab: case Material.DeepslateTileSlab:
case Material.DeepslateTileStairs: case Material.DeepslateTileStairs:
case Material.DeepslateTileWall: case Material.DeepslateTileWall:
case Material.DeepslateTiles:
case Material.DiamondBlock: case Material.DiamondBlock:
case Material.DiamondOre: case Material.DiamondOre:
case Material.Diorite: case Material.Diorite:
@ -214,14 +279,14 @@ namespace MinecraftClient.Mapping
case Material.EmeraldBlock: case Material.EmeraldBlock:
case Material.EmeraldOre: case Material.EmeraldOre:
case Material.EnchantingTable: case Material.EnchantingTable:
case Material.EnderChest:
case Material.EndPortalFrame: case Material.EndPortalFrame:
case Material.EndRod: case Material.EndRod:
case Material.EndStone: case Material.EndStone:
case Material.EndStoneBricks:
case Material.EndStoneBrickSlab: case Material.EndStoneBrickSlab:
case Material.EndStoneBrickStairs: case Material.EndStoneBrickStairs:
case Material.EndStoneBrickWall: case Material.EndStoneBrickWall:
case Material.EndStoneBricks:
case Material.EnderChest:
case Material.ExposedCopper: case Material.ExposedCopper:
case Material.ExposedCutCopper: case Material.ExposedCutCopper:
case Material.ExposedCutCopperSlab: case Material.ExposedCutCopperSlab:
@ -229,11 +294,12 @@ namespace MinecraftClient.Mapping
case Material.Farmland: case Material.Farmland:
case Material.FireCoralBlock: case Material.FireCoralBlock:
case Material.FletchingTable: case Material.FletchingTable:
case Material.FlowerPot:
case Material.FloweringAzalea: case Material.FloweringAzalea:
case Material.FloweringAzaleaLeaves: case Material.FloweringAzaleaLeaves:
case Material.FlowerPot:
case Material.FrostedIce: case Material.FrostedIce:
case Material.Furnace: case Material.Furnace:
case Material.GildedBlackstone:
case Material.Glass: case Material.Glass:
case Material.GlassPane: case Material.GlassPane:
case Material.Glowstone: case Material.Glowstone:
@ -245,6 +311,7 @@ namespace MinecraftClient.Mapping
case Material.GraniteWall: case Material.GraniteWall:
case Material.GrassBlock: case Material.GrassBlock:
case Material.Gravel: case Material.Gravel:
case Material.GrayBanner:
case Material.GrayBed: case Material.GrayBed:
case Material.GrayCandle: case Material.GrayCandle:
case Material.GrayCandleCake: case Material.GrayCandleCake:
@ -255,7 +322,9 @@ namespace MinecraftClient.Mapping
case Material.GrayStainedGlass: case Material.GrayStainedGlass:
case Material.GrayStainedGlassPane: case Material.GrayStainedGlassPane:
case Material.GrayTerracotta: case Material.GrayTerracotta:
case Material.GrayWallBanner:
case Material.GrayWool: case Material.GrayWool:
case Material.GreenBanner:
case Material.GreenBed: case Material.GreenBed:
case Material.GreenCandle: case Material.GreenCandle:
case Material.GreenCandleCake: case Material.GreenCandleCake:
@ -266,9 +335,11 @@ namespace MinecraftClient.Mapping
case Material.GreenStainedGlass: case Material.GreenStainedGlass:
case Material.GreenStainedGlassPane: case Material.GreenStainedGlassPane:
case Material.GreenTerracotta: case Material.GreenTerracotta:
case Material.GreenWallBanner:
case Material.GreenWool: case Material.GreenWool:
case Material.Grindstone: case Material.Grindstone:
case Material.HayBlock: case Material.HayBlock:
case Material.HeavyWeightedPressurePlate:
case Material.HoneyBlock: case Material.HoneyBlock:
case Material.HoneycombBlock: case Material.HoneycombBlock:
case Material.Hopper: case Material.Hopper:
@ -295,9 +366,12 @@ namespace MinecraftClient.Mapping
case Material.JungleLeaves: case Material.JungleLeaves:
case Material.JungleLog: case Material.JungleLog:
case Material.JunglePlanks: case Material.JunglePlanks:
case Material.JunglePressurePlate:
case Material.JungleSign:
case Material.JungleSlab: case Material.JungleSlab:
case Material.JungleStairs: case Material.JungleStairs:
case Material.JungleTrapdoor: case Material.JungleTrapdoor:
case Material.JungleWallSign:
case Material.JungleWood: case Material.JungleWood:
case Material.Ladder: case Material.Ladder:
case Material.Lantern: case Material.Lantern:
@ -306,6 +380,7 @@ namespace MinecraftClient.Mapping
case Material.LargeAmethystBud: case Material.LargeAmethystBud:
case Material.LavaCauldron: case Material.LavaCauldron:
case Material.Lectern: case Material.Lectern:
case Material.LightBlueBanner:
case Material.LightBlueBed: case Material.LightBlueBed:
case Material.LightBlueCandle: case Material.LightBlueCandle:
case Material.LightBlueCandleCake: case Material.LightBlueCandleCake:
@ -316,7 +391,9 @@ namespace MinecraftClient.Mapping
case Material.LightBlueStainedGlass: case Material.LightBlueStainedGlass:
case Material.LightBlueStainedGlassPane: case Material.LightBlueStainedGlassPane:
case Material.LightBlueTerracotta: case Material.LightBlueTerracotta:
case Material.LightBlueWallBanner:
case Material.LightBlueWool: case Material.LightBlueWool:
case Material.LightGrayBanner:
case Material.LightGrayBed: case Material.LightGrayBed:
case Material.LightGrayCandle: case Material.LightGrayCandle:
case Material.LightGrayCandleCake: case Material.LightGrayCandleCake:
@ -327,9 +404,12 @@ namespace MinecraftClient.Mapping
case Material.LightGrayStainedGlass: case Material.LightGrayStainedGlass:
case Material.LightGrayStainedGlassPane: case Material.LightGrayStainedGlassPane:
case Material.LightGrayTerracotta: case Material.LightGrayTerracotta:
case Material.LightGrayWallBanner:
case Material.LightGrayWool: case Material.LightGrayWool:
case Material.LightningRod: case Material.LightningRod:
case Material.LightWeightedPressurePlate:
case Material.LilyPad: case Material.LilyPad:
case Material.LimeBanner:
case Material.LimeBed: case Material.LimeBed:
case Material.LimeCandle: case Material.LimeCandle:
case Material.LimeCandleCake: case Material.LimeCandleCake:
@ -340,8 +420,11 @@ namespace MinecraftClient.Mapping
case Material.LimeStainedGlass: case Material.LimeStainedGlass:
case Material.LimeStainedGlassPane: case Material.LimeStainedGlassPane:
case Material.LimeTerracotta: case Material.LimeTerracotta:
case Material.LimeWallBanner:
case Material.LimeWool: case Material.LimeWool:
case Material.Lodestone:
case Material.Loom: case Material.Loom:
case Material.MagentaBanner:
case Material.MagentaBed: case Material.MagentaBed:
case Material.MagentaCandle: case Material.MagentaCandle:
case Material.MagentaCandleCake: case Material.MagentaCandleCake:
@ -352,39 +435,55 @@ namespace MinecraftClient.Mapping
case Material.MagentaStainedGlass: case Material.MagentaStainedGlass:
case Material.MagentaStainedGlassPane: case Material.MagentaStainedGlassPane:
case Material.MagentaTerracotta: case Material.MagentaTerracotta:
case Material.MagentaWallBanner:
case Material.MagentaWool: case Material.MagentaWool:
case Material.MagmaBlock: case Material.MagmaBlock:
case Material.MangroveDoor:
case Material.MangroveFence:
case Material.MangroveFenceGate:
case Material.MangroveLeaves: case Material.MangroveLeaves:
case Material.MangroveLog: case Material.MangroveLog:
case Material.MangrovePlanks: case Material.MangrovePlanks:
case Material.MangrovePressurePlate: case Material.MangrovePressurePlate:
case Material.MangroveRoots: case Material.MangroveRoots:
case Material.MangroveSign:
case Material.MangroveSlab: case Material.MangroveSlab:
case Material.MangroveStairs: case Material.MangroveStairs:
case Material.MangroveTrapdoor:
case Material.MangroveWallSign:
case Material.MangroveWood: case Material.MangroveWood:
case Material.MediumAmethystBud: case Material.MediumAmethystBud:
case Material.Melon: case Material.Melon:
case Material.MelonStem:
case Material.MossBlock: case Material.MossBlock:
case Material.MossCarpet: case Material.MossCarpet:
case Material.MossyCobblestone: case Material.MossyCobblestone:
case Material.MossyCobblestoneSlab: case Material.MossyCobblestoneSlab:
case Material.MossyCobblestoneStairs: case Material.MossyCobblestoneStairs:
case Material.MossyCobblestoneWall: case Material.MossyCobblestoneWall:
case Material.MossyStoneBricks:
case Material.MossyStoneBrickSlab: case Material.MossyStoneBrickSlab:
case Material.MossyStoneBrickStairs: case Material.MossyStoneBrickStairs:
case Material.MossyStoneBrickWall: case Material.MossyStoneBrickWall:
case Material.MossyStoneBricks:
case Material.MovingPiston: case Material.MovingPiston:
case Material.Mud:
case Material.MudBricks:
case Material.MudBrickSlab:
case Material.MudBrickStairs:
case Material.MudBrickWall:
case Material.MuddyMangroveRoots:
case Material.MushroomStem: case Material.MushroomStem:
case Material.Mycelium: case Material.Mycelium:
case Material.NetherBrickFence: case Material.NetherBrickFence:
case Material.NetherBricks:
case Material.NetherBrickSlab: case Material.NetherBrickSlab:
case Material.NetherBrickStairs: case Material.NetherBrickStairs:
case Material.NetherBrickWall: case Material.NetherBrickWall:
case Material.NetherBricks: case Material.NetherGoldOre:
case Material.NetheriteBlock:
case Material.NetherQuartzOre: case Material.NetherQuartzOre:
case Material.NetherWartBlock:
case Material.Netherrack: case Material.Netherrack:
case Material.NetherWartBlock:
case Material.NoteBlock: case Material.NoteBlock:
case Material.OakDoor: case Material.OakDoor:
case Material.OakFence: case Material.OakFence:
@ -392,12 +491,17 @@ namespace MinecraftClient.Mapping
case Material.OakLeaves: case Material.OakLeaves:
case Material.OakLog: case Material.OakLog:
case Material.OakPlanks: case Material.OakPlanks:
case Material.OakPressurePlate:
case Material.OakSign:
case Material.OakSlab: case Material.OakSlab:
case Material.OakStairs: case Material.OakStairs:
case Material.OakTrapdoor: case Material.OakTrapdoor:
case Material.OakWallSign:
case Material.OakWood: case Material.OakWood:
case Material.Observer: case Material.Observer:
case Material.Obsidian: case Material.Obsidian:
case Material.OchreFroglight:
case Material.OrangeBanner:
case Material.OrangeBed: case Material.OrangeBed:
case Material.OrangeCandle: case Material.OrangeCandle:
case Material.OrangeCandleCake: case Material.OrangeCandleCake:
@ -408,13 +512,17 @@ namespace MinecraftClient.Mapping
case Material.OrangeStainedGlass: case Material.OrangeStainedGlass:
case Material.OrangeStainedGlassPane: case Material.OrangeStainedGlassPane:
case Material.OrangeTerracotta: case Material.OrangeTerracotta:
case Material.OrangeWallBanner:
case Material.OrangeWool: case Material.OrangeWool:
case Material.OxidizedCopper: case Material.OxidizedCopper:
case Material.OxidizedCutCopper: case Material.OxidizedCutCopper:
case Material.OxidizedCutCopperSlab: case Material.OxidizedCutCopperSlab:
case Material.OxidizedCutCopperStairs: case Material.OxidizedCutCopperStairs:
case Material.PackedIce: case Material.PackedIce:
case Material.PackedMud:
case Material.PearlescentFroglight:
case Material.PetrifiedOakSlab: case Material.PetrifiedOakSlab:
case Material.PinkBanner:
case Material.PinkBed: case Material.PinkBed:
case Material.PinkCandle: case Material.PinkCandle:
case Material.PinkCandleCake: case Material.PinkCandleCake:
@ -425,6 +533,7 @@ namespace MinecraftClient.Mapping
case Material.PinkStainedGlass: case Material.PinkStainedGlass:
case Material.PinkStainedGlassPane: case Material.PinkStainedGlassPane:
case Material.PinkTerracotta: case Material.PinkTerracotta:
case Material.PinkWallBanner:
case Material.PinkWool: case Material.PinkWool:
case Material.Piston: case Material.Piston:
case Material.PistonHead: case Material.PistonHead:
@ -436,6 +545,15 @@ namespace MinecraftClient.Mapping
case Material.PolishedAndesiteSlab: case Material.PolishedAndesiteSlab:
case Material.PolishedAndesiteStairs: case Material.PolishedAndesiteStairs:
case Material.PolishedBasalt: case Material.PolishedBasalt:
case Material.PolishedBlackstone:
case Material.PolishedBlackstoneBricks:
case Material.PolishedBlackstoneBrickSlab:
case Material.PolishedBlackstoneBrickStairs:
case Material.PolishedBlackstoneBrickWall:
case Material.PolishedBlackstonePressurePlate:
case Material.PolishedBlackstoneSlab:
case Material.PolishedBlackstoneStairs:
case Material.PolishedBlackstoneWall:
case Material.PolishedDeepslate: case Material.PolishedDeepslate:
case Material.PolishedDeepslateSlab: case Material.PolishedDeepslateSlab:
case Material.PolishedDeepslateStairs: case Material.PolishedDeepslateStairs:
@ -475,13 +593,15 @@ namespace MinecraftClient.Mapping
case Material.PottedWitherRose: case Material.PottedWitherRose:
case Material.PowderSnowCauldron: case Material.PowderSnowCauldron:
case Material.Prismarine: case Material.Prismarine:
case Material.PrismarineBricks:
case Material.PrismarineBrickSlab: case Material.PrismarineBrickSlab:
case Material.PrismarineBrickStairs: case Material.PrismarineBrickStairs:
case Material.PrismarineBricks:
case Material.PrismarineSlab: case Material.PrismarineSlab:
case Material.PrismarineStairs: case Material.PrismarineStairs:
case Material.PrismarineWall: case Material.PrismarineWall:
case Material.Pumpkin: case Material.Pumpkin:
case Material.PumpkinStem:
case Material.PurpleBanner:
case Material.PurpleBed: case Material.PurpleBed:
case Material.PurpleCandle: case Material.PurpleCandle:
case Material.PurpleCandleCake: case Material.PurpleCandleCake:
@ -492,18 +612,21 @@ namespace MinecraftClient.Mapping
case Material.PurpleStainedGlass: case Material.PurpleStainedGlass:
case Material.PurpleStainedGlassPane: case Material.PurpleStainedGlassPane:
case Material.PurpleTerracotta: case Material.PurpleTerracotta:
case Material.PurpleWallBanner:
case Material.PurpleWool: case Material.PurpleWool:
case Material.PurpurBlock: case Material.PurpurBlock:
case Material.PurpurPillar: case Material.PurpurPillar:
case Material.PurpurSlab: case Material.PurpurSlab:
case Material.PurpurStairs: case Material.PurpurStairs:
case Material.QuartzBlock: case Material.QuartzBlock:
case Material.QuartzBricks:
case Material.QuartzPillar: case Material.QuartzPillar:
case Material.QuartzSlab: case Material.QuartzSlab:
case Material.QuartzStairs: case Material.QuartzStairs:
case Material.RawCopperBlock: case Material.RawCopperBlock:
case Material.RawGoldBlock: case Material.RawGoldBlock:
case Material.RawIronBlock: case Material.RawIronBlock:
case Material.RedBanner:
case Material.RedBed: case Material.RedBed:
case Material.RedCandle: case Material.RedCandle:
case Material.RedCandleCake: case Material.RedCandleCake:
@ -511,10 +634,10 @@ namespace MinecraftClient.Mapping
case Material.RedConcretePowder: case Material.RedConcretePowder:
case Material.RedGlazedTerracotta: case Material.RedGlazedTerracotta:
case Material.RedMushroomBlock: case Material.RedMushroomBlock:
case Material.RedNetherBricks:
case Material.RedNetherBrickSlab: case Material.RedNetherBrickSlab:
case Material.RedNetherBrickStairs: case Material.RedNetherBrickStairs:
case Material.RedNetherBrickWall: case Material.RedNetherBrickWall:
case Material.RedNetherBricks:
case Material.RedSand: case Material.RedSand:
case Material.RedSandstone: case Material.RedSandstone:
case Material.RedSandstoneSlab: case Material.RedSandstoneSlab:
@ -523,21 +646,29 @@ namespace MinecraftClient.Mapping
case Material.RedShulkerBox: case Material.RedShulkerBox:
case Material.RedStainedGlass: case Material.RedStainedGlass:
case Material.RedStainedGlassPane: case Material.RedStainedGlassPane:
case Material.RedTerracotta:
case Material.RedWool:
case Material.RedstoneBlock: case Material.RedstoneBlock:
case Material.RedstoneLamp: case Material.RedstoneLamp:
case Material.RedstoneOre: case Material.RedstoneOre:
case Material.RedTerracotta:
case Material.RedWallBanner:
case Material.RedWool:
case Material.ReinforcedDeepslate:
case Material.RepeatingCommandBlock: case Material.RepeatingCommandBlock:
case Material.RespawnAnchor:
case Material.RootedDirt: case Material.RootedDirt:
case Material.Sand: case Material.Sand:
case Material.Sandstone: case Material.Sandstone:
case Material.SandstoneSlab: case Material.SandstoneSlab:
case Material.SandstoneStairs: case Material.SandstoneStairs:
case Material.SandstoneWall: case Material.SandstoneWall:
case Material.Sculk:
case Material.SculkCatalyst:
case Material.SculkSensor: case Material.SculkSensor:
case Material.SculkShrieker:
case Material.SculkVein:
case Material.SeaLantern: case Material.SeaLantern:
case Material.SeaPickle: case Material.SeaPickle:
case Material.Shroomlight:
case Material.ShulkerBox: case Material.ShulkerBox:
case Material.SkeletonSkull: case Material.SkeletonSkull:
case Material.SkeletonWallSkull: case Material.SkeletonWallSkull:
@ -558,6 +689,8 @@ namespace MinecraftClient.Mapping
case Material.SmoothStone: case Material.SmoothStone:
case Material.SmoothStoneSlab: case Material.SmoothStoneSlab:
case Material.SnowBlock: case Material.SnowBlock:
case Material.SoulCampfire:
case Material.SoulLantern:
case Material.SoulSand: case Material.SoulSand:
case Material.SoulSoil: case Material.SoulSoil:
case Material.Spawner: case Material.Spawner:
@ -568,32 +701,43 @@ namespace MinecraftClient.Mapping
case Material.SpruceLeaves: case Material.SpruceLeaves:
case Material.SpruceLog: case Material.SpruceLog:
case Material.SprucePlanks: case Material.SprucePlanks:
case Material.SprucePressurePlate:
case Material.SpruceSign:
case Material.SpruceSlab: case Material.SpruceSlab:
case Material.SpruceStairs: case Material.SpruceStairs:
case Material.SpruceTrapdoor: case Material.SpruceTrapdoor:
case Material.SpruceWallSign:
case Material.SpruceWood: case Material.SpruceWood:
case Material.StickyPiston: case Material.StickyPiston:
case Material.Stone: case Material.Stone:
case Material.StoneBricks:
case Material.StoneBrickSlab: case Material.StoneBrickSlab:
case Material.StoneBrickStairs: case Material.StoneBrickStairs:
case Material.StoneBrickWall: case Material.StoneBrickWall:
case Material.StoneBricks: case Material.Stonecutter:
case Material.StonePressurePlate:
case Material.StoneSlab: case Material.StoneSlab:
case Material.StoneStairs: case Material.StoneStairs:
case Material.Stonecutter:
case Material.StrippedAcaciaLog: case Material.StrippedAcaciaLog:
case Material.StrippedAcaciaWood: case Material.StrippedAcaciaWood:
case Material.StrippedBirchLog: case Material.StrippedBirchLog:
case Material.StrippedBirchWood: case Material.StrippedBirchWood:
case Material.StrippedCrimsonHyphae:
case Material.StrippedCrimsonStem:
case Material.StrippedDarkOakLog: case Material.StrippedDarkOakLog:
case Material.StrippedDarkOakWood: case Material.StrippedDarkOakWood:
case Material.StrippedJungleLog: case Material.StrippedJungleLog:
case Material.StrippedJungleWood: case Material.StrippedJungleWood:
case Material.StrippedMangroveLog:
case Material.StrippedMangroveWood:
case Material.StrippedOakLog: case Material.StrippedOakLog:
case Material.StrippedOakWood: case Material.StrippedOakWood:
case Material.StrippedSpruceLog: case Material.StrippedSpruceLog:
case Material.StrippedSpruceWood: case Material.StrippedSpruceWood:
case Material.StrippedWarpedHyphae:
case Material.StrippedWarpedStem:
case Material.StructureBlock: case Material.StructureBlock:
case Material.Target:
case Material.Terracotta: case Material.Terracotta:
case Material.TintedGlass: case Material.TintedGlass:
case Material.Tnt: case Material.Tnt:
@ -601,6 +745,21 @@ namespace MinecraftClient.Mapping
case Material.TubeCoralBlock: case Material.TubeCoralBlock:
case Material.Tuff: case Material.Tuff:
case Material.TurtleEgg: case Material.TurtleEgg:
case Material.VerdantFroglight:
case Material.WarpedDoor:
case Material.WarpedFence:
case Material.WarpedFenceGate:
case Material.WarpedHyphae:
case Material.WarpedNylium:
case Material.WarpedPlanks:
case Material.WarpedPressurePlate:
case Material.WarpedSign:
case Material.WarpedSlab:
case Material.WarpedStairs:
case Material.WarpedStem:
case Material.WarpedTrapdoor:
case Material.WarpedWallSign:
case Material.WarpedWartBlock:
case Material.WaterCauldron: case Material.WaterCauldron:
case Material.WaxedCopperBlock: case Material.WaxedCopperBlock:
case Material.WaxedCutCopper: case Material.WaxedCutCopper:
@ -623,6 +782,7 @@ namespace MinecraftClient.Mapping
case Material.WeatheredCutCopperSlab: case Material.WeatheredCutCopperSlab:
case Material.WeatheredCutCopperStairs: case Material.WeatheredCutCopperStairs:
case Material.WetSponge: case Material.WetSponge:
case Material.WhiteBanner:
case Material.WhiteBed: case Material.WhiteBed:
case Material.WhiteCandle: case Material.WhiteCandle:
case Material.WhiteCandleCake: case Material.WhiteCandleCake:
@ -633,9 +793,11 @@ namespace MinecraftClient.Mapping
case Material.WhiteStainedGlass: case Material.WhiteStainedGlass:
case Material.WhiteStainedGlassPane: case Material.WhiteStainedGlassPane:
case Material.WhiteTerracotta: case Material.WhiteTerracotta:
case Material.WhiteWallBanner:
case Material.WhiteWool: case Material.WhiteWool:
case Material.WitherSkeletonSkull: case Material.WitherSkeletonSkull:
case Material.WitherSkeletonWallSkull: case Material.WitherSkeletonWallSkull:
case Material.YellowBanner:
case Material.YellowBed: case Material.YellowBed:
case Material.YellowCandle: case Material.YellowCandle:
case Material.YellowCandleCake: case Material.YellowCandleCake:
@ -646,10 +808,10 @@ namespace MinecraftClient.Mapping
case Material.YellowStainedGlass: case Material.YellowStainedGlass:
case Material.YellowStainedGlassPane: case Material.YellowStainedGlassPane:
case Material.YellowTerracotta: case Material.YellowTerracotta:
case Material.YellowWallBanner:
case Material.YellowWool: case Material.YellowWool:
case Material.ZombieHead: case Material.ZombieHead:
case Material.ZombieWallHead: case Material.ZombieWallHead:
case Material.AcaciaDoor:
return true; return true;
default: default:
return false; return false;

View file

@ -462,11 +462,37 @@ namespace MinecraftClient.Mapping
/// <returns>True if the specified location is on the ground</returns> /// <returns>True if the specified location is on the ground</returns>
public static bool IsOnGround(World world, Location location) public static bool IsOnGround(World world, Location location)
{ {
if (world.GetChunkColumn(location) == null || world.GetChunkColumn(location).FullyLoaded == false) ChunkColumn? chunkColumn = world.GetChunkColumn(location);
if (chunkColumn == null || chunkColumn.FullyLoaded == false)
return true; // avoid moving downward in a not loaded chunk return true; // avoid moving downward in a not loaded chunk
return world.GetBlock(Move(location, Direction.Down)).Type.IsSolid() Location down = Move(location, Direction.Down);
&& (location.Y <= Math.Truncate(location.Y) + 0.0001);
bool result = world.GetBlock(down).Type.IsSolid();
bool northCheck = 1 + Math.Floor(down.Z) - down.Z > 0.7;
bool eastCheck = down.X - Math.Floor(down.X) > 0.7;
bool southCheck = down.Z - Math.Floor(down.Z) > 0.7;
bool westCheck = 1 + Math.Floor(down.X) - down.X > 0.7;
if (!result && northCheck)
result |= world.GetBlock(Move(down, Direction.North)).Type.IsSolid();
if (!result && northCheck && eastCheck)
result |= world.GetBlock(Move(down, Direction.NorthEast)).Type.IsSolid();
if (!result && eastCheck)
result |= world.GetBlock(Move(down, Direction.East)).Type.IsSolid();
if (!result && eastCheck && southCheck)
result |= world.GetBlock(Move(down, Direction.SouthEast)).Type.IsSolid();
if (!result && southCheck)
result |= world.GetBlock(Move(down, Direction.South)).Type.IsSolid();
if (!result && southCheck && westCheck)
result |= world.GetBlock(Move(down, Direction.SouthWest)).Type.IsSolid();
if (!result && westCheck)
result |= world.GetBlock(Move(down, Direction.West)).Type.IsSolid();
if (!result && westCheck && northCheck)
result |= world.GetBlock(Move(down, Direction.NorthWest)).Type.IsSolid();
return result && (location.Y <= Math.Truncate(location.Y) + 0.0001);
} }
/// <summary> /// <summary>