mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
781 lines
27 KiB
C#
781 lines
27 KiB
C#
using MinecraftClient.Inventory;
|
|
using System.Collections.Generic;
|
|
|
|
namespace MinecraftClient.Mapping
|
|
{
|
|
public static class Material2Tool
|
|
{
|
|
// Made with the following ressources: https://minecraft.fandom.com/wiki/Breaking
|
|
// Sorted in alphabetical order.
|
|
// Minable by Any Pickaxe.
|
|
private static readonly List<Material> pickaxeTier0 = new List<Material>()
|
|
{
|
|
Material.ActivatorRail,
|
|
Material.Andesite,
|
|
Material.AndesiteSlab,
|
|
Material.AndesiteStairs,
|
|
Material.AndesiteWall,
|
|
Material.Anvil,
|
|
Material.Basalt,
|
|
Material.Bell,
|
|
Material.BlackConcrete,
|
|
Material.BlackGlazedTerracotta,
|
|
Material.BlackShulkerBox,
|
|
Material.BlackTerracotta,
|
|
Material.Blackstone,
|
|
Material.BlackstoneSlab,
|
|
Material.BlackstoneStairs,
|
|
Material.BlackstoneWall,
|
|
Material.BlastFurnace,
|
|
Material.BlueConcrete,
|
|
Material.BlueGlazedTerracotta,
|
|
Material.BlueIce,
|
|
Material.BlueShulkerBox,
|
|
Material.BlueTerracotta,
|
|
Material.BoneBlock,
|
|
Material.BrewingStand,
|
|
Material.BrickSlab,
|
|
Material.BrickStairs,
|
|
Material.BrickWall,
|
|
Material.Bricks,
|
|
Material.BrownConcrete,
|
|
Material.BrownGlazedTerracotta,
|
|
Material.BrownShulkerBox,
|
|
Material.BrownTerracotta,
|
|
Material.Cauldron,
|
|
Material.WaterCauldron,
|
|
Material.LavaCauldron,
|
|
Material.PowderSnowCauldron,
|
|
Material.Chain,
|
|
Material.Calcite,
|
|
Material.ChippedAnvil,
|
|
Material.ChiseledDeepslate,
|
|
Material.ChiseledNetherBricks,
|
|
Material.ChiseledPolishedBlackstone,
|
|
Material.ChiseledQuartzBlock,
|
|
Material.ChiseledRedSandstone,
|
|
Material.ChiseledSandstone,
|
|
Material.ChiseledStoneBricks,
|
|
Material.CoalBlock,
|
|
Material.CoalOre,
|
|
Material.CobbledDeepslateSlab,
|
|
Material.CobbledDeepslateStairs,
|
|
Material.CobbledDeepslateWall,
|
|
Material.CobbledDeepslate,
|
|
Material.Cobblestone,
|
|
Material.CobblestoneSlab,
|
|
Material.CobblestoneStairs,
|
|
Material.CobblestoneWall,
|
|
Material.Conduit,
|
|
Material.CrackedDeepslateBricks,
|
|
Material.CrackedDeepslateTiles,
|
|
Material.CrackedNetherBricks,
|
|
Material.CrackedPolishedBlackstoneBricks,
|
|
Material.CrackedStoneBricks,
|
|
Material.CrimsonNylium,
|
|
Material.CutRedSandstone,
|
|
Material.CutRedSandstoneSlab,
|
|
Material.CutSandstone,
|
|
Material.CutSandstoneSlab,
|
|
Material.CyanConcrete,
|
|
Material.CyanGlazedTerracotta,
|
|
Material.CyanShulkerBox,
|
|
Material.CyanTerracotta,
|
|
Material.DamagedAnvil,
|
|
Material.DarkPrismarine,
|
|
Material.DarkPrismarineSlab,
|
|
Material.DarkPrismarineStairs,
|
|
Material.Deepslate,
|
|
Material.DeepslateBrickSlab,
|
|
Material.DeepslateBrickStairs,
|
|
Material.DeepslateBricks,
|
|
Material.DeepslateBrickWall,
|
|
Material.DeepslateCoalOre,
|
|
Material.DeepslateTileSlab,
|
|
Material.DeepslateTileStairs,
|
|
Material.DeepslateTiles,
|
|
Material.DeepslateTileWall,
|
|
Material.DetectorRail,
|
|
Material.Diorite,
|
|
Material.DioriteSlab,
|
|
Material.DioriteStairs,
|
|
Material.DioriteWall,
|
|
Material.DripstoneBlock,
|
|
Material.Dispenser,
|
|
Material.Dropper,
|
|
Material.EnchantingTable,
|
|
Material.EndRod,
|
|
Material.EndStone,
|
|
Material.EndStoneBrickSlab,
|
|
Material.EndStoneBrickStairs,
|
|
Material.EndStoneBrickWall,
|
|
Material.EndStoneBricks,
|
|
Material.EnderChest,
|
|
Material.FrostedIce,
|
|
Material.Furnace,
|
|
Material.GildedBlackstone,
|
|
Material.Glowstone,
|
|
Material.Granite,
|
|
Material.GraniteSlab,
|
|
Material.GraniteStairs,
|
|
Material.GraniteWall,
|
|
Material.GrayConcrete,
|
|
Material.GrayGlazedTerracotta,
|
|
Material.GrayShulkerBox,
|
|
Material.GrayTerracotta,
|
|
Material.GreenConcrete,
|
|
Material.GreenGlazedTerracotta,
|
|
Material.GreenShulkerBox,
|
|
Material.GreenTerracotta,
|
|
Material.Grindstone,
|
|
Material.HeavyWeightedPressurePlate,
|
|
Material.Hopper,
|
|
Material.Ice,
|
|
Material.IronBars,
|
|
Material.IronDoor,
|
|
Material.IronTrapdoor,
|
|
Material.Lantern,
|
|
Material.LightBlueConcrete,
|
|
Material.LightBlueGlazedTerracotta,
|
|
Material.LightBlueShulkerBox,
|
|
Material.LightBlueTerracotta,
|
|
Material.LightGrayConcrete,
|
|
Material.LightGrayGlazedTerracotta,
|
|
Material.LightGrayShulkerBox,
|
|
Material.LightGrayTerracotta,
|
|
Material.LightWeightedPressurePlate,
|
|
Material.LimeConcrete,
|
|
Material.LimeGlazedTerracotta,
|
|
Material.LimeShulkerBox,
|
|
Material.LimeTerracotta,
|
|
Material.Lodestone,
|
|
Material.MagentaConcrete,
|
|
Material.MagentaGlazedTerracotta,
|
|
Material.MagentaShulkerBox,
|
|
Material.MagentaTerracotta,
|
|
Material.MagmaBlock,
|
|
Material.MossyCobblestone,
|
|
Material.MossyCobblestoneSlab,
|
|
Material.MossyCobblestoneStairs,
|
|
Material.MossyCobblestoneWall,
|
|
Material.MossyStoneBrickSlab,
|
|
Material.MossyStoneBrickStairs,
|
|
Material.MossyStoneBrickWall,
|
|
Material.MossyStoneBricks,
|
|
Material.NetherBrickFence,
|
|
Material.NetherBrickSlab,
|
|
Material.NetherBrickStairs,
|
|
Material.NetherBrickWall,
|
|
Material.NetherBricks,
|
|
Material.NetherGoldOre,
|
|
Material.NetherQuartzOre,
|
|
Material.Netherrack,
|
|
Material.Observer,
|
|
Material.OrangeConcrete,
|
|
Material.OrangeGlazedTerracotta,
|
|
Material.OrangeShulkerBox,
|
|
Material.OrangeTerracotta,
|
|
Material.PackedIce,
|
|
Material.PetrifiedOakSlab,
|
|
Material.PinkConcrete,
|
|
Material.PinkGlazedTerracotta,
|
|
Material.PinkShulkerBox,
|
|
Material.PinkTerracotta,
|
|
Material.Piston,
|
|
Material.PointedDripstone,
|
|
Material.PolishedAndesite,
|
|
Material.PolishedAndesiteSlab,
|
|
Material.PolishedAndesiteStairs,
|
|
Material.PolishedBasalt,
|
|
Material.PolishedBlackstone,
|
|
Material.PolishedBlackstoneBrickSlab,
|
|
Material.PolishedBlackstoneBrickStairs,
|
|
Material.PolishedBlackstoneBrickWall,
|
|
Material.PolishedBlackstoneBricks,
|
|
Material.PolishedBlackstoneButton,
|
|
Material.PolishedBlackstonePressurePlate,
|
|
Material.PolishedBlackstoneSlab,
|
|
Material.PolishedBlackstoneStairs,
|
|
Material.PolishedBlackstoneWall,
|
|
Material.PolishedDiorite,
|
|
Material.PolishedDioriteSlab,
|
|
Material.PolishedDioriteStairs,
|
|
Material.PolishedGranite,
|
|
Material.PolishedGraniteSlab,
|
|
Material.PolishedGraniteStairs,
|
|
Material.PoweredRail,
|
|
Material.Prismarine,
|
|
Material.PrismarineBrickSlab,
|
|
Material.PrismarineBrickStairs,
|
|
Material.PrismarineBricks,
|
|
Material.PrismarineSlab,
|
|
Material.PrismarineStairs,
|
|
Material.PrismarineWall,
|
|
Material.PurpleConcrete,
|
|
Material.PurpleGlazedTerracotta,
|
|
Material.PurpleShulkerBox,
|
|
Material.PurpleTerracotta,
|
|
Material.PurpurBlock,
|
|
Material.PurpurPillar,
|
|
Material.PurpurSlab,
|
|
Material.PurpurStairs,
|
|
Material.QuartzBlock,
|
|
Material.QuartzBricks,
|
|
Material.QuartzPillar,
|
|
Material.QuartzSlab,
|
|
Material.QuartzStairs,
|
|
Material.Rail,
|
|
Material.RedConcrete,
|
|
Material.RedGlazedTerracotta,
|
|
Material.RedNetherBrickSlab,
|
|
Material.RedNetherBrickStairs,
|
|
Material.RedNetherBrickWall,
|
|
Material.RedNetherBricks,
|
|
Material.RedSandstone,
|
|
Material.RedSandstoneSlab,
|
|
Material.RedSandstoneStairs,
|
|
Material.RedSandstoneWall,
|
|
Material.RedShulkerBox,
|
|
Material.RedTerracotta,
|
|
Material.RedstoneBlock,
|
|
Material.Sandstone,
|
|
Material.SandstoneSlab,
|
|
Material.SandstoneStairs,
|
|
Material.SandstoneWall,
|
|
Material.ShulkerBox,
|
|
Material.Smoker,
|
|
Material.SmoothBasalt,
|
|
Material.SmoothQuartz,
|
|
Material.SmoothQuartzSlab,
|
|
Material.SmoothQuartzStairs,
|
|
Material.SmoothRedSandstone,
|
|
Material.SmoothRedSandstoneSlab,
|
|
Material.SmoothRedSandstoneStairs,
|
|
Material.SmoothSandstone,
|
|
Material.SmoothSandstoneSlab,
|
|
Material.SmoothSandstoneStairs,
|
|
Material.SmoothStone,
|
|
Material.SmoothStoneSlab,
|
|
Material.Spawner,
|
|
Material.StickyPiston,
|
|
Material.Stone,
|
|
Material.StoneBrickSlab,
|
|
Material.StoneBrickStairs,
|
|
Material.StoneBrickWall,
|
|
Material.StoneBricks,
|
|
Material.StoneButton,
|
|
Material.StonePressurePlate,
|
|
Material.StoneSlab,
|
|
Material.StoneStairs,
|
|
Material.Stonecutter,
|
|
Material.Terracotta,
|
|
Material.Tuff,
|
|
Material.WarpedNylium,
|
|
Material.WhiteConcrete,
|
|
Material.WhiteGlazedTerracotta,
|
|
Material.WhiteShulkerBox,
|
|
Material.WhiteTerracotta,
|
|
Material.YellowConcrete,
|
|
Material.YellowGlazedTerracotta,
|
|
Material.YellowShulkerBox,
|
|
Material.YellowTerracotta,
|
|
};
|
|
// Minable by Stone, iron, diamond, netherite.
|
|
private static readonly List<Material> pickaxeTier1 = new List<Material>()
|
|
{
|
|
Material.CopperOre,
|
|
Material.CopperBlock,
|
|
Material.CutCopperSlab,
|
|
Material.CutCopperStairs,
|
|
Material.CutCopper,
|
|
Material.DeepslateCopperOre,
|
|
Material.DeepslateIronOre,
|
|
Material.DeepslateLapisOre,
|
|
Material.ExposedCopper,
|
|
Material.ExposedCutCopperSlab,
|
|
Material.ExposedCutCopperStairs,
|
|
Material.ExposedCutCopper,
|
|
Material.IronBlock,
|
|
Material.IronOre,
|
|
Material.LapisBlock,
|
|
Material.LapisOre,
|
|
Material.LightningRod,
|
|
Material.OxidizedCopper,
|
|
Material.OxidizedCutCopperSlab,
|
|
Material.OxidizedCutCopperStairs,
|
|
Material.OxidizedCutCopper,
|
|
Material.RawCopperBlock,
|
|
Material.RawIronBlock,
|
|
Material.Terracotta,
|
|
Material.WaxedCopperBlock,
|
|
Material.WaxedCutCopperSlab,
|
|
Material.WaxedCutCopperStairs,
|
|
Material.WaxedCutCopper,
|
|
Material.WaxedExposedCopper,
|
|
Material.WaxedExposedCutCopperSlab,
|
|
Material.WaxedExposedCutCopperStairs,
|
|
Material.WaxedExposedCutCopper,
|
|
Material.WaxedOxidizedCopper,
|
|
Material.WaxedOxidizedCutCopperSlab,
|
|
Material.WaxedOxidizedCutCopperStairs,
|
|
Material.WaxedOxidizedCutCopper,
|
|
Material.WaxedWeatheredCopper,
|
|
Material.WaxedWeatheredCutCopperSlab,
|
|
Material.WaxedWeatheredCutCopperStairs,
|
|
Material.WaxedWeatheredCutCopper,
|
|
Material.WeatheredCopper,
|
|
Material.WeatheredCutCopperSlab,
|
|
Material.WeatheredCutCopperStairs,
|
|
Material.WeatheredCutCopper,
|
|
};
|
|
// Minable by Iron, diamond, netherite.
|
|
private static readonly List<Material> pickaxeTier2 = new List<Material>()
|
|
{
|
|
Material.DeepslateDiamondOre,
|
|
Material.DeepslateEmeraldOre,
|
|
Material.DeepslateGoldOre,
|
|
Material.DeepslateRedstoneOre,
|
|
Material.DiamondBlock,
|
|
Material.DiamondOre,
|
|
Material.EmeraldBlock,
|
|
Material.EmeraldOre,
|
|
Material.GoldBlock,
|
|
Material.GoldOre,
|
|
Material.RawGoldBlock,
|
|
Material.RedstoneOre,
|
|
};
|
|
// Minable by Diamond, Netherite.
|
|
private static readonly List<Material> pickaxeTier3 = new List<Material>()
|
|
{
|
|
Material.AncientDebris,
|
|
Material.CryingObsidian,
|
|
Material.NetheriteBlock,
|
|
Material.Obsidian,
|
|
Material.RespawnAnchor
|
|
};
|
|
|
|
// Every shovel can mine every block (speed difference).
|
|
private static readonly List<Material> shovel = new List<Material>()
|
|
{
|
|
Material.BlackConcretePowder,
|
|
Material.BlueConcretePowder,
|
|
Material.BrownConcretePowder,
|
|
Material.Clay,
|
|
Material.CoarseDirt,
|
|
Material.CyanConcretePowder,
|
|
Material.Dirt,
|
|
Material.Farmland,
|
|
Material.Grass,
|
|
Material.GrassBlock,
|
|
Material.GrassPath,
|
|
Material.Gravel,
|
|
Material.GrayConcretePowder,
|
|
Material.GreenConcretePowder,
|
|
Material.LightBlueConcretePowder,
|
|
Material.LightGrayConcretePowder,
|
|
Material.LimeConcretePowder,
|
|
Material.MagentaConcretePowder,
|
|
Material.Mycelium,
|
|
Material.OrangeConcretePowder,
|
|
Material.PinkConcretePowder,
|
|
Material.Podzol,
|
|
Material.PrismarineSlab,
|
|
Material.PurpleConcretePowder,
|
|
Material.RedConcretePowder,
|
|
Material.RedSand,
|
|
Material.RootedDirt,
|
|
Material.Sand,
|
|
Material.Snow,
|
|
Material.SnowBlock,
|
|
Material.SoulSand,
|
|
Material.SoulSoil,
|
|
Material.WhiteConcretePowder,
|
|
Material.YellowConcretePowder,
|
|
};
|
|
// Every axe can mine every block (speed difference).
|
|
private static readonly List<Material> axe = new List<Material>()
|
|
{
|
|
Material.AcaciaButton,
|
|
Material.AcaciaDoor,
|
|
Material.AcaciaFence,
|
|
Material.AcaciaFenceGate,
|
|
Material.AcaciaLog,
|
|
Material.AcaciaPlanks,
|
|
Material.AcaciaPressurePlate,
|
|
Material.AcaciaSign,
|
|
Material.AcaciaSlab,
|
|
Material.AcaciaStairs,
|
|
Material.AcaciaTrapdoor,
|
|
Material.AcaciaWallSign,
|
|
Material.AcaciaWood,
|
|
Material.Barrel,
|
|
Material.BeeNest,
|
|
Material.Beehive,
|
|
Material.BigDripleaf,
|
|
Material.BirchButton,
|
|
Material.BirchDoor,
|
|
Material.BirchFence,
|
|
Material.BirchFenceGate,
|
|
Material.BirchLog,
|
|
Material.BirchPlanks,
|
|
Material.BirchPressurePlate,
|
|
Material.BirchSign,
|
|
Material.BirchSlab,
|
|
Material.BirchStairs,
|
|
Material.BirchTrapdoor,
|
|
Material.BirchWallSign,
|
|
Material.BirchWood,
|
|
Material.BlackBanner,
|
|
Material.BlackWallBanner,
|
|
Material.BlueBanner,
|
|
Material.BlueWallBanner,
|
|
Material.Bookshelf,
|
|
Material.BrownBanner,
|
|
Material.BrownMushroomBlock,
|
|
Material.BrownWallBanner,
|
|
Material.Campfire,
|
|
Material.CartographyTable,
|
|
Material.Chest,
|
|
Material.Cocoa,
|
|
Material.Composter,
|
|
Material.CraftingTable,
|
|
Material.CrimsonButton,
|
|
Material.CrimsonDoor,
|
|
Material.CrimsonFence,
|
|
Material.CrimsonFenceGate,
|
|
Material.CrimsonHyphae,
|
|
Material.CrimsonPlanks,
|
|
Material.CrimsonPressurePlate,
|
|
Material.CrimsonSign,
|
|
Material.CrimsonSlab,
|
|
Material.CrimsonStairs,
|
|
Material.CrimsonStem,
|
|
Material.CrimsonTrapdoor,
|
|
Material.CrimsonWallSign,
|
|
Material.CyanBanner,
|
|
Material.CyanWallBanner,
|
|
Material.DarkOakButton,
|
|
Material.DarkOakDoor,
|
|
Material.DarkOakFence,
|
|
Material.DarkOakFenceGate,
|
|
Material.DarkOakLog,
|
|
Material.DarkOakPlanks,
|
|
Material.DarkOakPressurePlate,
|
|
Material.DarkOakSign,
|
|
Material.DarkOakSlab,
|
|
Material.DarkOakStairs,
|
|
Material.DarkOakTrapdoor,
|
|
Material.DarkOakWallSign,
|
|
Material.DarkOakWood,
|
|
Material.DaylightDetector,
|
|
Material.FletchingTable,
|
|
Material.GrayBanner,
|
|
Material.GrayWallBanner,
|
|
Material.GreenBanner,
|
|
Material.GreenWallBanner,
|
|
Material.JackOLantern,
|
|
Material.Jukebox,
|
|
Material.JungleButton,
|
|
Material.JungleDoor,
|
|
Material.JungleFence,
|
|
Material.JungleFenceGate,
|
|
Material.JungleLog,
|
|
Material.JunglePlanks,
|
|
Material.JunglePressurePlate,
|
|
Material.JungleSign,
|
|
Material.JungleSlab,
|
|
Material.JungleStairs,
|
|
Material.JungleTrapdoor,
|
|
Material.JungleWallSign,
|
|
Material.JungleWood,
|
|
Material.Ladder,
|
|
Material.Lectern,
|
|
Material.LightBlueBanner,
|
|
Material.LightBlueWallBanner,
|
|
Material.LightGrayBanner,
|
|
Material.LightGrayWallBanner,
|
|
Material.LimeBanner,
|
|
Material.LimeWallBanner,
|
|
Material.Loom,
|
|
Material.MagentaBanner,
|
|
Material.MagentaWallBanner,
|
|
Material.Melon,
|
|
Material.MushroomStem,
|
|
Material.NoteBlock,
|
|
Material.OakButton,
|
|
Material.OakDoor,
|
|
Material.OakFence,
|
|
Material.OakFenceGate,
|
|
Material.OakLog,
|
|
Material.OakPlanks,
|
|
Material.OakPressurePlate,
|
|
Material.OakSign,
|
|
Material.OakSlab,
|
|
Material.OakStairs,
|
|
Material.OakTrapdoor,
|
|
Material.OakWallSign,
|
|
Material.OakWood,
|
|
Material.OrangeBanner,
|
|
Material.OrangeWallBanner,
|
|
Material.PinkBanner,
|
|
Material.PinkWallBanner,
|
|
Material.Pumpkin,
|
|
Material.PurpleBanner,
|
|
Material.PurpleWallBanner,
|
|
Material.RedBanner,
|
|
Material.RedMushroomBlock,
|
|
Material.RedWallBanner,
|
|
Material.SmithingTable,
|
|
Material.SoulCampfire,
|
|
Material.SpruceButton,
|
|
Material.SpruceDoor,
|
|
Material.SpruceFence,
|
|
Material.SpruceFenceGate,
|
|
Material.SpruceLog,
|
|
Material.SprucePlanks,
|
|
Material.SprucePressurePlate,
|
|
Material.SpruceSign,
|
|
Material.SpruceSlab,
|
|
Material.SpruceStairs,
|
|
Material.SpruceTrapdoor,
|
|
Material.SpruceWallSign,
|
|
Material.SpruceWood,
|
|
Material.StrippedAcaciaLog,
|
|
Material.StrippedAcaciaWood,
|
|
Material.StrippedBirchLog,
|
|
Material.StrippedBirchWood,
|
|
Material.StrippedCrimsonHyphae,
|
|
Material.StrippedCrimsonStem,
|
|
Material.StrippedDarkOakLog,
|
|
Material.StrippedDarkOakWood,
|
|
Material.StrippedDarkOakWood,
|
|
Material.StrippedJungleLog,
|
|
Material.StrippedJungleWood,
|
|
Material.StrippedOakLog,
|
|
Material.StrippedOakWood,
|
|
Material.StrippedSpruceLog,
|
|
Material.StrippedSpruceWood,
|
|
Material.StrippedWarpedHyphae,
|
|
Material.StrippedWarpedStem,
|
|
Material.TrappedChest,
|
|
Material.Vine,
|
|
Material.WarpedButton,
|
|
Material.WarpedDoor,
|
|
Material.WarpedFence,
|
|
Material.WarpedFenceGate,
|
|
Material.WarpedHyphae,
|
|
Material.WarpedPlanks,
|
|
Material.WarpedPressurePlate,
|
|
Material.WarpedSign,
|
|
Material.WarpedSlab,
|
|
Material.WarpedStairs,
|
|
Material.WarpedStem,
|
|
Material.WarpedTrapdoor,
|
|
Material.WarpedWallSign,
|
|
Material.WhiteBanner,
|
|
Material.WhiteWallBanner,
|
|
Material.YellowBanner,
|
|
Material.YellowWallBanner,
|
|
};
|
|
// Every block a shear can mine.
|
|
private static readonly List<Material> shears = new List<Material>()
|
|
{
|
|
Material.AcaciaLeaves,
|
|
Material.AzaleaLeaves,
|
|
Material.BirchLeaves,
|
|
Material.BlackWool,
|
|
Material.BlueWool,
|
|
Material.BrownWool,
|
|
Material.Cobweb,
|
|
Material.CyanWool,
|
|
Material.DarkOakLeaves,
|
|
Material.FloweringAzaleaLeaves,
|
|
Material.GrayWool,
|
|
Material.GreenWool,
|
|
Material.JungleLeaves,
|
|
Material.LightBlueWool,
|
|
Material.LightGrayWool,
|
|
Material.LimeWool,
|
|
Material.MagentaWool,
|
|
Material.OakLeaves,
|
|
Material.OrangeWool,
|
|
Material.PinkWool,
|
|
Material.PurpleWool,
|
|
Material.RedWool,
|
|
Material.SpruceLeaves,
|
|
Material.WhiteWool,
|
|
Material.YellowWool,
|
|
};
|
|
// Every block that is mined with a sword.
|
|
private static readonly List<Material> sword = new List<Material>()
|
|
{
|
|
Material.Bamboo,
|
|
Material.Cobweb,
|
|
Material.InfestedChiseledStoneBricks,
|
|
Material.InfestedDeepslate,
|
|
Material.InfestedCobblestone,
|
|
Material.InfestedCrackedStoneBricks,
|
|
Material.InfestedMossyStoneBricks,
|
|
Material.InfestedStone,
|
|
Material.InfestedStoneBricks,
|
|
};
|
|
// Every block that can be mined with a hoe.
|
|
private static readonly List<Material> hoe = new List<Material>()
|
|
{
|
|
Material.AcaciaLeaves,
|
|
Material.BirchLeaves,
|
|
Material.DarkOakLeaves,
|
|
Material.HayBlock,
|
|
Material.JungleLeaves,
|
|
Material.MossBlock,
|
|
Material.NetherWartBlock,
|
|
Material.OakLeaves,
|
|
Material.SculkSensor,
|
|
Material.Shroomlight,
|
|
Material.Sponge,
|
|
Material.SpruceLeaves,
|
|
Material.Target,
|
|
Material.WarpedWartBlock,
|
|
Material.WetSponge,
|
|
};
|
|
// Liquids
|
|
private static readonly List<Material> bucket = new List<Material>()
|
|
{
|
|
Material.Lava,
|
|
Material.Water
|
|
};
|
|
|
|
// Unbreakable Blocks
|
|
private static readonly List<Material> unbreakable = new List<Material>()
|
|
{
|
|
Material.Air,
|
|
Material.Barrier,
|
|
Material.Bedrock,
|
|
Material.BubbleColumn,
|
|
Material.ChainCommandBlock,
|
|
Material.CommandBlock,
|
|
Material.EndGateway,
|
|
Material.EndPortal,
|
|
Material.EndPortalFrame,
|
|
Material.Jigsaw,
|
|
Material.NetherPortal,
|
|
Material.RepeatingCommandBlock,
|
|
Material.StructureBlock,
|
|
Material.StructureVoid
|
|
};
|
|
|
|
/// <summary>
|
|
/// Evaluates the right tool for the job
|
|
/// </summary>
|
|
/// <param name="block">Enter the Material of a block</param>
|
|
/// <returns>Returns a list of tools that can be used, best to worst</returns>
|
|
public static ItemType[] GetCorrectToolForBlock(Material block)
|
|
{
|
|
if (pickaxeTier0.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheritePickaxe,
|
|
ItemType.DiamondPickaxe,
|
|
ItemType.IronPickaxe,
|
|
ItemType.GoldenPickaxe,
|
|
ItemType.StonePickaxe,
|
|
ItemType.WoodenPickaxe,
|
|
};
|
|
}
|
|
else if (pickaxeTier1.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheritePickaxe,
|
|
ItemType.DiamondPickaxe,
|
|
ItemType.IronPickaxe,
|
|
ItemType.GoldenPickaxe,
|
|
ItemType.StonePickaxe,
|
|
};
|
|
}
|
|
else if (pickaxeTier2.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheritePickaxe,
|
|
ItemType.DiamondPickaxe,
|
|
ItemType.IronPickaxe,
|
|
};
|
|
}
|
|
else if (pickaxeTier3.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheritePickaxe,
|
|
ItemType.DiamondPickaxe,
|
|
};
|
|
}
|
|
else if (shovel.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheriteShovel,
|
|
ItemType.DiamondShovel,
|
|
ItemType.IronShovel,
|
|
ItemType.GoldenShovel,
|
|
ItemType.StoneShovel,
|
|
ItemType.WoodenShovel,
|
|
};
|
|
}
|
|
else if (axe.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheriteAxe,
|
|
ItemType.DiamondAxe,
|
|
ItemType.IronAxe,
|
|
ItemType.GoldenAxe,
|
|
ItemType.StoneAxe,
|
|
ItemType.WoodenAxe,
|
|
};
|
|
}
|
|
else if (shears.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.Shears,
|
|
};
|
|
}
|
|
else if (sword.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheriteSword,
|
|
ItemType.DiamondSword,
|
|
ItemType.IronSword,
|
|
ItemType.GoldenSword,
|
|
ItemType.StoneSword,
|
|
ItemType.WoodenSword,
|
|
};
|
|
}
|
|
else if (hoe.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.NetheriteHoe,
|
|
ItemType.DiamondHoe,
|
|
ItemType.IronHoe,
|
|
ItemType.GoldenHoe,
|
|
ItemType.StoneHoe,
|
|
ItemType.WoodenHoe,
|
|
};
|
|
}
|
|
else if (bucket.Contains(block))
|
|
{
|
|
return new ItemType[]
|
|
{
|
|
ItemType.Bucket,
|
|
};
|
|
}
|
|
else { return new ItemType[0]; }
|
|
}
|
|
|
|
public static bool IsUnbreakable(Material block) { return unbreakable.Contains(block); }
|
|
}
|
|
}
|