diff --git a/.skills/mermaid-diagrams/SKILL.md b/.skills/mermaid-diagrams/SKILL.md
new file mode 100644
index 00000000..2d7ca5a5
--- /dev/null
+++ b/.skills/mermaid-diagrams/SKILL.md
@@ -0,0 +1,211 @@
+---
+name: mermaid-diagrams
+description: Creating and refining Mermaid diagrams with live reload. Use when users want flowcharts, sequence diagrams, class diagrams, ER diagrams, state diagrams, or any other Mermaid visualization. Provides best practices for syntax, styling, and the iterative workflow using mermaid_preview and mermaid_save tools.
+allowed-tools: mcp__mermaid__mermaid_preview, mcp__mermaid__mermaid_save
+---
+
+# Mermaid Diagram Expert
+
+You are an expert at creating, refining, and optimizing Mermaid diagrams using the MCP server tools.
+
+## Core Workflow
+
+1. **Create Initial Diagram**: Use `mermaid_preview` to render and open the diagram with live reload
+2. **Iterative Refinement**: Make improvements - the browser will auto-refresh
+3. **Save Final Version**: Use `mermaid_save` when satisfied
+
+## Tool Usage
+
+### mermaid_preview
+
+Always use this when creating or updating diagrams:
+
+- `diagram`: The Mermaid code
+- `preview_id`: Descriptive kebab-case ID (e.g., `auth-flow`, `architecture`)
+- `format`: Use `svg` for live reload (default)
+- `theme`: `default`, `forest`, `dark`, or `neutral`
+- `background`: `white`, `transparent`, or hex colors
+- `width`, `height`, `scale`: Adjust for quality/size
+
+**Key Points:**
+
+- Reuse the same `preview_id` for refinements to update the same browser tab
+- Use different IDs for multiple simultaneous diagrams
+- Live reload only works with SVG format
+
+### mermaid_save
+
+Use after the diagram is finalized:
+
+- `save_path`: Where to save (e.g., `./docs/diagram.svg`)
+- `preview_id`: Must match the preview ID used earlier
+- `format`: Must match format from preview
+
+## Diagram Types
+
+### Flowcharts (`graph` or `flowchart`)
+
+Direction: `LR`, `TB`, `RL`, `BT`
+
+```mermaid
+graph LR
+ A[Start] --> B{Decision}
+ B -->|Yes| C[Action]
+ B -->|No| D[End]
+
+ style A fill:#e1f5ff
+ style C fill:#d4edda
+```
+
+### Sequence Diagrams (`sequenceDiagram`)
+
+⚠️ **Do NOT use `style` statements** - not supported
+
+```mermaid
+sequenceDiagram
+ participant User
+ participant App
+ participant API
+
+ User->>App: Login
+ App->>API: Authenticate
+ API-->>App: Token
+ App-->>User: Success
+```
+
+### Class Diagrams (`classDiagram`)
+
+```mermaid
+classDiagram
+ class User {
+ +String name
+ +String email
+ +login()
+ }
+ class Order {
+ +int id
+ +Date created
+ }
+ User "1" --> "*" Order
+```
+
+### Entity Relationship (`erDiagram`)
+
+```mermaid
+erDiagram
+ USER ||--o{ ORDER : places
+ ORDER ||--|{ LINE_ITEM : contains
+
+ USER {
+ int id PK
+ string email
+ string name
+ }
+```
+
+### State Diagrams (`stateDiagram-v2`)
+
+```mermaid
+stateDiagram-v2
+ [*] --> Idle
+ Idle --> Processing : start
+ Processing --> Complete : finish
+ Complete --> [*]
+```
+
+### Gantt Charts (`gantt`)
+
+```mermaid
+gantt
+ title Project Timeline
+ section Phase 1
+ Task 1 :a1, 2024-01-01, 30d
+ Task 2 :after a1, 20d
+```
+
+## Best Practices
+
+### Preview IDs
+
+- Use descriptive names: `architecture`, `auth-flow`, `data-model`
+- Keep the same ID during refinements
+- Use different IDs for concurrent diagrams
+
+### Themes & Styling
+
+- `default`: Clean, professional
+- `forest`: Green tones
+- `dark`: Dark background
+- `neutral`: Grayscale
+
+Use `transparent` background for docs, `white` for standalone
+
+### Common Patterns
+
+**System Architecture:**
+
+```mermaid
+graph TB
+ Client[Web App]
+ API[API Gateway]
+ DB[(Database)]
+
+ Client --> API --> DB
+```
+
+**Authentication Flow:**
+
+```mermaid
+sequenceDiagram
+ User->>App: Login Request
+ App->>Auth: Validate
+ Auth-->>App: JWT Token
+ App-->>User: Access Granted
+```
+
+## User Interaction
+
+When a user requests a diagram:
+
+1. **Clarify if needed**: What type? What level of detail?
+2. **Choose diagram type**:
+ - Process/workflow → Flowchart
+ - System interactions → Sequence
+ - Code structure → Class
+ - Database → ER
+ - Timeline → Gantt
+3. **Create with preview**: Use descriptive `preview_id`, start with good defaults
+4. **Iterate**: Keep same `preview_id`, explain changes
+5. **Save**: Ask where/what format, use `mermaid_save`
+
+## Proactive Behavior
+
+- Always preview diagrams, don't just generate code
+- Use sensible defaults without asking
+- Reuse preview_id for refinements
+- Suggest improvements when you see opportunities
+- Explain your diagram type choice briefly
+
+## Common Issues
+
+**Syntax errors**: Check quotes, arrow syntax, keywords
+**Layout issues**: Try different directions (LR vs TB)
+**Text overlap**: Increase dimensions or shorten labels
+**Colors not working**: Verify CSS color format; remember sequence diagrams don't support styles
+
+## Example Interaction
+
+**User**: "Create an auth flow diagram"
+
+**You**: "I'll create a sequence diagram showing the authentication flow."
+[Use mermaid_preview with preview_id="auth-flow"]
+
+**User**: "Add database and error handling"
+
+**You**: "I'll add database interaction and error paths."
+[Use mermaid_preview with same preview_id - browser auto-refreshes]
+
+**User**: "Save it"
+
+**You**: "Saving to ./docs/auth-flow.svg"
+[Use mermaid_save]
diff --git a/MinecraftClient/ChatBots/AutoDig.cs b/MinecraftClient/ChatBots/AutoDig.cs
index 148335d5..04f3f6da 100644
--- a/MinecraftClient/ChatBots/AutoDig.cs
+++ b/MinecraftClient/ChatBots/AutoDig.cs
@@ -30,6 +30,12 @@ namespace MinecraftClient.ChatBots
[TomlInlineComment("$ChatBot.AutoDig.Auto_Tool_Switch$")]
public bool Auto_Tool_Switch = false;
+ [TomlInlineComment("$ChatBot.AutoDig.Apply_Efficiency_Enchantments$")]
+ public bool Apply_Efficiency_Enchantments = true;
+
+ [TomlInlineComment("$ChatBot.AutoDig.Apply_Haste_Effects$")]
+ public bool Apply_Haste_Effects = true;
+
[TomlInlineComment("$ChatBot.AutoDig.Durability_Limit$")]
public int Durability_Limit = 2;
@@ -322,6 +328,15 @@ namespace MinecraftClient.ChatBots
return !IsBelowDurabilityLimit(currentTool);
}
+ private static MiningCalculator.MiningOptions GetMiningOptions()
+ {
+ return new MiningCalculator.MiningOptions
+ {
+ ApplyEfficiencyEnchantments = Config.Apply_Efficiency_Enchantments,
+ ApplyHasteEffects = Config.Apply_Haste_Effects
+ };
+ }
+
public override void Update()
{
lock (stateLock)
@@ -393,7 +408,7 @@ namespace MinecraftClient.ChatBots
if (!EnsureSuitableTool(block.Type))
return false;
- if (DigBlock(blockLoc, Direction.Down, lookAtBlock: false))
+ if (DigBlock(blockLoc, Direction.Down, lookAtBlock: false, miningOptions: GetMiningOptions()))
{
currentDig = blockLoc;
if (Config.Log_Block_Dig)
@@ -457,7 +472,7 @@ namespace MinecraftClient.ChatBots
if (!EnsureSuitableTool(targetBlock.Type))
return false;
- if (DigBlock(target, Direction.Down, lookAtBlock: true))
+ if (DigBlock(target, Direction.Down, lookAtBlock: true, miningOptions: GetMiningOptions()))
{
currentDig = target;
if (Config.Log_Block_Dig)
@@ -494,7 +509,7 @@ namespace MinecraftClient.ChatBots
if (!EnsureSuitableTool(block.Type))
return false;
- if (DigBlock(blockLoc, Direction.Down, lookAtBlock: true))
+ if (DigBlock(blockLoc, Direction.Down, lookAtBlock: true, miningOptions: GetMiningOptions()))
{
currentDig = blockLoc;
if (Config.Log_Block_Dig)
diff --git a/MinecraftClient/Mapping/BlockHardness.cs b/MinecraftClient/Mapping/BlockHardness.cs
index 84cd8f92..97d1df94 100644
--- a/MinecraftClient/Mapping/BlockHardness.cs
+++ b/MinecraftClient/Mapping/BlockHardness.cs
@@ -5,12 +5,12 @@ namespace MinecraftClient.Mapping
{
///
/// Provides block hardness values and tool requirement data for mining calculations.
- /// Data extracted from Minecraft 1.21.11 decompiled source (Blocks.java).
+ /// Data extracted from Minecraft 1.21.11 decompiled Blocks.java.
///
public static class BlockHardness
{
///
- /// Default hardness for blocks not in the table (assumes stone-like).
+ /// Default hardness for blocks not in the table. Uses stone-like hardness as a safe fallback.
///
public const float DefaultHardness = 1.5f;
@@ -27,7 +27,7 @@ namespace MinecraftClient.Mapping
///
/// Check whether a block requires the correct tool to get drops
- /// (and uses the 100 divisor instead of 30 when mined without the correct tool).
+ /// and uses the 100 divisor instead of 30 when mined without the correct tool.
///
public static bool RequiresCorrectTool(Material material)
{
@@ -36,172 +36,463 @@ namespace MinecraftClient.Mapping
private static readonly FrozenDictionary HardnessTable = new Dictionary
{
- // Hardness -1.0: 15 blocks
- { Material.Barrier, -1.0f },
- { Material.Bedrock, -1.0f },
- { Material.ChainCommandBlock, -1.0f },
- { Material.CommandBlock, -1.0f },
- { Material.EndGateway, -1.0f },
- { Material.EndPortal, -1.0f },
- { Material.EndPortalFrame, -1.0f },
- { Material.Jigsaw, -1.0f },
- { Material.Light, -1.0f },
- { Material.MovingPiston, -1.0f },
- { Material.NetherPortal, -1.0f },
- { Material.RepeatingCommandBlock, -1.0f },
- { Material.StructureBlock, -1.0f },
- { Material.TestBlock, -1.0f },
- { Material.TestInstanceBlock, -1.0f },
- // Hardness 0.0: 443 blocks
- { Material.AcaciaButton, 0.0f },
- { Material.AcaciaLeaves, 0.0f },
- { Material.AcaciaLog, 0.0f },
+ { Material.AcaciaButton, 0.5f },
+ { Material.AcaciaDoor, 3.0f },
+ { Material.AcaciaFence, 2.0f },
+ { Material.AcaciaFenceGate, 2.0f },
+ { Material.AcaciaHangingSign, 1.0f },
+ { Material.AcaciaLeaves, 0.2f },
+ { Material.AcaciaLog, 2.0f },
+ { Material.AcaciaPlanks, 2.0f },
+ { Material.AcaciaPressurePlate, 0.5f },
{ Material.AcaciaSapling, 0.0f },
+ { Material.AcaciaShelf, 2.0f },
+ { Material.AcaciaSign, 1.0f },
+ { Material.AcaciaSlab, 2.0f },
+ { Material.AcaciaStairs, 2.0f },
+ { Material.AcaciaTrapdoor, 3.0f },
+ { Material.AcaciaWallHangingSign, 1.0f },
+ { Material.AcaciaWallSign, 1.0f },
+ { Material.AcaciaWood, 2.0f },
+ { Material.ActivatorRail, 0.7f },
{ Material.Air, 0.0f },
{ Material.Allium, 0.0f },
- { Material.AndesiteSlab, 0.0f },
- { Material.AndesiteWall, 0.0f },
+ { Material.AmethystBlock, 1.5f },
+ { Material.AmethystCluster, 1.5f },
+ { Material.AncientDebris, 30.0f },
+ { Material.Andesite, 1.5f },
+ { Material.AndesiteSlab, 1.5f },
+ { Material.AndesiteStairs, 1.5f },
+ { Material.AndesiteWall, 1.5f },
+ { Material.Anvil, 5.0f },
+ { Material.AttachedMelonStem, 0.0f },
+ { Material.AttachedPumpkinStem, 0.0f },
{ Material.Azalea, 0.0f },
- { Material.AzaleaLeaves, 0.0f },
+ { Material.AzaleaLeaves, 0.2f },
{ Material.AzureBluet, 0.0f },
{ Material.Bamboo, 0.0f },
- { Material.BambooBlock, 0.0f },
- { Material.BambooButton, 0.0f },
+ { Material.BambooBlock, 2.0f },
+ { Material.BambooButton, 0.5f },
+ { Material.BambooDoor, 3.0f },
+ { Material.BambooFence, 2.0f },
+ { Material.BambooFenceGate, 2.0f },
+ { Material.BambooHangingSign, 1.0f },
+ { Material.BambooMosaic, 2.0f },
+ { Material.BambooMosaicSlab, 2.0f },
+ { Material.BambooMosaicStairs, 2.0f },
+ { Material.BambooPlanks, 2.0f },
+ { Material.BambooPressurePlate, 0.5f },
{ Material.BambooSapling, 0.0f },
+ { Material.BambooShelf, 2.0f },
+ { Material.BambooSign, 1.0f },
+ { Material.BambooSlab, 2.0f },
+ { Material.BambooStairs, 2.0f },
+ { Material.BambooTrapdoor, 3.0f },
+ { Material.BambooWallHangingSign, 1.0f },
+ { Material.BambooWallSign, 1.0f },
+ { Material.Barrel, 2.5f },
+ { Material.Barrier, -1.0f },
+ { Material.Basalt, 1.25f },
+ { Material.Beacon, 3.0f },
+ { Material.Bedrock, -1.0f },
+ { Material.BeeNest, 0.3f },
+ { Material.Beehive, 0.6f },
{ Material.Beetroots, 0.0f },
- { Material.BirchButton, 0.0f },
- { Material.BirchLeaves, 0.0f },
- { Material.BirchLog, 0.0f },
+ { Material.Bell, 5.0f },
+ { Material.BigDripleaf, 0.1f },
+ { Material.BigDripleafStem, 0.1f },
+ { Material.BirchButton, 0.5f },
+ { Material.BirchDoor, 3.0f },
+ { Material.BirchFence, 2.0f },
+ { Material.BirchFenceGate, 2.0f },
+ { Material.BirchHangingSign, 1.0f },
+ { Material.BirchLeaves, 0.2f },
+ { Material.BirchLog, 2.0f },
+ { Material.BirchPlanks, 2.0f },
+ { Material.BirchPressurePlate, 0.5f },
{ Material.BirchSapling, 0.0f },
- { Material.BlackCandle, 0.0f },
- { Material.BlackCandleCake, 0.0f },
- { Material.BlackShulkerBox, 0.0f },
- { Material.BlackstoneWall, 0.0f },
- { Material.BlueCandle, 0.0f },
- { Material.BlueCandleCake, 0.0f },
+ { Material.BirchShelf, 2.0f },
+ { Material.BirchSign, 1.0f },
+ { Material.BirchSlab, 2.0f },
+ { Material.BirchStairs, 2.0f },
+ { Material.BirchTrapdoor, 3.0f },
+ { Material.BirchWallHangingSign, 1.0f },
+ { Material.BirchWallSign, 1.0f },
+ { Material.BirchWood, 2.0f },
+ { Material.BlackBanner, 1.0f },
+ { Material.BlackBed, 0.2f },
+ { Material.BlackCandle, 0.1f },
+ { Material.BlackCandleCake, 0.5f },
+ { Material.BlackCarpet, 0.1f },
+ { Material.BlackConcrete, 1.8f },
+ { Material.BlackConcretePowder, 0.5f },
+ { Material.BlackGlazedTerracotta, 1.4f },
+ { Material.BlackShulkerBox, 2.0f },
+ { Material.BlackStainedGlass, 0.3f },
+ { Material.BlackStainedGlassPane, 0.3f },
+ { Material.BlackTerracotta, 1.25f },
+ { Material.BlackWallBanner, 1.0f },
+ { Material.BlackWool, 0.8f },
+ { Material.Blackstone, 1.5f },
+ { Material.BlackstoneSlab, 2.0f },
+ { Material.BlackstoneStairs, 1.5f },
+ { Material.BlackstoneWall, 1.5f },
+ { Material.BlastFurnace, 3.5f },
+ { Material.BlueBanner, 1.0f },
+ { Material.BlueBed, 0.2f },
+ { Material.BlueCandle, 0.1f },
+ { Material.BlueCandleCake, 0.5f },
+ { Material.BlueCarpet, 0.1f },
+ { Material.BlueConcrete, 1.8f },
+ { Material.BlueConcretePowder, 0.5f },
+ { Material.BlueGlazedTerracotta, 1.4f },
+ { Material.BlueIce, 2.8f },
{ Material.BlueOrchid, 0.0f },
- { Material.BlueShulkerBox, 0.0f },
+ { Material.BlueShulkerBox, 2.0f },
+ { Material.BlueStainedGlass, 0.3f },
+ { Material.BlueStainedGlassPane, 0.3f },
+ { Material.BlueTerracotta, 1.25f },
+ { Material.BlueWallBanner, 1.0f },
+ { Material.BlueWool, 0.8f },
+ { Material.BoneBlock, 2.0f },
+ { Material.Bookshelf, 1.5f },
{ Material.BrainCoral, 0.0f },
+ { Material.BrainCoralBlock, 1.5f },
{ Material.BrainCoralFan, 0.0f },
{ Material.BrainCoralWallFan, 0.0f },
- { Material.BrickWall, 0.0f },
- { Material.BrownCandle, 0.0f },
- { Material.BrownCandleCake, 0.0f },
+ { Material.BrewingStand, 0.5f },
+ { Material.BrickSlab, 2.0f },
+ { Material.BrickStairs, 2.0f },
+ { Material.BrickWall, 2.0f },
+ { Material.Bricks, 2.0f },
+ { Material.BrownBanner, 1.0f },
+ { Material.BrownBed, 0.2f },
+ { Material.BrownCandle, 0.1f },
+ { Material.BrownCandleCake, 0.5f },
+ { Material.BrownCarpet, 0.1f },
+ { Material.BrownConcrete, 1.8f },
+ { Material.BrownConcretePowder, 0.5f },
+ { Material.BrownGlazedTerracotta, 1.4f },
{ Material.BrownMushroom, 0.0f },
- { Material.BrownShulkerBox, 0.0f },
+ { Material.BrownMushroomBlock, 0.2f },
+ { Material.BrownShulkerBox, 2.0f },
+ { Material.BrownStainedGlass, 0.3f },
+ { Material.BrownStainedGlassPane, 0.3f },
+ { Material.BrownTerracotta, 1.25f },
+ { Material.BrownWallBanner, 1.0f },
+ { Material.BrownWool, 0.8f },
{ Material.BubbleColumn, 0.0f },
{ Material.BubbleCoral, 0.0f },
+ { Material.BubbleCoralBlock, 1.5f },
{ Material.BubbleCoralFan, 0.0f },
{ Material.BubbleCoralWallFan, 0.0f },
+ { Material.BuddingAmethyst, 1.5f },
{ Material.Bush, 0.0f },
+ { Material.Cactus, 0.4f },
{ Material.CactusFlower, 0.0f },
- { Material.CalibratedSculkSensor, 0.0f },
- { Material.Candle, 0.0f },
- { Material.CandleCake, 0.0f },
+ { Material.Cake, 0.5f },
+ { Material.Calcite, 0.75f },
+ { Material.CalibratedSculkSensor, 1.5f },
+ { Material.Campfire, 2.0f },
+ { Material.Candle, 0.1f },
+ { Material.CandleCake, 0.5f },
{ Material.Carrots, 0.0f },
+ { Material.CartographyTable, 2.5f },
+ { Material.CarvedPumpkin, 1.0f },
+ { Material.Cauldron, 2.0f },
{ Material.CaveAir, 0.0f },
{ Material.CaveVines, 0.0f },
{ Material.CaveVinesPlant, 0.0f },
- { Material.CherryButton, 0.0f },
- { Material.CherryLog, 0.0f },
+ { Material.ChainCommandBlock, -1.0f },
+ { Material.CherryButton, 0.5f },
+ { Material.CherryDoor, 3.0f },
+ { Material.CherryFence, 2.0f },
+ { Material.CherryFenceGate, 2.0f },
+ { Material.CherryHangingSign, 1.0f },
+ { Material.CherryLeaves, 0.2f },
+ { Material.CherryLog, 2.0f },
+ { Material.CherryPlanks, 2.0f },
+ { Material.CherryPressurePlate, 0.5f },
{ Material.CherrySapling, 0.0f },
- { Material.ChiseledCopper, 0.0f },
- { Material.ChiseledDeepslate, 0.0f },
- { Material.ChiseledTuff, 0.0f },
- { Material.ChiseledTuffBricks, 0.0f },
+ { Material.CherryShelf, 2.0f },
+ { Material.CherrySign, 1.0f },
+ { Material.CherrySlab, 2.0f },
+ { Material.CherryStairs, 2.0f },
+ { Material.CherryTrapdoor, 3.0f },
+ { Material.CherryWallHangingSign, 1.0f },
+ { Material.CherryWallSign, 1.0f },
+ { Material.CherryWood, 2.0f },
+ { Material.Chest, 2.5f },
+ { Material.ChippedAnvil, 5.0f },
+ { Material.ChiseledBookshelf, 1.5f },
+ { Material.ChiseledCopper, 3.0f },
+ { Material.ChiseledDeepslate, 3.5f },
+ { Material.ChiseledNetherBricks, 2.0f },
+ { Material.ChiseledPolishedBlackstone, 1.5f },
+ { Material.ChiseledQuartzBlock, 0.8f },
+ { Material.ChiseledRedSandstone, 0.8f },
+ { Material.ChiseledResinBricks, 1.5f },
+ { Material.ChiseledSandstone, 0.8f },
+ { Material.ChiseledStoneBricks, 1.5f },
+ { Material.ChiseledTuff, 1.5f },
+ { Material.ChiseledTuffBricks, 1.5f },
+ { Material.ChorusFlower, 0.4f },
+ { Material.ChorusPlant, 0.4f },
+ { Material.Clay, 0.6f },
{ Material.ClosedEyeblossom, 0.0f },
- { Material.CobbledDeepslateSlab, 0.0f },
- { Material.CobbledDeepslateWall, 0.0f },
- { Material.CobblestoneWall, 0.0f },
+ { Material.CoalBlock, 5.0f },
+ { Material.CoalOre, 3.0f },
+ { Material.CoarseDirt, 0.5f },
+ { Material.CobbledDeepslate, 3.5f },
+ { Material.CobbledDeepslateSlab, 3.5f },
+ { Material.CobbledDeepslateStairs, 3.5f },
+ { Material.CobbledDeepslateWall, 3.5f },
+ { Material.Cobblestone, 2.0f },
+ { Material.CobblestoneSlab, 2.0f },
+ { Material.CobblestoneStairs, 2.0f },
+ { Material.CobblestoneWall, 2.0f },
+ { Material.Cobweb, 4.0f },
+ { Material.Cocoa, 0.2f },
+ { Material.CommandBlock, -1.0f },
{ Material.Comparator, 0.0f },
- { Material.CopperOre, 0.0f },
+ { Material.Composter, 0.6f },
+ { Material.Conduit, 3.0f },
+ { Material.CopperBlock, 3.0f },
+ { Material.CopperBulb, 3.0f },
+ { Material.CopperChest, 3.0f },
+ { Material.CopperDoor, 3.0f },
+ { Material.CopperGolemStatue, 3.0f },
+ { Material.CopperGrate, 3.0f },
+ { Material.CopperOre, 3.0f },
{ Material.CopperTorch, 0.0f },
+ { Material.CopperTrapdoor, 3.0f },
{ Material.CopperWallTorch, 0.0f },
{ Material.Cornflower, 0.0f },
- { Material.CrackedDeepslateBricks, 0.0f },
- { Material.CrackedDeepslateTiles, 0.0f },
- { Material.CrackedPolishedBlackstoneBricks, 0.0f },
- { Material.CrimsonButton, 0.0f },
+ { Material.CrackedDeepslateBricks, 3.5f },
+ { Material.CrackedDeepslateTiles, 3.5f },
+ { Material.CrackedNetherBricks, 2.0f },
+ { Material.CrackedPolishedBlackstoneBricks, 1.5f },
+ { Material.CrackedStoneBricks, 1.5f },
+ { Material.Crafter, 1.5f },
+ { Material.CraftingTable, 2.5f },
+ { Material.CreakingHeart, 10.0f },
+ { Material.CreeperHead, 1.0f },
+ { Material.CreeperWallHead, 1.0f },
+ { Material.CrimsonButton, 0.5f },
+ { Material.CrimsonDoor, 3.0f },
+ { Material.CrimsonFence, 2.0f },
+ { Material.CrimsonFenceGate, 2.0f },
{ Material.CrimsonFungus, 0.0f },
+ { Material.CrimsonHangingSign, 1.0f },
+ { Material.CrimsonHyphae, 2.0f },
+ { Material.CrimsonNylium, 0.4f },
+ { Material.CrimsonPlanks, 2.0f },
+ { Material.CrimsonPressurePlate, 0.5f },
{ Material.CrimsonRoots, 0.0f },
- { Material.CrimsonStem, 0.0f },
- { Material.CutCopper, 0.0f },
- { Material.CutCopperSlab, 0.0f },
- { Material.CutCopperStairs, 0.0f },
- { Material.CyanCandle, 0.0f },
- { Material.CyanCandleCake, 0.0f },
- { Material.CyanShulkerBox, 0.0f },
+ { Material.CrimsonShelf, 2.0f },
+ { Material.CrimsonSign, 1.0f },
+ { Material.CrimsonSlab, 2.0f },
+ { Material.CrimsonStairs, 2.0f },
+ { Material.CrimsonStem, 2.0f },
+ { Material.CrimsonTrapdoor, 3.0f },
+ { Material.CrimsonWallHangingSign, 1.0f },
+ { Material.CrimsonWallSign, 1.0f },
+ { Material.CryingObsidian, 50.0f },
+ { Material.CutCopper, 3.0f },
+ { Material.CutCopperSlab, 3.0f },
+ { Material.CutCopperStairs, 3.0f },
+ { Material.CutRedSandstone, 0.8f },
+ { Material.CutRedSandstoneSlab, 2.0f },
+ { Material.CutSandstone, 0.8f },
+ { Material.CutSandstoneSlab, 2.0f },
+ { Material.CyanBanner, 1.0f },
+ { Material.CyanBed, 0.2f },
+ { Material.CyanCandle, 0.1f },
+ { Material.CyanCandleCake, 0.5f },
+ { Material.CyanCarpet, 0.1f },
+ { Material.CyanConcrete, 1.8f },
+ { Material.CyanConcretePowder, 0.5f },
+ { Material.CyanGlazedTerracotta, 1.4f },
+ { Material.CyanShulkerBox, 2.0f },
+ { Material.CyanStainedGlass, 0.3f },
+ { Material.CyanStainedGlassPane, 0.3f },
+ { Material.CyanTerracotta, 1.25f },
+ { Material.CyanWallBanner, 1.0f },
+ { Material.CyanWool, 0.8f },
+ { Material.DamagedAnvil, 5.0f },
{ Material.Dandelion, 0.0f },
- { Material.DarkOakButton, 0.0f },
- { Material.DarkOakLeaves, 0.0f },
- { Material.DarkOakLog, 0.0f },
+ { Material.DarkOakButton, 0.5f },
+ { Material.DarkOakDoor, 3.0f },
+ { Material.DarkOakFence, 2.0f },
+ { Material.DarkOakFenceGate, 2.0f },
+ { Material.DarkOakHangingSign, 1.0f },
+ { Material.DarkOakLeaves, 0.2f },
+ { Material.DarkOakLog, 2.0f },
+ { Material.DarkOakPlanks, 2.0f },
+ { Material.DarkOakPressurePlate, 0.5f },
{ Material.DarkOakSapling, 0.0f },
+ { Material.DarkOakShelf, 2.0f },
+ { Material.DarkOakSign, 1.0f },
+ { Material.DarkOakSlab, 2.0f },
+ { Material.DarkOakStairs, 2.0f },
+ { Material.DarkOakTrapdoor, 3.0f },
+ { Material.DarkOakWallHangingSign, 1.0f },
+ { Material.DarkOakWallSign, 1.0f },
+ { Material.DarkOakWood, 2.0f },
+ { Material.DarkPrismarine, 1.5f },
+ { Material.DarkPrismarineSlab, 1.5f },
+ { Material.DarkPrismarineStairs, 1.5f },
+ { Material.DaylightDetector, 0.2f },
{ Material.DeadBrainCoral, 0.0f },
+ { Material.DeadBrainCoralBlock, 1.5f },
{ Material.DeadBrainCoralFan, 0.0f },
{ Material.DeadBrainCoralWallFan, 0.0f },
{ Material.DeadBubbleCoral, 0.0f },
+ { Material.DeadBubbleCoralBlock, 1.5f },
{ Material.DeadBubbleCoralFan, 0.0f },
{ Material.DeadBubbleCoralWallFan, 0.0f },
{ Material.DeadBush, 0.0f },
{ Material.DeadFireCoral, 0.0f },
+ { Material.DeadFireCoralBlock, 1.5f },
{ Material.DeadFireCoralFan, 0.0f },
{ Material.DeadFireCoralWallFan, 0.0f },
{ Material.DeadHornCoral, 0.0f },
+ { Material.DeadHornCoralBlock, 1.5f },
{ Material.DeadHornCoralFan, 0.0f },
{ Material.DeadHornCoralWallFan, 0.0f },
{ Material.DeadTubeCoral, 0.0f },
+ { Material.DeadTubeCoralBlock, 1.5f },
{ Material.DeadTubeCoralFan, 0.0f },
{ Material.DeadTubeCoralWallFan, 0.0f },
{ Material.DecoratedPot, 0.0f },
- { Material.DeepslateBrickSlab, 0.0f },
- { Material.DeepslateBrickWall, 0.0f },
- { Material.DeepslateBricks, 0.0f },
- { Material.DeepslateTileSlab, 0.0f },
- { Material.DeepslateTileWall, 0.0f },
- { Material.DeepslateTiles, 0.0f },
- { Material.DioriteSlab, 0.0f },
- { Material.DioriteWall, 0.0f },
+ { Material.Deepslate, 3.0f },
+ { Material.DeepslateBrickSlab, 3.5f },
+ { Material.DeepslateBrickStairs, 3.5f },
+ { Material.DeepslateBrickWall, 3.5f },
+ { Material.DeepslateBricks, 3.5f },
+ { Material.DeepslateCoalOre, 4.5f },
+ { Material.DeepslateCopperOre, 4.5f },
+ { Material.DeepslateDiamondOre, 4.5f },
+ { Material.DeepslateEmeraldOre, 4.5f },
+ { Material.DeepslateGoldOre, 4.5f },
+ { Material.DeepslateIronOre, 4.5f },
+ { Material.DeepslateLapisOre, 4.5f },
+ { Material.DeepslateRedstoneOre, 4.5f },
+ { Material.DeepslateTileSlab, 3.5f },
+ { Material.DeepslateTileStairs, 3.5f },
+ { Material.DeepslateTileWall, 3.5f },
+ { Material.DeepslateTiles, 3.5f },
+ { Material.DetectorRail, 0.7f },
+ { Material.DiamondBlock, 5.0f },
+ { Material.DiamondOre, 3.0f },
+ { Material.Diorite, 1.5f },
+ { Material.DioriteSlab, 1.5f },
+ { Material.DioriteStairs, 1.5f },
+ { Material.DioriteWall, 1.5f },
+ { Material.Dirt, 0.5f },
+ { Material.DirtPath, 0.65f },
+ { Material.Dispenser, 3.5f },
+ { Material.DragonEgg, 3.0f },
+ { Material.DragonHead, 1.0f },
+ { Material.DragonWallHead, 1.0f },
{ Material.DriedGhast, 0.0f },
+ { Material.DriedKelpBlock, 0.5f },
+ { Material.DripstoneBlock, 1.5f },
+ { Material.Dropper, 3.5f },
+ { Material.EmeraldBlock, 5.0f },
+ { Material.EmeraldOre, 3.0f },
+ { Material.EnchantingTable, 5.0f },
+ { Material.EndGateway, -1.0f },
+ { Material.EndPortal, -1.0f },
+ { Material.EndPortalFrame, -1.0f },
{ Material.EndRod, 0.0f },
- { Material.EndStoneBrickSlab, 0.0f },
- { Material.EndStoneBrickWall, 0.0f },
- { Material.ExposedChiseledCopper, 0.0f },
- { Material.ExposedCopper, 0.0f },
- { Material.ExposedCopperBulb, 0.0f },
- { Material.ExposedCopperChest, 0.0f },
- { Material.ExposedCopperDoor, 0.0f },
- { Material.ExposedCopperGolemStatue, 0.0f },
- { Material.ExposedCopperGrate, 0.0f },
- { Material.ExposedCopperTrapdoor, 0.0f },
- { Material.ExposedCutCopper, 0.0f },
- { Material.ExposedCutCopperSlab, 0.0f },
- { Material.ExposedCutCopperStairs, 0.0f },
- { Material.ExposedLightningRod, 0.0f },
+ { Material.EndStone, 3.0f },
+ { Material.EndStoneBrickSlab, 3.0f },
+ { Material.EndStoneBrickStairs, 3.0f },
+ { Material.EndStoneBrickWall, 3.0f },
+ { Material.EndStoneBricks, 3.0f },
+ { Material.EnderChest, 22.5f },
+ { Material.ExposedChiseledCopper, 3.0f },
+ { Material.ExposedCopper, 3.0f },
+ { Material.ExposedCopperBulb, 3.0f },
+ { Material.ExposedCopperChest, 3.0f },
+ { Material.ExposedCopperDoor, 3.0f },
+ { Material.ExposedCopperGolemStatue, 3.0f },
+ { Material.ExposedCopperGrate, 3.0f },
+ { Material.ExposedCopperTrapdoor, 3.0f },
+ { Material.ExposedCutCopper, 3.0f },
+ { Material.ExposedCutCopperSlab, 3.0f },
+ { Material.ExposedCutCopperStairs, 3.0f },
+ { Material.ExposedLightningRod, 3.0f },
+ { Material.Farmland, 0.6f },
{ Material.Fern, 0.0f },
{ Material.Fire, 0.0f },
{ Material.FireCoral, 0.0f },
+ { Material.FireCoralBlock, 1.5f },
{ Material.FireCoralFan, 0.0f },
{ Material.FireCoralWallFan, 0.0f },
{ Material.FireflyBush, 0.0f },
+ { Material.FletchingTable, 2.5f },
{ Material.FlowerPot, 0.0f },
{ Material.FloweringAzalea, 0.0f },
- { Material.FloweringAzaleaLeaves, 0.0f },
+ { Material.FloweringAzaleaLeaves, 0.2f },
{ Material.Frogspawn, 0.0f },
- { Material.GildedBlackstone, 0.0f },
- { Material.GlassPane, 0.0f },
- { Material.GraniteSlab, 0.0f },
- { Material.GraniteWall, 0.0f },
- { Material.GrayCandle, 0.0f },
- { Material.GrayCandleCake, 0.0f },
- { Material.GrayShulkerBox, 0.0f },
- { Material.GreenCandle, 0.0f },
- { Material.GreenCandleCake, 0.0f },
- { Material.GreenShulkerBox, 0.0f },
+ { Material.FrostedIce, 0.5f },
+ { Material.Furnace, 3.5f },
+ { Material.GildedBlackstone, 1.5f },
+ { Material.Glass, 0.3f },
+ { Material.GlassPane, 0.3f },
+ { Material.GlowLichen, 0.2f },
+ { Material.Glowstone, 0.3f },
+ { Material.GoldBlock, 3.0f },
+ { Material.GoldOre, 3.0f },
+ { Material.Granite, 1.5f },
+ { Material.GraniteSlab, 1.5f },
+ { Material.GraniteStairs, 1.5f },
+ { Material.GraniteWall, 1.5f },
+ { Material.GrassBlock, 0.6f },
+ { Material.Gravel, 0.6f },
+ { Material.GrayBanner, 1.0f },
+ { Material.GrayBed, 0.2f },
+ { Material.GrayCandle, 0.1f },
+ { Material.GrayCandleCake, 0.5f },
+ { Material.GrayCarpet, 0.1f },
+ { Material.GrayConcrete, 1.8f },
+ { Material.GrayConcretePowder, 0.5f },
+ { Material.GrayGlazedTerracotta, 1.4f },
+ { Material.GrayShulkerBox, 2.0f },
+ { Material.GrayStainedGlass, 0.3f },
+ { Material.GrayStainedGlassPane, 0.3f },
+ { Material.GrayTerracotta, 1.25f },
+ { Material.GrayWallBanner, 1.0f },
+ { Material.GrayWool, 0.8f },
+ { Material.GreenBanner, 1.0f },
+ { Material.GreenBed, 0.2f },
+ { Material.GreenCandle, 0.1f },
+ { Material.GreenCandleCake, 0.5f },
+ { Material.GreenCarpet, 0.1f },
+ { Material.GreenConcrete, 1.8f },
+ { Material.GreenConcretePowder, 0.5f },
+ { Material.GreenGlazedTerracotta, 1.4f },
+ { Material.GreenShulkerBox, 2.0f },
+ { Material.GreenStainedGlass, 0.3f },
+ { Material.GreenStainedGlassPane, 0.3f },
+ { Material.GreenTerracotta, 1.25f },
+ { Material.GreenWallBanner, 1.0f },
+ { Material.GreenWool, 0.8f },
+ { Material.Grindstone, 2.0f },
{ Material.HangingRoots, 0.0f },
+ { Material.HayBlock, 0.5f },
+ { Material.HeavyCore, 10.0f },
+ { Material.HeavyWeightedPressurePlate, 0.5f },
{ Material.HoneyBlock, 0.0f },
+ { Material.HoneycombBlock, 0.6f },
+ { Material.Hopper, 3.0f },
{ Material.HornCoral, 0.0f },
+ { Material.HornCoralBlock, 1.5f },
{ Material.HornCoralFan, 0.0f },
{ Material.HornCoralWallFan, 0.0f },
+ { Material.Ice, 0.5f },
{ Material.InfestedChiseledStoneBricks, 0.0f },
{ Material.InfestedCobblestone, 0.0f },
{ Material.InfestedCrackedStoneBricks, 0.0f },
@@ -209,94 +500,296 @@ namespace MinecraftClient.Mapping
{ Material.InfestedMossyStoneBricks, 0.0f },
{ Material.InfestedStone, 0.0f },
{ Material.InfestedStoneBricks, 0.0f },
- { Material.JungleButton, 0.0f },
- { Material.JungleLeaves, 0.0f },
- { Material.JungleLog, 0.0f },
+ { Material.IronBars, 5.0f },
+ { Material.IronBlock, 5.0f },
+ { Material.IronChain, 5.0f },
+ { Material.IronDoor, 5.0f },
+ { Material.IronOre, 3.0f },
+ { Material.IronTrapdoor, 5.0f },
+ { Material.JackOLantern, 1.0f },
+ { Material.Jigsaw, -1.0f },
+ { Material.Jukebox, 2.0f },
+ { Material.JungleButton, 0.5f },
+ { Material.JungleDoor, 3.0f },
+ { Material.JungleFence, 2.0f },
+ { Material.JungleFenceGate, 2.0f },
+ { Material.JungleHangingSign, 1.0f },
+ { Material.JungleLeaves, 0.2f },
+ { Material.JungleLog, 2.0f },
+ { Material.JunglePlanks, 2.0f },
+ { Material.JunglePressurePlate, 0.5f },
{ Material.JungleSapling, 0.0f },
+ { Material.JungleShelf, 2.0f },
+ { Material.JungleSign, 1.0f },
+ { Material.JungleSlab, 2.0f },
+ { Material.JungleStairs, 2.0f },
+ { Material.JungleTrapdoor, 3.0f },
+ { Material.JungleWallHangingSign, 1.0f },
+ { Material.JungleWallSign, 1.0f },
+ { Material.JungleWood, 2.0f },
{ Material.Kelp, 0.0f },
{ Material.KelpPlant, 0.0f },
- { Material.LargeAmethystBud, 0.0f },
+ { Material.Ladder, 0.4f },
+ { Material.Lantern, 3.5f },
+ { Material.LapisBlock, 3.0f },
+ { Material.LapisOre, 3.0f },
+ { Material.LargeAmethystBud, 1.5f },
{ Material.LargeFern, 0.0f },
- { Material.LavaCauldron, 0.0f },
+ { Material.Lava, 100.0f },
+ { Material.LavaCauldron, 2.0f },
{ Material.LeafLitter, 0.0f },
- { Material.LightBlueCandle, 0.0f },
- { Material.LightBlueCandleCake, 0.0f },
- { Material.LightBlueShulkerBox, 0.0f },
- { Material.LightGrayCandle, 0.0f },
- { Material.LightGrayCandleCake, 0.0f },
- { Material.LightGrayShulkerBox, 0.0f },
+ { Material.Lectern, 2.5f },
+ { Material.Lever, 0.5f },
+ { Material.Light, -1.0f },
+ { Material.LightBlueBanner, 1.0f },
+ { Material.LightBlueBed, 0.2f },
+ { Material.LightBlueCandle, 0.1f },
+ { Material.LightBlueCandleCake, 0.5f },
+ { Material.LightBlueCarpet, 0.1f },
+ { Material.LightBlueConcrete, 1.8f },
+ { Material.LightBlueConcretePowder, 0.5f },
+ { Material.LightBlueGlazedTerracotta, 1.4f },
+ { Material.LightBlueShulkerBox, 2.0f },
+ { Material.LightBlueStainedGlass, 0.3f },
+ { Material.LightBlueStainedGlassPane, 0.3f },
+ { Material.LightBlueTerracotta, 1.25f },
+ { Material.LightBlueWallBanner, 1.0f },
+ { Material.LightBlueWool, 0.8f },
+ { Material.LightGrayBanner, 1.0f },
+ { Material.LightGrayBed, 0.2f },
+ { Material.LightGrayCandle, 0.1f },
+ { Material.LightGrayCandleCake, 0.5f },
+ { Material.LightGrayCarpet, 0.1f },
+ { Material.LightGrayConcrete, 1.8f },
+ { Material.LightGrayConcretePowder, 0.5f },
+ { Material.LightGrayGlazedTerracotta, 1.4f },
+ { Material.LightGrayShulkerBox, 2.0f },
+ { Material.LightGrayStainedGlass, 0.3f },
+ { Material.LightGrayStainedGlassPane, 0.3f },
+ { Material.LightGrayTerracotta, 1.25f },
+ { Material.LightGrayWallBanner, 1.0f },
+ { Material.LightGrayWool, 0.8f },
+ { Material.LightWeightedPressurePlate, 0.5f },
+ { Material.LightningRod, 3.0f },
{ Material.Lilac, 0.0f },
{ Material.LilyOfTheValley, 0.0f },
{ Material.LilyPad, 0.0f },
- { Material.LimeCandle, 0.0f },
- { Material.LimeCandleCake, 0.0f },
- { Material.LimeShulkerBox, 0.0f },
- { Material.MagentaCandle, 0.0f },
- { Material.MagentaCandleCake, 0.0f },
- { Material.MagentaShulkerBox, 0.0f },
- { Material.MangroveButton, 0.0f },
- { Material.MangroveLeaves, 0.0f },
- { Material.MangroveLog, 0.0f },
+ { Material.LimeBanner, 1.0f },
+ { Material.LimeBed, 0.2f },
+ { Material.LimeCandle, 0.1f },
+ { Material.LimeCandleCake, 0.5f },
+ { Material.LimeCarpet, 0.1f },
+ { Material.LimeConcrete, 1.8f },
+ { Material.LimeConcretePowder, 0.5f },
+ { Material.LimeGlazedTerracotta, 1.4f },
+ { Material.LimeShulkerBox, 2.0f },
+ { Material.LimeStainedGlass, 0.3f },
+ { Material.LimeStainedGlassPane, 0.3f },
+ { Material.LimeTerracotta, 1.25f },
+ { Material.LimeWallBanner, 1.0f },
+ { Material.LimeWool, 0.8f },
+ { Material.Lodestone, 3.5f },
+ { Material.Loom, 2.5f },
+ { Material.MagentaBanner, 1.0f },
+ { Material.MagentaBed, 0.2f },
+ { Material.MagentaCandle, 0.1f },
+ { Material.MagentaCandleCake, 0.5f },
+ { Material.MagentaCarpet, 0.1f },
+ { Material.MagentaConcrete, 1.8f },
+ { Material.MagentaConcretePowder, 0.5f },
+ { Material.MagentaGlazedTerracotta, 1.4f },
+ { Material.MagentaShulkerBox, 2.0f },
+ { Material.MagentaStainedGlass, 0.3f },
+ { Material.MagentaStainedGlassPane, 0.3f },
+ { Material.MagentaTerracotta, 1.25f },
+ { Material.MagentaWallBanner, 1.0f },
+ { Material.MagentaWool, 0.8f },
+ { Material.MagmaBlock, 0.5f },
+ { Material.MangroveButton, 0.5f },
+ { Material.MangroveDoor, 3.0f },
+ { Material.MangroveFence, 2.0f },
+ { Material.MangroveFenceGate, 2.0f },
+ { Material.MangroveHangingSign, 1.0f },
+ { Material.MangroveLeaves, 0.2f },
+ { Material.MangroveLog, 2.0f },
+ { Material.MangrovePlanks, 2.0f },
+ { Material.MangrovePressurePlate, 0.5f },
{ Material.MangrovePropagule, 0.0f },
- { Material.MediumAmethystBud, 0.0f },
- { Material.MossyCobblestoneSlab, 0.0f },
- { Material.MossyCobblestoneWall, 0.0f },
- { Material.MossyStoneBrickSlab, 0.0f },
- { Material.MossyStoneBrickWall, 0.0f },
- { Material.Mud, 0.0f },
- { Material.MudBrickWall, 0.0f },
- { Material.NetherBrickWall, 0.0f },
+ { Material.MangroveRoots, 0.7f },
+ { Material.MangroveShelf, 2.0f },
+ { Material.MangroveSign, 1.0f },
+ { Material.MangroveSlab, 2.0f },
+ { Material.MangroveStairs, 2.0f },
+ { Material.MangroveTrapdoor, 3.0f },
+ { Material.MangroveWallHangingSign, 1.0f },
+ { Material.MangroveWallSign, 1.0f },
+ { Material.MangroveWood, 2.0f },
+ { Material.MediumAmethystBud, 1.5f },
+ { Material.Melon, 1.0f },
+ { Material.MelonStem, 0.0f },
+ { Material.MossBlock, 0.1f },
+ { Material.MossCarpet, 0.1f },
+ { Material.MossyCobblestone, 2.0f },
+ { Material.MossyCobblestoneSlab, 2.0f },
+ { Material.MossyCobblestoneStairs, 2.0f },
+ { Material.MossyCobblestoneWall, 2.0f },
+ { Material.MossyStoneBrickSlab, 1.5f },
+ { Material.MossyStoneBrickStairs, 1.5f },
+ { Material.MossyStoneBrickWall, 1.5f },
+ { Material.MossyStoneBricks, 1.5f },
+ { Material.MovingPiston, -1.0f },
+ { Material.Mud, 0.5f },
+ { Material.MudBrickSlab, 1.5f },
+ { Material.MudBrickStairs, 1.5f },
+ { Material.MudBrickWall, 1.5f },
+ { Material.MudBricks, 1.5f },
+ { Material.MuddyMangroveRoots, 0.7f },
+ { Material.MushroomStem, 0.2f },
+ { Material.Mycelium, 0.6f },
+ { Material.NetherBrickFence, 2.0f },
+ { Material.NetherBrickSlab, 2.0f },
+ { Material.NetherBrickStairs, 2.0f },
+ { Material.NetherBrickWall, 2.0f },
+ { Material.NetherBricks, 2.0f },
+ { Material.NetherGoldOre, 3.0f },
+ { Material.NetherPortal, -1.0f },
+ { Material.NetherQuartzOre, 3.0f },
{ Material.NetherSprouts, 0.0f },
{ Material.NetherWart, 0.0f },
- { Material.OakButton, 0.0f },
+ { Material.NetherWartBlock, 1.0f },
+ { Material.NetheriteBlock, 50.0f },
+ { Material.Netherrack, 0.4f },
+ { Material.NoteBlock, 0.8f },
+ { Material.OakButton, 0.5f },
+ { Material.OakDoor, 3.0f },
+ { Material.OakFence, 2.0f },
+ { Material.OakFenceGate, 2.0f },
+ { Material.OakHangingSign, 1.0f },
{ Material.OakLeaves, 0.2f },
{ Material.OakLog, 2.0f },
+ { Material.OakPlanks, 2.0f },
+ { Material.OakPressurePlate, 0.5f },
{ Material.OakSapling, 0.0f },
+ { Material.OakShelf, 2.0f },
+ { Material.OakSign, 1.0f },
+ { Material.OakSlab, 2.0f },
+ { Material.OakStairs, 2.0f },
+ { Material.OakTrapdoor, 3.0f },
+ { Material.OakWallHangingSign, 1.0f },
+ { Material.OakWallSign, 1.0f },
+ { Material.OakWood, 2.0f },
+ { Material.Observer, 3.0f },
+ { Material.Obsidian, 50.0f },
+ { Material.OchreFroglight, 0.3f },
{ Material.OpenEyeblossom, 0.0f },
- { Material.OrangeCandle, 0.0f },
- { Material.OrangeCandleCake, 0.0f },
- { Material.OrangeShulkerBox, 0.0f },
+ { Material.OrangeBanner, 1.0f },
+ { Material.OrangeBed, 0.2f },
+ { Material.OrangeCandle, 0.1f },
+ { Material.OrangeCandleCake, 0.5f },
+ { Material.OrangeCarpet, 0.1f },
+ { Material.OrangeConcrete, 1.8f },
+ { Material.OrangeConcretePowder, 0.5f },
+ { Material.OrangeGlazedTerracotta, 1.4f },
+ { Material.OrangeShulkerBox, 2.0f },
+ { Material.OrangeStainedGlass, 0.3f },
+ { Material.OrangeStainedGlassPane, 0.3f },
+ { Material.OrangeTerracotta, 1.25f },
{ Material.OrangeTulip, 0.0f },
+ { Material.OrangeWallBanner, 1.0f },
+ { Material.OrangeWool, 0.8f },
{ Material.OxeyeDaisy, 0.0f },
- { Material.OxidizedChiseledCopper, 0.0f },
- { Material.OxidizedCopper, 0.0f },
- { Material.OxidizedCopperBulb, 0.0f },
- { Material.OxidizedCopperChest, 0.0f },
- { Material.OxidizedCopperDoor, 0.0f },
- { Material.OxidizedCopperGolemStatue, 0.0f },
- { Material.OxidizedCopperGrate, 0.0f },
- { Material.OxidizedCopperTrapdoor, 0.0f },
- { Material.OxidizedCutCopper, 0.0f },
- { Material.OxidizedCutCopperSlab, 0.0f },
- { Material.OxidizedCutCopperStairs, 0.0f },
- { Material.OxidizedLightningRod, 0.0f },
+ { Material.OxidizedChiseledCopper, 3.0f },
+ { Material.OxidizedCopper, 3.0f },
+ { Material.OxidizedCopperBulb, 3.0f },
+ { Material.OxidizedCopperChest, 3.0f },
+ { Material.OxidizedCopperDoor, 3.0f },
+ { Material.OxidizedCopperGolemStatue, 3.0f },
+ { Material.OxidizedCopperGrate, 3.0f },
+ { Material.OxidizedCopperTrapdoor, 3.0f },
+ { Material.OxidizedCutCopper, 3.0f },
+ { Material.OxidizedCutCopperSlab, 3.0f },
+ { Material.OxidizedCutCopperStairs, 3.0f },
+ { Material.OxidizedLightningRod, 3.0f },
+ { Material.PackedIce, 0.5f },
+ { Material.PackedMud, 1.0f },
{ Material.PaleHangingMoss, 0.0f },
- { Material.PaleOakButton, 0.0f },
- { Material.PaleOakLog, 0.0f },
+ { Material.PaleMossBlock, 0.1f },
+ { Material.PaleMossCarpet, 0.1f },
+ { Material.PaleOakButton, 0.5f },
+ { Material.PaleOakDoor, 3.0f },
+ { Material.PaleOakFence, 2.0f },
+ { Material.PaleOakFenceGate, 2.0f },
+ { Material.PaleOakHangingSign, 1.0f },
+ { Material.PaleOakLeaves, 0.2f },
+ { Material.PaleOakLog, 2.0f },
+ { Material.PaleOakPlanks, 2.0f },
+ { Material.PaleOakPressurePlate, 0.5f },
{ Material.PaleOakSapling, 0.0f },
+ { Material.PaleOakShelf, 2.0f },
+ { Material.PaleOakSign, 1.0f },
+ { Material.PaleOakSlab, 2.0f },
+ { Material.PaleOakStairs, 2.0f },
+ { Material.PaleOakTrapdoor, 3.0f },
+ { Material.PaleOakWallHangingSign, 1.0f },
+ { Material.PaleOakWallSign, 1.0f },
+ { Material.PaleOakWood, 2.0f },
+ { Material.PearlescentFroglight, 0.3f },
{ Material.Peony, 0.0f },
- { Material.PinkCandle, 0.0f },
- { Material.PinkCandleCake, 0.0f },
+ { Material.PetrifiedOakSlab, 2.0f },
+ { Material.PiglinHead, 1.0f },
+ { Material.PiglinWallHead, 1.0f },
+ { Material.PinkBanner, 1.0f },
+ { Material.PinkBed, 0.2f },
+ { Material.PinkCandle, 0.1f },
+ { Material.PinkCandleCake, 0.5f },
+ { Material.PinkCarpet, 0.1f },
+ { Material.PinkConcrete, 1.8f },
+ { Material.PinkConcretePowder, 0.5f },
+ { Material.PinkGlazedTerracotta, 1.4f },
{ Material.PinkPetals, 0.0f },
- { Material.PinkShulkerBox, 0.0f },
+ { Material.PinkShulkerBox, 2.0f },
+ { Material.PinkStainedGlass, 0.3f },
+ { Material.PinkStainedGlassPane, 0.3f },
+ { Material.PinkTerracotta, 1.25f },
{ Material.PinkTulip, 0.0f },
+ { Material.PinkWallBanner, 1.0f },
+ { Material.PinkWool, 0.8f },
{ Material.Piston, 0.0f },
+ { Material.PistonHead, 1.5f },
{ Material.PitcherCrop, 0.0f },
{ Material.PitcherPlant, 0.0f },
- { Material.PolishedAndesiteSlab, 0.0f },
- { Material.PolishedBlackstoneBrickWall, 0.0f },
- { Material.PolishedBlackstoneButton, 0.0f },
- { Material.PolishedBlackstoneSlab, 0.0f },
- { Material.PolishedBlackstoneWall, 0.0f },
- { Material.PolishedDeepslate, 0.0f },
- { Material.PolishedDeepslateSlab, 0.0f },
- { Material.PolishedDeepslateWall, 0.0f },
- { Material.PolishedDioriteSlab, 0.0f },
- { Material.PolishedGraniteSlab, 0.0f },
- { Material.PolishedTuff, 0.0f },
- { Material.PolishedTuffSlab, 0.0f },
- { Material.PolishedTuffStairs, 0.0f },
- { Material.PolishedTuffWall, 0.0f },
+ { Material.PlayerHead, 1.0f },
+ { Material.PlayerWallHead, 1.0f },
+ { Material.Podzol, 0.5f },
+ { Material.PointedDripstone, 1.5f },
+ { Material.PolishedAndesite, 1.5f },
+ { Material.PolishedAndesiteSlab, 1.5f },
+ { Material.PolishedAndesiteStairs, 1.5f },
+ { Material.PolishedBasalt, 1.25f },
+ { Material.PolishedBlackstone, 2.0f },
+ { Material.PolishedBlackstoneBrickSlab, 2.0f },
+ { Material.PolishedBlackstoneBrickStairs, 1.5f },
+ { Material.PolishedBlackstoneBrickWall, 1.5f },
+ { Material.PolishedBlackstoneBricks, 1.5f },
+ { Material.PolishedBlackstoneButton, 0.5f },
+ { Material.PolishedBlackstonePressurePlate, 0.5f },
+ { Material.PolishedBlackstoneSlab, 2.0f },
+ { Material.PolishedBlackstoneStairs, 2.0f },
+ { Material.PolishedBlackstoneWall, 2.0f },
+ { Material.PolishedDeepslate, 3.5f },
+ { Material.PolishedDeepslateSlab, 3.5f },
+ { Material.PolishedDeepslateStairs, 3.5f },
+ { Material.PolishedDeepslateWall, 3.5f },
+ { Material.PolishedDiorite, 1.5f },
+ { Material.PolishedDioriteSlab, 1.5f },
+ { Material.PolishedDioriteStairs, 1.5f },
+ { Material.PolishedGranite, 1.5f },
+ { Material.PolishedGraniteSlab, 1.5f },
+ { Material.PolishedGraniteStairs, 1.5f },
+ { Material.PolishedTuff, 1.5f },
+ { Material.PolishedTuffSlab, 1.5f },
+ { Material.PolishedTuffStairs, 1.5f },
+ { Material.PolishedTuffWall, 1.5f },
{ Material.Poppy, 0.0f },
{ Material.Potatoes, 0.0f },
{ Material.PottedAcaciaSapling, 0.0f },
@@ -336,777 +829,355 @@ namespace MinecraftClient.Mapping
{ Material.PottedWarpedRoots, 0.0f },
{ Material.PottedWhiteTulip, 0.0f },
{ Material.PottedWitherRose, 0.0f },
- { Material.PowderSnowCauldron, 0.0f },
- { Material.PrismarineWall, 0.0f },
- { Material.PurpleCandle, 0.0f },
- { Material.PurpleCandleCake, 0.0f },
- { Material.PurpleShulkerBox, 0.0f },
- { Material.QuartzBricks, 0.0f },
- { Material.RedCandle, 0.0f },
- { Material.RedCandleCake, 0.0f },
+ { Material.PowderSnow, 0.25f },
+ { Material.PowderSnowCauldron, 2.0f },
+ { Material.PoweredRail, 0.7f },
+ { Material.Prismarine, 1.5f },
+ { Material.PrismarineBrickSlab, 1.5f },
+ { Material.PrismarineBrickStairs, 1.5f },
+ { Material.PrismarineBricks, 1.5f },
+ { Material.PrismarineSlab, 1.5f },
+ { Material.PrismarineStairs, 1.5f },
+ { Material.PrismarineWall, 1.5f },
+ { Material.Pumpkin, 1.0f },
+ { Material.PumpkinStem, 0.0f },
+ { Material.PurpleBanner, 1.0f },
+ { Material.PurpleBed, 0.2f },
+ { Material.PurpleCandle, 0.1f },
+ { Material.PurpleCandleCake, 0.5f },
+ { Material.PurpleCarpet, 0.1f },
+ { Material.PurpleConcrete, 1.8f },
+ { Material.PurpleConcretePowder, 0.5f },
+ { Material.PurpleGlazedTerracotta, 1.4f },
+ { Material.PurpleShulkerBox, 2.0f },
+ { Material.PurpleStainedGlass, 0.3f },
+ { Material.PurpleStainedGlassPane, 0.3f },
+ { Material.PurpleTerracotta, 1.25f },
+ { Material.PurpleWallBanner, 1.0f },
+ { Material.PurpleWool, 0.8f },
+ { Material.PurpurBlock, 1.5f },
+ { Material.PurpurPillar, 1.5f },
+ { Material.PurpurSlab, 2.0f },
+ { Material.PurpurStairs, 1.5f },
+ { Material.QuartzBlock, 0.8f },
+ { Material.QuartzBricks, 0.8f },
+ { Material.QuartzPillar, 0.8f },
+ { Material.QuartzSlab, 2.0f },
+ { Material.QuartzStairs, 0.8f },
+ { Material.Rail, 0.7f },
+ { Material.RawCopperBlock, 5.0f },
+ { Material.RawGoldBlock, 5.0f },
+ { Material.RawIronBlock, 5.0f },
+ { Material.RedBanner, 1.0f },
+ { Material.RedBed, 0.2f },
+ { Material.RedCandle, 0.1f },
+ { Material.RedCandleCake, 0.5f },
+ { Material.RedCarpet, 0.1f },
+ { Material.RedConcrete, 1.8f },
+ { Material.RedConcretePowder, 0.5f },
+ { Material.RedGlazedTerracotta, 1.4f },
{ Material.RedMushroom, 0.0f },
- { Material.RedNetherBrickSlab, 0.0f },
- { Material.RedNetherBrickWall, 0.0f },
- { Material.RedSandstoneWall, 0.0f },
- { Material.RedShulkerBox, 0.0f },
+ { Material.RedMushroomBlock, 0.2f },
+ { Material.RedNetherBrickSlab, 2.0f },
+ { Material.RedNetherBrickStairs, 2.0f },
+ { Material.RedNetherBrickWall, 2.0f },
+ { Material.RedNetherBricks, 2.0f },
+ { Material.RedSand, 0.5f },
+ { Material.RedSandstone, 0.8f },
+ { Material.RedSandstoneSlab, 2.0f },
+ { Material.RedSandstoneStairs, 0.8f },
+ { Material.RedSandstoneWall, 0.8f },
+ { Material.RedShulkerBox, 2.0f },
+ { Material.RedStainedGlass, 0.3f },
+ { Material.RedStainedGlassPane, 0.3f },
+ { Material.RedTerracotta, 1.25f },
{ Material.RedTulip, 0.0f },
+ { Material.RedWallBanner, 1.0f },
+ { Material.RedWool, 0.8f },
+ { Material.RedstoneBlock, 5.0f },
+ { Material.RedstoneLamp, 0.3f },
+ { Material.RedstoneOre, 3.0f },
{ Material.RedstoneTorch, 0.0f },
{ Material.RedstoneWallTorch, 0.0f },
{ Material.RedstoneWire, 0.0f },
+ { Material.ReinforcedDeepslate, 55.0f },
{ Material.Repeater, 0.0f },
+ { Material.RepeatingCommandBlock, -1.0f },
{ Material.ResinBlock, 0.0f },
+ { Material.ResinBrickSlab, 1.5f },
+ { Material.ResinBrickStairs, 1.5f },
+ { Material.ResinBrickWall, 1.5f },
+ { Material.ResinBricks, 1.5f },
{ Material.ResinClump, 0.0f },
+ { Material.RespawnAnchor, 50.0f },
+ { Material.RootedDirt, 0.5f },
{ Material.RoseBush, 0.0f },
- { Material.SandstoneWall, 0.0f },
+ { Material.Sand, 0.5f },
+ { Material.Sandstone, 0.8f },
+ { Material.SandstoneSlab, 2.0f },
+ { Material.SandstoneStairs, 0.8f },
+ { Material.SandstoneWall, 0.8f },
{ Material.Scaffolding, 0.0f },
+ { Material.Sculk, 0.2f },
+ { Material.SculkCatalyst, 3.0f },
+ { Material.SculkSensor, 1.5f },
+ { Material.SculkShrieker, 3.0f },
+ { Material.SculkVein, 0.2f },
+ { Material.SeaLantern, 0.3f },
{ Material.SeaPickle, 0.0f },
{ Material.Seagrass, 0.0f },
{ Material.ShortDryGrass, 0.0f },
{ Material.ShortGrass, 0.0f },
- { Material.ShulkerBox, 0.0f },
+ { Material.Shroomlight, 1.0f },
+ { Material.ShulkerBox, 2.0f },
+ { Material.SkeletonSkull, 1.0f },
+ { Material.SkeletonWallSkull, 1.0f },
{ Material.SlimeBlock, 0.0f },
- { Material.SmallAmethystBud, 0.0f },
+ { Material.SmallAmethystBud, 1.5f },
{ Material.SmallDripleaf, 0.0f },
- { Material.SmoothBasalt, 0.0f },
- { Material.SmoothQuartzSlab, 0.0f },
- { Material.SmoothRedSandstoneSlab, 0.0f },
- { Material.SmoothSandstoneSlab, 0.0f },
+ { Material.SmithingTable, 2.5f },
+ { Material.Smoker, 3.5f },
+ { Material.SmoothBasalt, 1.25f },
+ { Material.SmoothQuartz, 2.0f },
+ { Material.SmoothQuartzSlab, 2.0f },
+ { Material.SmoothQuartzStairs, 2.0f },
+ { Material.SmoothRedSandstone, 2.0f },
+ { Material.SmoothRedSandstoneSlab, 2.0f },
+ { Material.SmoothRedSandstoneStairs, 2.0f },
+ { Material.SmoothSandstone, 2.0f },
+ { Material.SmoothSandstoneSlab, 2.0f },
+ { Material.SmoothSandstoneStairs, 2.0f },
+ { Material.SmoothStone, 2.0f },
+ { Material.SmoothStoneSlab, 2.0f },
+ { Material.SnifferEgg, 0.5f },
+ { Material.Snow, 0.1f },
+ { Material.SnowBlock, 0.2f },
+ { Material.SoulCampfire, 2.0f },
{ Material.SoulFire, 0.0f },
+ { Material.SoulLantern, 3.5f },
+ { Material.SoulSand, 0.5f },
+ { Material.SoulSoil, 0.5f },
{ Material.SoulTorch, 0.0f },
{ Material.SoulWallTorch, 0.0f },
+ { Material.Spawner, 5.0f },
+ { Material.Sponge, 0.6f },
{ Material.SporeBlossom, 0.0f },
- { Material.SpruceButton, 0.0f },
- { Material.SpruceLeaves, 0.0f },
- { Material.SpruceLog, 0.0f },
+ { Material.SpruceButton, 0.5f },
+ { Material.SpruceDoor, 3.0f },
+ { Material.SpruceFence, 2.0f },
+ { Material.SpruceFenceGate, 2.0f },
+ { Material.SpruceHangingSign, 1.0f },
+ { Material.SpruceLeaves, 0.2f },
+ { Material.SpruceLog, 2.0f },
+ { Material.SprucePlanks, 2.0f },
+ { Material.SprucePressurePlate, 0.5f },
{ Material.SpruceSapling, 0.0f },
+ { Material.SpruceShelf, 2.0f },
+ { Material.SpruceSign, 1.0f },
+ { Material.SpruceSlab, 2.0f },
+ { Material.SpruceStairs, 2.0f },
+ { Material.SpruceTrapdoor, 3.0f },
+ { Material.SpruceWallHangingSign, 1.0f },
+ { Material.SpruceWallSign, 1.0f },
+ { Material.SpruceWood, 2.0f },
{ Material.StickyPiston, 0.0f },
- { Material.StoneBrickWall, 0.0f },
- { Material.StoneButton, 0.0f },
- { Material.StrippedAcaciaLog, 0.0f },
- { Material.StrippedBambooBlock, 0.0f },
- { Material.StrippedBirchLog, 0.0f },
- { Material.StrippedCherryLog, 0.0f },
- { Material.StrippedCrimsonStem, 0.0f },
- { Material.StrippedDarkOakLog, 0.0f },
- { Material.StrippedJungleLog, 0.0f },
- { Material.StrippedMangroveLog, 0.0f },
- { Material.StrippedMangroveWood, 0.0f },
- { Material.StrippedOakLog, 0.0f },
- { Material.StrippedPaleOakLog, 0.0f },
- { Material.StrippedSpruceLog, 0.0f },
- { Material.StrippedWarpedStem, 0.0f },
+ { Material.Stone, 1.5f },
+ { Material.StoneBrickSlab, 2.0f },
+ { Material.StoneBrickStairs, 1.5f },
+ { Material.StoneBrickWall, 1.5f },
+ { Material.StoneBricks, 1.5f },
+ { Material.StoneButton, 0.5f },
+ { Material.StonePressurePlate, 0.5f },
+ { Material.StoneSlab, 2.0f },
+ { Material.StoneStairs, 1.5f },
+ { Material.Stonecutter, 3.5f },
+ { Material.StrippedAcaciaLog, 2.0f },
+ { Material.StrippedAcaciaWood, 2.0f },
+ { Material.StrippedBambooBlock, 2.0f },
+ { Material.StrippedBirchLog, 2.0f },
+ { Material.StrippedBirchWood, 2.0f },
+ { Material.StrippedCherryLog, 2.0f },
+ { Material.StrippedCherryWood, 2.0f },
+ { Material.StrippedCrimsonHyphae, 2.0f },
+ { Material.StrippedCrimsonStem, 2.0f },
+ { Material.StrippedDarkOakLog, 2.0f },
+ { Material.StrippedDarkOakWood, 2.0f },
+ { Material.StrippedJungleLog, 2.0f },
+ { Material.StrippedJungleWood, 2.0f },
+ { Material.StrippedMangroveLog, 2.0f },
+ { Material.StrippedMangroveWood, 2.0f },
+ { Material.StrippedOakLog, 2.0f },
+ { Material.StrippedOakWood, 2.0f },
+ { Material.StrippedPaleOakLog, 2.0f },
+ { Material.StrippedPaleOakWood, 2.0f },
+ { Material.StrippedSpruceLog, 2.0f },
+ { Material.StrippedSpruceWood, 2.0f },
+ { Material.StrippedWarpedHyphae, 2.0f },
+ { Material.StrippedWarpedStem, 2.0f },
+ { Material.StructureBlock, -1.0f },
{ Material.StructureVoid, 0.0f },
{ Material.SugarCane, 0.0f },
{ Material.Sunflower, 0.0f },
+ { Material.SuspiciousGravel, 0.25f },
+ { Material.SuspiciousSand, 0.25f },
{ Material.SweetBerryBush, 0.0f },
{ Material.TallDryGrass, 0.0f },
{ Material.TallGrass, 0.0f },
{ Material.TallSeagrass, 0.0f },
- { Material.TintedGlass, 0.0f },
+ { Material.Target, 0.5f },
+ { Material.Terracotta, 1.25f },
+ { Material.TestBlock, -1.0f },
+ { Material.TestInstanceBlock, -1.0f },
+ { Material.TintedGlass, 0.3f },
{ Material.Tnt, 0.0f },
{ Material.Torch, 0.0f },
{ Material.Torchflower, 0.0f },
{ Material.TorchflowerCrop, 0.0f },
+ { Material.TrappedChest, 2.5f },
+ { Material.TrialSpawner, 50.0f },
{ Material.Tripwire, 0.0f },
{ Material.TripwireHook, 0.0f },
{ Material.TubeCoral, 0.0f },
+ { Material.TubeCoralBlock, 1.5f },
{ Material.TubeCoralFan, 0.0f },
{ Material.TubeCoralWallFan, 0.0f },
- { Material.TuffBrickSlab, 0.0f },
- { Material.TuffBrickStairs, 0.0f },
- { Material.TuffBrickWall, 0.0f },
- { Material.TuffBricks, 0.0f },
- { Material.TuffSlab, 0.0f },
- { Material.TuffStairs, 0.0f },
- { Material.TuffWall, 0.0f },
+ { Material.Tuff, 1.5f },
+ { Material.TuffBrickSlab, 1.5f },
+ { Material.TuffBrickStairs, 1.5f },
+ { Material.TuffBrickWall, 1.5f },
+ { Material.TuffBricks, 1.5f },
+ { Material.TuffSlab, 1.5f },
+ { Material.TuffStairs, 1.5f },
+ { Material.TuffWall, 1.5f },
+ { Material.TurtleEgg, 0.5f },
{ Material.TwistingVines, 0.0f },
{ Material.TwistingVinesPlant, 0.0f },
+ { Material.Vault, 50.0f },
+ { Material.VerdantFroglight, 0.3f },
+ { Material.Vine, 0.2f },
{ Material.VoidAir, 0.0f },
{ Material.WallTorch, 0.0f },
- { Material.WarpedButton, 0.0f },
+ { Material.WarpedButton, 0.5f },
+ { Material.WarpedDoor, 3.0f },
+ { Material.WarpedFence, 2.0f },
+ { Material.WarpedFenceGate, 2.0f },
{ Material.WarpedFungus, 0.0f },
- { Material.WarpedRoots, 0.0f },
- { Material.WarpedStem, 0.0f },
- { Material.WaterCauldron, 0.0f },
- { Material.WaxedChiseledCopper, 0.0f },
- { Material.WaxedCopperBlock, 0.0f },
- { Material.WaxedCopperBulb, 0.0f },
- { Material.WaxedCopperChest, 0.0f },
- { Material.WaxedCopperDoor, 0.0f },
- { Material.WaxedCopperGolemStatue, 0.0f },
- { Material.WaxedCopperGrate, 0.0f },
- { Material.WaxedCopperTrapdoor, 0.0f },
- { Material.WaxedCutCopper, 0.0f },
- { Material.WaxedCutCopperSlab, 0.0f },
- { Material.WaxedExposedChiseledCopper, 0.0f },
- { Material.WaxedExposedCopper, 0.0f },
- { Material.WaxedExposedCopperBulb, 0.0f },
- { Material.WaxedExposedCopperChest, 0.0f },
- { Material.WaxedExposedCopperDoor, 0.0f },
- { Material.WaxedExposedCopperGolemStatue, 0.0f },
- { Material.WaxedExposedCopperGrate, 0.0f },
- { Material.WaxedExposedCopperTrapdoor, 0.0f },
- { Material.WaxedExposedCutCopper, 0.0f },
- { Material.WaxedExposedCutCopperSlab, 0.0f },
- { Material.WaxedExposedLightningRod, 0.0f },
- { Material.WaxedLightningRod, 0.0f },
- { Material.WaxedOxidizedChiseledCopper, 0.0f },
- { Material.WaxedOxidizedCopper, 0.0f },
- { Material.WaxedOxidizedCopperBulb, 0.0f },
- { Material.WaxedOxidizedCopperChest, 0.0f },
- { Material.WaxedOxidizedCopperDoor, 0.0f },
- { Material.WaxedOxidizedCopperGolemStatue, 0.0f },
- { Material.WaxedOxidizedCopperGrate, 0.0f },
- { Material.WaxedOxidizedCopperTrapdoor, 0.0f },
- { Material.WaxedOxidizedCutCopper, 0.0f },
- { Material.WaxedOxidizedCutCopperSlab, 0.0f },
- { Material.WaxedOxidizedLightningRod, 0.0f },
- { Material.WaxedWeatheredChiseledCopper, 0.0f },
- { Material.WaxedWeatheredCopper, 0.0f },
- { Material.WaxedWeatheredCopperBulb, 0.0f },
- { Material.WaxedWeatheredCopperChest, 0.0f },
- { Material.WaxedWeatheredCopperDoor, 0.0f },
- { Material.WaxedWeatheredCopperGolemStatue, 0.0f },
- { Material.WaxedWeatheredCopperGrate, 0.0f },
- { Material.WaxedWeatheredCopperTrapdoor, 0.0f },
- { Material.WaxedWeatheredCutCopper, 0.0f },
- { Material.WaxedWeatheredCutCopperSlab, 0.0f },
- { Material.WaxedWeatheredLightningRod, 0.0f },
- { Material.WeatheredChiseledCopper, 0.0f },
- { Material.WeatheredCopper, 0.0f },
- { Material.WeatheredCopperBulb, 0.0f },
- { Material.WeatheredCopperChest, 0.0f },
- { Material.WeatheredCopperDoor, 0.0f },
- { Material.WeatheredCopperGolemStatue, 0.0f },
- { Material.WeatheredCopperGrate, 0.0f },
- { Material.WeatheredCopperTrapdoor, 0.0f },
- { Material.WeatheredCutCopper, 0.0f },
- { Material.WeatheredCutCopperSlab, 0.0f },
- { Material.WeatheredCutCopperStairs, 0.0f },
- { Material.WeatheredLightningRod, 0.0f },
- { Material.WeepingVines, 0.0f },
- { Material.WeepingVinesPlant, 0.0f },
- { Material.Wheat, 0.0f },
- { Material.WhiteCandle, 0.0f },
- { Material.WhiteCandleCake, 0.0f },
- { Material.WhiteShulkerBox, 0.0f },
- { Material.WhiteTulip, 0.0f },
- { Material.Wildflowers, 0.0f },
- { Material.WitherRose, 0.0f },
- { Material.YellowCandle, 0.0f },
- { Material.YellowCandleCake, 0.0f },
- { Material.YellowShulkerBox, 0.0f },
- // Hardness 0.1: 23 blocks
- { Material.BigDripleaf, 0.1f },
- { Material.BigDripleafStem, 0.1f },
- { Material.BlackCarpet, 0.1f },
- { Material.BlueCarpet, 0.1f },
- { Material.BrownCarpet, 0.1f },
- { Material.CyanCarpet, 0.1f },
- { Material.GrayCarpet, 0.1f },
- { Material.GreenCarpet, 0.1f },
- { Material.LightBlueCarpet, 0.1f },
- { Material.LightGrayCarpet, 0.1f },
- { Material.LimeCarpet, 0.1f },
- { Material.MagentaCarpet, 0.1f },
- { Material.MossBlock, 0.1f },
- { Material.MossCarpet, 0.1f },
- { Material.OrangeCarpet, 0.1f },
- { Material.PaleMossBlock, 0.1f },
- { Material.PaleMossCarpet, 0.1f },
- { Material.PinkCarpet, 0.1f },
- { Material.PurpleCarpet, 0.1f },
- { Material.RedCarpet, 0.1f },
- { Material.Snow, 0.1f },
- { Material.WhiteCarpet, 0.1f },
- { Material.YellowCarpet, 0.1f },
- // Hardness 0.2: 12 blocks
- { Material.BrownMushroomBlock, 0.2f },
- { Material.CherryLeaves, 0.2f },
- { Material.Cocoa, 0.2f },
- { Material.DaylightDetector, 0.2f },
- { Material.GlowLichen, 0.2f },
- { Material.MushroomStem, 0.2f },
- { Material.PaleOakLeaves, 0.2f },
- { Material.RedMushroomBlock, 0.2f },
- { Material.Sculk, 0.2f },
- { Material.SculkVein, 0.2f },
- { Material.SnowBlock, 0.2f },
- { Material.Vine, 0.2f },
- { Material.PowderSnow, 0.25f },
- { Material.SuspiciousGravel, 0.25f },
- { Material.SuspiciousSand, 0.25f },
- // Hardness 0.3: 24 blocks
- { Material.BeeNest, 0.3f },
- { Material.BlackStainedGlassPane, 0.3f },
- { Material.BlueStainedGlassPane, 0.3f },
- { Material.BrownStainedGlassPane, 0.3f },
- { Material.CyanStainedGlassPane, 0.3f },
- { Material.Glass, 0.3f },
- { Material.Glowstone, 0.3f },
- { Material.GrayStainedGlassPane, 0.3f },
- { Material.GreenStainedGlassPane, 0.3f },
- { Material.LightBlueStainedGlassPane, 0.3f },
- { Material.LightGrayStainedGlassPane, 0.3f },
- { Material.LimeStainedGlassPane, 0.3f },
- { Material.MagentaStainedGlassPane, 0.3f },
- { Material.OchreFroglight, 0.3f },
- { Material.OrangeStainedGlassPane, 0.3f },
- { Material.PearlescentFroglight, 0.3f },
- { Material.PinkStainedGlassPane, 0.3f },
- { Material.PurpleStainedGlassPane, 0.3f },
- { Material.RedStainedGlassPane, 0.3f },
- { Material.RedstoneLamp, 0.3f },
- { Material.SeaLantern, 0.3f },
- { Material.VerdantFroglight, 0.3f },
- { Material.WhiteStainedGlassPane, 0.3f },
- { Material.YellowStainedGlassPane, 0.3f },
- { Material.Cactus, 0.4f },
- { Material.ChorusFlower, 0.4f },
- { Material.ChorusPlant, 0.4f },
- { Material.CrimsonNylium, 0.4f },
- { Material.Ladder, 0.4f },
- { Material.Netherrack, 0.4f },
- { Material.WarpedNylium, 0.4f },
- // Hardness 0.5: 52 blocks
- { Material.AcaciaPressurePlate, 0.5f },
- { Material.BambooPressurePlate, 0.5f },
- { Material.BirchPressurePlate, 0.5f },
- { Material.BlackConcretePowder, 0.5f },
- { Material.BlueConcretePowder, 0.5f },
- { Material.BrewingStand, 0.5f },
- { Material.BrownConcretePowder, 0.5f },
- { Material.Cake, 0.5f },
- { Material.CherryPressurePlate, 0.5f },
- { Material.CoarseDirt, 0.5f },
- { Material.CrimsonPressurePlate, 0.5f },
- { Material.CyanConcretePowder, 0.5f },
- { Material.DarkOakPressurePlate, 0.5f },
- { Material.Dirt, 0.5f },
- { Material.DriedKelpBlock, 0.5f },
- { Material.FrostedIce, 0.5f },
- { Material.GrayConcretePowder, 0.5f },
- { Material.GreenConcretePowder, 0.5f },
- { Material.HayBlock, 0.5f },
- { Material.HeavyWeightedPressurePlate, 0.5f },
- { Material.Ice, 0.5f },
- { Material.JunglePressurePlate, 0.5f },
- { Material.Lever, 0.5f },
- { Material.LightBlueConcretePowder, 0.5f },
- { Material.LightGrayConcretePowder, 0.5f },
- { Material.LightWeightedPressurePlate, 0.5f },
- { Material.LimeConcretePowder, 0.5f },
- { Material.MagentaConcretePowder, 0.5f },
- { Material.MagmaBlock, 0.5f },
- { Material.MangrovePressurePlate, 0.5f },
- { Material.OakPressurePlate, 0.5f },
- { Material.OrangeConcretePowder, 0.5f },
- { Material.PackedIce, 0.5f },
- { Material.PaleOakPressurePlate, 0.5f },
- { Material.PinkConcretePowder, 0.5f },
- { Material.Podzol, 0.5f },
- { Material.PolishedBlackstonePressurePlate, 0.5f },
- { Material.PurpleConcretePowder, 0.5f },
- { Material.RedConcretePowder, 0.5f },
- { Material.RedSand, 0.5f },
- { Material.RootedDirt, 0.5f },
- { Material.Sand, 0.5f },
- { Material.SnifferEgg, 0.5f },
- { Material.SoulSand, 0.5f },
- { Material.SoulSoil, 0.5f },
- { Material.SprucePressurePlate, 0.5f },
- { Material.StonePressurePlate, 0.5f },
- { Material.Target, 0.5f },
- { Material.TurtleEgg, 0.5f },
- { Material.WarpedPressurePlate, 0.5f },
- { Material.WhiteConcretePowder, 0.5f },
- { Material.YellowConcretePowder, 0.5f },
- // Hardness 0.6: 10 blocks
- { Material.Beehive, 0.6f },
- { Material.Clay, 0.6f },
- { Material.Composter, 0.6f },
- { Material.Farmland, 0.6f },
- { Material.GrassBlock, 0.6f },
- { Material.Gravel, 0.6f },
- { Material.HoneycombBlock, 0.6f },
- { Material.Mycelium, 0.6f },
- { Material.Sponge, 0.6f },
- { Material.WetSponge, 0.6f },
- { Material.DirtPath, 0.65f },
- { Material.ActivatorRail, 0.7f },
- { Material.DetectorRail, 0.7f },
- { Material.MangroveRoots, 0.7f },
- { Material.MuddyMangroveRoots, 0.7f },
- { Material.PoweredRail, 0.7f },
- { Material.Rail, 0.7f },
- { Material.Calcite, 0.75f },
- // Hardness 0.8: 26 blocks
- { Material.BlackWool, 0.8f },
- { Material.BlueWool, 0.8f },
- { Material.BrownWool, 0.8f },
- { Material.ChiseledQuartzBlock, 0.8f },
- { Material.ChiseledRedSandstone, 0.8f },
- { Material.ChiseledSandstone, 0.8f },
- { Material.CutRedSandstone, 0.8f },
- { Material.CutSandstone, 0.8f },
- { Material.CyanWool, 0.8f },
- { Material.GrayWool, 0.8f },
- { Material.GreenWool, 0.8f },
- { Material.LightBlueWool, 0.8f },
- { Material.LightGrayWool, 0.8f },
- { Material.LimeWool, 0.8f },
- { Material.MagentaWool, 0.8f },
- { Material.NoteBlock, 0.8f },
- { Material.OrangeWool, 0.8f },
- { Material.PinkWool, 0.8f },
- { Material.PurpleWool, 0.8f },
- { Material.QuartzBlock, 0.8f },
- { Material.QuartzPillar, 0.8f },
- { Material.RedSandstone, 0.8f },
- { Material.RedWool, 0.8f },
- { Material.Sandstone, 0.8f },
- { Material.WhiteWool, 0.8f },
- { Material.YellowWool, 0.8f },
- // Hardness 1.0: 100 blocks
- { Material.AcaciaHangingSign, 1.0f },
- { Material.AcaciaSign, 1.0f },
- { Material.AcaciaWallHangingSign, 1.0f },
- { Material.AcaciaWallSign, 1.0f },
- { Material.BambooHangingSign, 1.0f },
- { Material.BambooSign, 1.0f },
- { Material.BambooWallHangingSign, 1.0f },
- { Material.BambooWallSign, 1.0f },
- { Material.BirchHangingSign, 1.0f },
- { Material.BirchSign, 1.0f },
- { Material.BirchWallHangingSign, 1.0f },
- { Material.BirchWallSign, 1.0f },
- { Material.BlackBanner, 1.0f },
- { Material.BlackWallBanner, 1.0f },
- { Material.BlueBanner, 1.0f },
- { Material.BlueWallBanner, 1.0f },
- { Material.BrownBanner, 1.0f },
- { Material.BrownWallBanner, 1.0f },
- { Material.CarvedPumpkin, 1.0f },
- { Material.CherryHangingSign, 1.0f },
- { Material.CherrySign, 1.0f },
- { Material.CherryWallHangingSign, 1.0f },
- { Material.CherryWallSign, 1.0f },
- { Material.CreeperHead, 1.0f },
- { Material.CreeperWallHead, 1.0f },
- { Material.CrimsonHangingSign, 1.0f },
- { Material.CrimsonSign, 1.0f },
- { Material.CrimsonWallHangingSign, 1.0f },
- { Material.CrimsonWallSign, 1.0f },
- { Material.CyanBanner, 1.0f },
- { Material.CyanWallBanner, 1.0f },
- { Material.DarkOakHangingSign, 1.0f },
- { Material.DarkOakSign, 1.0f },
- { Material.DarkOakWallHangingSign, 1.0f },
- { Material.DarkOakWallSign, 1.0f },
- { Material.DragonHead, 1.0f },
- { Material.DragonWallHead, 1.0f },
- { Material.GrayBanner, 1.0f },
- { Material.GrayWallBanner, 1.0f },
- { Material.GreenBanner, 1.0f },
- { Material.GreenWallBanner, 1.0f },
- { Material.JackOLantern, 1.0f },
- { Material.JungleHangingSign, 1.0f },
- { Material.JungleSign, 1.0f },
- { Material.JungleWallHangingSign, 1.0f },
- { Material.JungleWallSign, 1.0f },
- { Material.LightBlueBanner, 1.0f },
- { Material.LightBlueWallBanner, 1.0f },
- { Material.LightGrayBanner, 1.0f },
- { Material.LightGrayWallBanner, 1.0f },
- { Material.LimeBanner, 1.0f },
- { Material.LimeWallBanner, 1.0f },
- { Material.MagentaBanner, 1.0f },
- { Material.MagentaWallBanner, 1.0f },
- { Material.MangroveHangingSign, 1.0f },
- { Material.MangroveSign, 1.0f },
- { Material.MangroveWallHangingSign, 1.0f },
- { Material.MangroveWallSign, 1.0f },
- { Material.NetherWartBlock, 1.0f },
- { Material.OakHangingSign, 1.0f },
- { Material.OakSign, 1.0f },
- { Material.OakWallHangingSign, 1.0f },
- { Material.OakWallSign, 1.0f },
- { Material.OrangeBanner, 1.0f },
- { Material.OrangeWallBanner, 1.0f },
- { Material.PackedMud, 1.0f },
- { Material.PaleOakHangingSign, 1.0f },
- { Material.PaleOakSign, 1.0f },
- { Material.PaleOakWallHangingSign, 1.0f },
- { Material.PaleOakWallSign, 1.0f },
- { Material.PiglinHead, 1.0f },
- { Material.PiglinWallHead, 1.0f },
- { Material.PinkBanner, 1.0f },
- { Material.PinkWallBanner, 1.0f },
- { Material.PlayerHead, 1.0f },
- { Material.PlayerWallHead, 1.0f },
- { Material.PurpleBanner, 1.0f },
- { Material.PurpleWallBanner, 1.0f },
- { Material.RedBanner, 1.0f },
- { Material.RedWallBanner, 1.0f },
- { Material.Shroomlight, 1.0f },
- { Material.SkeletonSkull, 1.0f },
- { Material.SkeletonWallSkull, 1.0f },
- { Material.SpruceHangingSign, 1.0f },
- { Material.SpruceSign, 1.0f },
- { Material.SpruceWallHangingSign, 1.0f },
- { Material.SpruceWallSign, 1.0f },
{ Material.WarpedHangingSign, 1.0f },
+ { Material.WarpedHyphae, 2.0f },
+ { Material.WarpedNylium, 0.4f },
+ { Material.WarpedPlanks, 2.0f },
+ { Material.WarpedPressurePlate, 0.5f },
+ { Material.WarpedRoots, 0.0f },
+ { Material.WarpedShelf, 2.0f },
{ Material.WarpedSign, 1.0f },
+ { Material.WarpedSlab, 2.0f },
+ { Material.WarpedStairs, 2.0f },
+ { Material.WarpedStem, 2.0f },
+ { Material.WarpedTrapdoor, 3.0f },
{ Material.WarpedWallHangingSign, 1.0f },
{ Material.WarpedWallSign, 1.0f },
{ Material.WarpedWartBlock, 1.0f },
+ { Material.Water, 100.0f },
+ { Material.WaterCauldron, 2.0f },
+ { Material.WaxedChiseledCopper, 3.0f },
+ { Material.WaxedCopperBlock, 3.0f },
+ { Material.WaxedCopperBulb, 3.0f },
+ { Material.WaxedCopperChest, 3.0f },
+ { Material.WaxedCopperDoor, 3.0f },
+ { Material.WaxedCopperGolemStatue, 3.0f },
+ { Material.WaxedCopperGrate, 3.0f },
+ { Material.WaxedCopperTrapdoor, 3.0f },
+ { Material.WaxedCutCopper, 3.0f },
+ { Material.WaxedCutCopperSlab, 3.0f },
+ { Material.WaxedCutCopperStairs, 3.0f },
+ { Material.WaxedExposedChiseledCopper, 3.0f },
+ { Material.WaxedExposedCopper, 3.0f },
+ { Material.WaxedExposedCopperBulb, 3.0f },
+ { Material.WaxedExposedCopperChest, 3.0f },
+ { Material.WaxedExposedCopperDoor, 3.0f },
+ { Material.WaxedExposedCopperGolemStatue, 3.0f },
+ { Material.WaxedExposedCopperGrate, 3.0f },
+ { Material.WaxedExposedCopperTrapdoor, 3.0f },
+ { Material.WaxedExposedCutCopper, 3.0f },
+ { Material.WaxedExposedCutCopperSlab, 3.0f },
+ { Material.WaxedExposedCutCopperStairs, 3.0f },
+ { Material.WaxedExposedLightningRod, 3.0f },
+ { Material.WaxedLightningRod, 3.0f },
+ { Material.WaxedOxidizedChiseledCopper, 3.0f },
+ { Material.WaxedOxidizedCopper, 3.0f },
+ { Material.WaxedOxidizedCopperBulb, 3.0f },
+ { Material.WaxedOxidizedCopperChest, 3.0f },
+ { Material.WaxedOxidizedCopperDoor, 3.0f },
+ { Material.WaxedOxidizedCopperGolemStatue, 3.0f },
+ { Material.WaxedOxidizedCopperGrate, 3.0f },
+ { Material.WaxedOxidizedCopperTrapdoor, 3.0f },
+ { Material.WaxedOxidizedCutCopper, 3.0f },
+ { Material.WaxedOxidizedCutCopperSlab, 3.0f },
+ { Material.WaxedOxidizedCutCopperStairs, 3.0f },
+ { Material.WaxedOxidizedLightningRod, 3.0f },
+ { Material.WaxedWeatheredChiseledCopper, 3.0f },
+ { Material.WaxedWeatheredCopper, 3.0f },
+ { Material.WaxedWeatheredCopperBulb, 3.0f },
+ { Material.WaxedWeatheredCopperChest, 3.0f },
+ { Material.WaxedWeatheredCopperDoor, 3.0f },
+ { Material.WaxedWeatheredCopperGolemStatue, 3.0f },
+ { Material.WaxedWeatheredCopperGrate, 3.0f },
+ { Material.WaxedWeatheredCopperTrapdoor, 3.0f },
+ { Material.WaxedWeatheredCutCopper, 3.0f },
+ { Material.WaxedWeatheredCutCopperSlab, 3.0f },
+ { Material.WaxedWeatheredCutCopperStairs, 3.0f },
+ { Material.WaxedWeatheredLightningRod, 3.0f },
+ { Material.WeatheredChiseledCopper, 3.0f },
+ { Material.WeatheredCopper, 3.0f },
+ { Material.WeatheredCopperBulb, 3.0f },
+ { Material.WeatheredCopperChest, 3.0f },
+ { Material.WeatheredCopperDoor, 3.0f },
+ { Material.WeatheredCopperGolemStatue, 3.0f },
+ { Material.WeatheredCopperGrate, 3.0f },
+ { Material.WeatheredCopperTrapdoor, 3.0f },
+ { Material.WeatheredCutCopper, 3.0f },
+ { Material.WeatheredCutCopperSlab, 3.0f },
+ { Material.WeatheredCutCopperStairs, 3.0f },
+ { Material.WeatheredLightningRod, 3.0f },
+ { Material.WeepingVines, 0.0f },
+ { Material.WeepingVinesPlant, 0.0f },
+ { Material.WetSponge, 0.6f },
+ { Material.Wheat, 0.0f },
{ Material.WhiteBanner, 1.0f },
+ { Material.WhiteBed, 0.2f },
+ { Material.WhiteCandle, 0.1f },
+ { Material.WhiteCandleCake, 0.5f },
+ { Material.WhiteCarpet, 0.1f },
+ { Material.WhiteConcrete, 1.8f },
+ { Material.WhiteConcretePowder, 0.5f },
+ { Material.WhiteGlazedTerracotta, 1.4f },
+ { Material.WhiteShulkerBox, 2.0f },
+ { Material.WhiteStainedGlass, 0.3f },
+ { Material.WhiteStainedGlassPane, 0.3f },
+ { Material.WhiteTerracotta, 1.25f },
+ { Material.WhiteTulip, 0.0f },
{ Material.WhiteWallBanner, 1.0f },
+ { Material.WhiteWool, 0.8f },
+ { Material.Wildflowers, 0.0f },
+ { Material.WitherRose, 0.0f },
{ Material.WitherSkeletonSkull, 1.0f },
{ Material.WitherSkeletonWallSkull, 1.0f },
{ Material.YellowBanner, 1.0f },
+ { Material.YellowBed, 0.2f },
+ { Material.YellowCandle, 0.1f },
+ { Material.YellowCandleCake, 0.5f },
+ { Material.YellowCarpet, 0.1f },
+ { Material.YellowConcrete, 1.8f },
+ { Material.YellowConcretePowder, 0.5f },
+ { Material.YellowGlazedTerracotta, 1.4f },
+ { Material.YellowShulkerBox, 2.0f },
+ { Material.YellowStainedGlass, 0.3f },
+ { Material.YellowStainedGlassPane, 0.3f },
+ { Material.YellowTerracotta, 1.25f },
{ Material.YellowWallBanner, 1.0f },
+ { Material.YellowWool, 0.8f },
{ Material.ZombieHead, 1.0f },
{ Material.ZombieWallHead, 1.0f },
- // Hardness 1.25: 19 blocks
- { Material.Basalt, 1.25f },
- { Material.BlackTerracotta, 1.25f },
- { Material.BlueTerracotta, 1.25f },
- { Material.BrownTerracotta, 1.25f },
- { Material.CyanTerracotta, 1.25f },
- { Material.GrayTerracotta, 1.25f },
- { Material.GreenTerracotta, 1.25f },
- { Material.LightBlueTerracotta, 1.25f },
- { Material.LightGrayTerracotta, 1.25f },
- { Material.LimeTerracotta, 1.25f },
- { Material.MagentaTerracotta, 1.25f },
- { Material.OrangeTerracotta, 1.25f },
- { Material.PinkTerracotta, 1.25f },
- { Material.PolishedBasalt, 1.25f },
- { Material.PurpleTerracotta, 1.25f },
- { Material.RedTerracotta, 1.25f },
- { Material.Terracotta, 1.25f },
- { Material.WhiteTerracotta, 1.25f },
- { Material.YellowTerracotta, 1.25f },
- // Hardness 1.4: 16 blocks
- { Material.BlackGlazedTerracotta, 1.4f },
- { Material.BlueGlazedTerracotta, 1.4f },
- { Material.BrownGlazedTerracotta, 1.4f },
- { Material.CyanGlazedTerracotta, 1.4f },
- { Material.GrayGlazedTerracotta, 1.4f },
- { Material.GreenGlazedTerracotta, 1.4f },
- { Material.LightBlueGlazedTerracotta, 1.4f },
- { Material.LightGrayGlazedTerracotta, 1.4f },
- { Material.LimeGlazedTerracotta, 1.4f },
- { Material.MagentaGlazedTerracotta, 1.4f },
- { Material.OrangeGlazedTerracotta, 1.4f },
- { Material.PinkGlazedTerracotta, 1.4f },
- { Material.PurpleGlazedTerracotta, 1.4f },
- { Material.RedGlazedTerracotta, 1.4f },
- { Material.WhiteGlazedTerracotta, 1.4f },
- { Material.YellowGlazedTerracotta, 1.4f },
- // Hardness 1.5: 49 blocks
- { Material.AmethystBlock, 1.5f },
- { Material.AmethystCluster, 1.5f },
- { Material.Andesite, 1.5f },
- { Material.Blackstone, 1.5f },
- { Material.Bookshelf, 1.5f },
- { Material.BrainCoralBlock, 1.5f },
- { Material.BubbleCoralBlock, 1.5f },
- { Material.BuddingAmethyst, 1.5f },
- { Material.ChiseledBookshelf, 1.5f },
- { Material.ChiseledPolishedBlackstone, 1.5f },
- { Material.ChiseledResinBricks, 1.5f },
- { Material.ChiseledStoneBricks, 1.5f },
- { Material.CrackedStoneBricks, 1.5f },
- { Material.Crafter, 1.5f },
- { Material.DarkPrismarine, 1.5f },
- { Material.DarkPrismarineSlab, 1.5f },
- { Material.DeadBrainCoralBlock, 1.5f },
- { Material.DeadBubbleCoralBlock, 1.5f },
- { Material.DeadFireCoralBlock, 1.5f },
- { Material.DeadHornCoralBlock, 1.5f },
- { Material.DeadTubeCoralBlock, 1.5f },
- { Material.Diorite, 1.5f },
- { Material.DripstoneBlock, 1.5f },
- { Material.FireCoralBlock, 1.5f },
- { Material.Granite, 1.5f },
- { Material.HornCoralBlock, 1.5f },
- { Material.MossyStoneBricks, 1.5f },
- { Material.MudBrickSlab, 1.5f },
- { Material.MudBricks, 1.5f },
- { Material.PistonHead, 1.5f },
- { Material.PointedDripstone, 1.5f },
- { Material.PolishedAndesite, 1.5f },
- { Material.PolishedBlackstoneBricks, 1.5f },
- { Material.PolishedDiorite, 1.5f },
- { Material.PolishedGranite, 1.5f },
- { Material.Prismarine, 1.5f },
- { Material.PrismarineBrickSlab, 1.5f },
- { Material.PrismarineBricks, 1.5f },
- { Material.PrismarineSlab, 1.5f },
- { Material.PurpurBlock, 1.5f },
- { Material.PurpurPillar, 1.5f },
- { Material.ResinBrickSlab, 1.5f },
- { Material.ResinBrickWall, 1.5f },
- { Material.ResinBricks, 1.5f },
- { Material.SculkSensor, 1.5f },
- { Material.Stone, 1.5f },
- { Material.StoneBricks, 1.5f },
- { Material.TubeCoralBlock, 1.5f },
- { Material.Tuff, 1.5f },
- // Hardness 1.8: 16 blocks
- { Material.BlackConcrete, 1.8f },
- { Material.BlueConcrete, 1.8f },
- { Material.BrownConcrete, 1.8f },
- { Material.CyanConcrete, 1.8f },
- { Material.GrayConcrete, 1.8f },
- { Material.GreenConcrete, 1.8f },
- { Material.LightBlueConcrete, 1.8f },
- { Material.LightGrayConcrete, 1.8f },
- { Material.LimeConcrete, 1.8f },
- { Material.MagentaConcrete, 1.8f },
- { Material.OrangeConcrete, 1.8f },
- { Material.PinkConcrete, 1.8f },
- { Material.PurpleConcrete, 1.8f },
- { Material.RedConcrete, 1.8f },
- { Material.WhiteConcrete, 1.8f },
- { Material.YellowConcrete, 1.8f },
- // Hardness 2.0: 117 blocks
- { Material.AcaciaFence, 2.0f },
- { Material.AcaciaFenceGate, 2.0f },
- { Material.AcaciaPlanks, 2.0f },
- { Material.AcaciaShelf, 2.0f },
- { Material.AcaciaSlab, 2.0f },
- { Material.AcaciaWood, 2.0f },
- { Material.BambooFence, 2.0f },
- { Material.BambooFenceGate, 2.0f },
- { Material.BambooMosaic, 2.0f },
- { Material.BambooMosaicSlab, 2.0f },
- { Material.BambooPlanks, 2.0f },
- { Material.BambooShelf, 2.0f },
- { Material.BambooSlab, 2.0f },
- { Material.BirchFence, 2.0f },
- { Material.BirchFenceGate, 2.0f },
- { Material.BirchPlanks, 2.0f },
- { Material.BirchShelf, 2.0f },
- { Material.BirchSlab, 2.0f },
- { Material.BirchWood, 2.0f },
- { Material.BlackstoneSlab, 2.0f },
- { Material.BoneBlock, 2.0f },
- { Material.BrickSlab, 2.0f },
- { Material.Bricks, 2.0f },
- { Material.Campfire, 2.0f },
- { Material.Cauldron, 2.0f },
- { Material.CherryFence, 2.0f },
- { Material.CherryFenceGate, 2.0f },
- { Material.CherryPlanks, 2.0f },
- { Material.CherryShelf, 2.0f },
- { Material.CherrySlab, 2.0f },
- { Material.CherryWood, 2.0f },
- { Material.ChiseledNetherBricks, 2.0f },
- { Material.Cobblestone, 2.0f },
- { Material.CobblestoneSlab, 2.0f },
- { Material.CrackedNetherBricks, 2.0f },
- { Material.CrimsonFence, 2.0f },
- { Material.CrimsonFenceGate, 2.0f },
- { Material.CrimsonHyphae, 2.0f },
- { Material.CrimsonPlanks, 2.0f },
- { Material.CrimsonShelf, 2.0f },
- { Material.CrimsonSlab, 2.0f },
- { Material.CutRedSandstoneSlab, 2.0f },
- { Material.CutSandstoneSlab, 2.0f },
- { Material.DarkOakFence, 2.0f },
- { Material.DarkOakFenceGate, 2.0f },
- { Material.DarkOakPlanks, 2.0f },
- { Material.DarkOakShelf, 2.0f },
- { Material.DarkOakSlab, 2.0f },
- { Material.DarkOakWood, 2.0f },
- { Material.Grindstone, 2.0f },
- { Material.Jukebox, 2.0f },
- { Material.JungleFence, 2.0f },
- { Material.JungleFenceGate, 2.0f },
- { Material.JunglePlanks, 2.0f },
- { Material.JungleShelf, 2.0f },
- { Material.JungleSlab, 2.0f },
- { Material.JungleWood, 2.0f },
- { Material.MangroveFence, 2.0f },
- { Material.MangroveFenceGate, 2.0f },
- { Material.MangrovePlanks, 2.0f },
- { Material.MangroveShelf, 2.0f },
- { Material.MangroveSlab, 2.0f },
- { Material.MangroveWood, 2.0f },
- { Material.MossyCobblestone, 2.0f },
- { Material.NetherBrickFence, 2.0f },
- { Material.NetherBrickSlab, 2.0f },
- { Material.NetherBricks, 2.0f },
- { Material.OakFence, 2.0f },
- { Material.OakFenceGate, 2.0f },
- { Material.OakPlanks, 2.0f },
- { Material.OakShelf, 2.0f },
- { Material.OakSlab, 2.0f },
- { Material.OakWood, 2.0f },
- { Material.PaleOakFence, 2.0f },
- { Material.PaleOakFenceGate, 2.0f },
- { Material.PaleOakPlanks, 2.0f },
- { Material.PaleOakShelf, 2.0f },
- { Material.PaleOakSlab, 2.0f },
- { Material.PaleOakWood, 2.0f },
- { Material.PetrifiedOakSlab, 2.0f },
- { Material.PolishedBlackstone, 2.0f },
- { Material.PolishedBlackstoneBrickSlab, 2.0f },
- { Material.PurpurSlab, 2.0f },
- { Material.QuartzSlab, 2.0f },
- { Material.RedNetherBricks, 2.0f },
- { Material.RedSandstoneSlab, 2.0f },
- { Material.SandstoneSlab, 2.0f },
- { Material.SmoothQuartz, 2.0f },
- { Material.SmoothRedSandstone, 2.0f },
- { Material.SmoothSandstone, 2.0f },
- { Material.SmoothStone, 2.0f },
- { Material.SmoothStoneSlab, 2.0f },
- { Material.SoulCampfire, 2.0f },
- { Material.SpruceFence, 2.0f },
- { Material.SpruceFenceGate, 2.0f },
- { Material.SprucePlanks, 2.0f },
- { Material.SpruceShelf, 2.0f },
- { Material.SpruceSlab, 2.0f },
- { Material.SpruceWood, 2.0f },
- { Material.StoneBrickSlab, 2.0f },
- { Material.StoneSlab, 2.0f },
- { Material.StrippedAcaciaWood, 2.0f },
- { Material.StrippedBirchWood, 2.0f },
- { Material.StrippedCherryWood, 2.0f },
- { Material.StrippedCrimsonHyphae, 2.0f },
- { Material.StrippedDarkOakWood, 2.0f },
- { Material.StrippedJungleWood, 2.0f },
- { Material.StrippedOakWood, 2.0f },
- { Material.StrippedPaleOakWood, 2.0f },
- { Material.StrippedSpruceWood, 2.0f },
- { Material.StrippedWarpedHyphae, 2.0f },
- { Material.WarpedFence, 2.0f },
- { Material.WarpedFenceGate, 2.0f },
- { Material.WarpedHyphae, 2.0f },
- { Material.WarpedPlanks, 2.0f },
- { Material.WarpedShelf, 2.0f },
- { Material.WarpedSlab, 2.0f },
- // Hardness 2.5: 9 blocks
- { Material.Barrel, 2.5f },
- { Material.CartographyTable, 2.5f },
- { Material.Chest, 2.5f },
- { Material.CraftingTable, 2.5f },
- { Material.FletchingTable, 2.5f },
- { Material.Lectern, 2.5f },
- { Material.Loom, 2.5f },
- { Material.SmithingTable, 2.5f },
- { Material.TrappedChest, 2.5f },
- { Material.BlueIce, 2.8f },
- // Hardness 3.0: 53 blocks
- { Material.AcaciaDoor, 3.0f },
- { Material.AcaciaTrapdoor, 3.0f },
- { Material.BambooDoor, 3.0f },
- { Material.BambooTrapdoor, 3.0f },
- { Material.Beacon, 3.0f },
- { Material.BirchDoor, 3.0f },
- { Material.BirchTrapdoor, 3.0f },
- { Material.CherryDoor, 3.0f },
- { Material.CherryTrapdoor, 3.0f },
- { Material.CoalOre, 3.0f },
- { Material.Conduit, 3.0f },
- { Material.CopperBlock, 3.0f },
- { Material.CopperBulb, 3.0f },
- { Material.CopperChest, 3.0f },
- { Material.CopperDoor, 3.0f },
- { Material.CopperGolemStatue, 3.0f },
- { Material.CopperGrate, 3.0f },
- { Material.CopperTrapdoor, 3.0f },
- { Material.CrimsonDoor, 3.0f },
- { Material.CrimsonTrapdoor, 3.0f },
- { Material.DarkOakDoor, 3.0f },
- { Material.DarkOakTrapdoor, 3.0f },
- { Material.Deepslate, 3.0f },
- { Material.DiamondOre, 3.0f },
- { Material.DragonEgg, 3.0f },
- { Material.EmeraldOre, 3.0f },
- { Material.EndStone, 3.0f },
- { Material.EndStoneBricks, 3.0f },
- { Material.GoldBlock, 3.0f },
- { Material.GoldOre, 3.0f },
- { Material.Hopper, 3.0f },
- { Material.IronOre, 3.0f },
- { Material.JungleDoor, 3.0f },
- { Material.JungleTrapdoor, 3.0f },
- { Material.LapisBlock, 3.0f },
- { Material.LapisOre, 3.0f },
- { Material.LightningRod, 3.0f },
- { Material.MangroveDoor, 3.0f },
- { Material.MangroveTrapdoor, 3.0f },
- { Material.NetherGoldOre, 3.0f },
- { Material.NetherQuartzOre, 3.0f },
- { Material.OakDoor, 3.0f },
- { Material.OakTrapdoor, 3.0f },
- { Material.Observer, 3.0f },
- { Material.PaleOakDoor, 3.0f },
- { Material.PaleOakTrapdoor, 3.0f },
- { Material.RedstoneOre, 3.0f },
- { Material.SculkCatalyst, 3.0f },
- { Material.SculkShrieker, 3.0f },
- { Material.SpruceDoor, 3.0f },
- { Material.SpruceTrapdoor, 3.0f },
- { Material.WarpedDoor, 3.0f },
- { Material.WarpedTrapdoor, 3.0f },
- // Hardness 3.5: 10 blocks
- { Material.BlastFurnace, 3.5f },
- { Material.CobbledDeepslate, 3.5f },
- { Material.Dispenser, 3.5f },
- { Material.Dropper, 3.5f },
- { Material.Furnace, 3.5f },
- { Material.Lantern, 3.5f },
- { Material.Lodestone, 3.5f },
- { Material.Smoker, 3.5f },
- { Material.SoulLantern, 3.5f },
- { Material.Stonecutter, 3.5f },
- { Material.Cobweb, 4.0f },
- { Material.DeepslateCoalOre, 4.5f },
- { Material.DeepslateCopperOre, 4.5f },
- { Material.DeepslateDiamondOre, 4.5f },
- { Material.DeepslateEmeraldOre, 4.5f },
- { Material.DeepslateGoldOre, 4.5f },
- { Material.DeepslateIronOre, 4.5f },
- { Material.DeepslateLapisOre, 4.5f },
- { Material.DeepslateRedstoneOre, 4.5f },
- // Hardness 5.0: 18 blocks
- { Material.Anvil, 5.0f },
- { Material.Bell, 5.0f },
- { Material.ChippedAnvil, 5.0f },
- { Material.CoalBlock, 5.0f },
- { Material.DamagedAnvil, 5.0f },
- { Material.DiamondBlock, 5.0f },
- { Material.EmeraldBlock, 5.0f },
- { Material.EnchantingTable, 5.0f },
- { Material.IronBars, 5.0f },
- { Material.IronBlock, 5.0f },
- { Material.IronChain, 5.0f },
- { Material.IronDoor, 5.0f },
- { Material.IronTrapdoor, 5.0f },
- { Material.RawCopperBlock, 5.0f },
- { Material.RawGoldBlock, 5.0f },
- { Material.RawIronBlock, 5.0f },
- { Material.RedstoneBlock, 5.0f },
- { Material.Spawner, 5.0f },
- { Material.CreakingHeart, 10.0f },
- { Material.HeavyCore, 10.0f },
- { Material.EnderChest, 22.5f },
- { Material.AncientDebris, 30.0f },
- { Material.CryingObsidian, 50.0f },
- { Material.NetheriteBlock, 50.0f },
- { Material.Obsidian, 50.0f },
- { Material.RespawnAnchor, 50.0f },
- { Material.TrialSpawner, 50.0f },
- { Material.Vault, 50.0f },
- { Material.ReinforcedDeepslate, 55.0f },
- { Material.Lava, 100.0f },
- { Material.Water, 100.0f },
}.ToFrozenDictionary();
private static readonly FrozenSet RequiresCorrectToolSet = new HashSet
@@ -1114,12 +1185,18 @@ namespace MinecraftClient.Mapping
Material.AmethystBlock,
Material.AncientDebris,
Material.Andesite,
+ Material.AndesiteSlab,
+ Material.AndesiteStairs,
+ Material.AndesiteWall,
Material.Anvil,
Material.Basalt,
Material.BlackConcrete,
Material.BlackGlazedTerracotta,
Material.BlackTerracotta,
Material.Blackstone,
+ Material.BlackstoneSlab,
+ Material.BlackstoneStairs,
+ Material.BlackstoneWall,
Material.BlastFurnace,
Material.BlueConcrete,
Material.BlueGlazedTerracotta,
@@ -1127,6 +1204,8 @@ namespace MinecraftClient.Mapping
Material.BoneBlock,
Material.BrainCoralBlock,
Material.BrickSlab,
+ Material.BrickStairs,
+ Material.BrickWall,
Material.Bricks,
Material.BrownConcrete,
Material.BrownGlazedTerracotta,
@@ -1137,27 +1216,45 @@ namespace MinecraftClient.Mapping
Material.Cauldron,
Material.ChainCommandBlock,
Material.ChippedAnvil,
+ Material.ChiseledCopper,
+ Material.ChiseledDeepslate,
Material.ChiseledNetherBricks,
+ Material.ChiseledPolishedBlackstone,
Material.ChiseledQuartzBlock,
Material.ChiseledRedSandstone,
Material.ChiseledResinBricks,
Material.ChiseledSandstone,
Material.ChiseledStoneBricks,
+ Material.ChiseledTuff,
+ Material.ChiseledTuffBricks,
Material.CoalBlock,
Material.CoalOre,
+ Material.CobbledDeepslate,
+ Material.CobbledDeepslateSlab,
+ Material.CobbledDeepslateStairs,
+ Material.CobbledDeepslateWall,
Material.Cobblestone,
Material.CobblestoneSlab,
+ Material.CobblestoneStairs,
+ Material.CobblestoneWall,
Material.Cobweb,
Material.CommandBlock,
Material.CopperBlock,
Material.CopperBulb,
Material.CopperChest,
Material.CopperGrate,
+ Material.CopperOre,
Material.CopperTrapdoor,
+ Material.CrackedDeepslateBricks,
+ Material.CrackedDeepslateTiles,
Material.CrackedNetherBricks,
+ Material.CrackedPolishedBlackstoneBricks,
Material.CrackedStoneBricks,
Material.CrimsonNylium,
Material.CryingObsidian,
+ Material.CutCopper,
+ Material.CutCopperSlab,
+ Material.CutCopperStairs,
Material.CutRedSandstone,
Material.CutRedSandstoneSlab,
Material.CutSandstone,
@@ -1168,6 +1265,7 @@ namespace MinecraftClient.Mapping
Material.DamagedAnvil,
Material.DarkPrismarine,
Material.DarkPrismarineSlab,
+ Material.DarkPrismarineStairs,
Material.DeadBrainCoral,
Material.DeadBrainCoralBlock,
Material.DeadBrainCoralFan,
@@ -1189,9 +1287,28 @@ namespace MinecraftClient.Mapping
Material.DeadTubeCoralFan,
Material.DeadTubeCoralWallFan,
Material.Deepslate,
+ Material.DeepslateBrickSlab,
+ Material.DeepslateBrickStairs,
+ Material.DeepslateBrickWall,
+ Material.DeepslateBricks,
+ Material.DeepslateCoalOre,
+ Material.DeepslateCopperOre,
+ Material.DeepslateDiamondOre,
+ Material.DeepslateEmeraldOre,
+ Material.DeepslateGoldOre,
+ Material.DeepslateIronOre,
+ Material.DeepslateLapisOre,
+ Material.DeepslateRedstoneOre,
+ Material.DeepslateTileSlab,
+ Material.DeepslateTileStairs,
+ Material.DeepslateTileWall,
+ Material.DeepslateTiles,
Material.DiamondBlock,
Material.DiamondOre,
Material.Diorite,
+ Material.DioriteSlab,
+ Material.DioriteStairs,
+ Material.DioriteWall,
Material.Dispenser,
Material.DripstoneBlock,
Material.Dropper,
@@ -1199,12 +1316,29 @@ namespace MinecraftClient.Mapping
Material.EmeraldOre,
Material.EnchantingTable,
Material.EndStone,
+ Material.EndStoneBrickSlab,
+ Material.EndStoneBrickStairs,
+ Material.EndStoneBrickWall,
Material.EndStoneBricks,
+ Material.ExposedChiseledCopper,
+ Material.ExposedCopper,
+ Material.ExposedCopperBulb,
+ Material.ExposedCopperChest,
+ Material.ExposedCopperGrate,
+ Material.ExposedCopperTrapdoor,
+ Material.ExposedCutCopper,
+ Material.ExposedCutCopperSlab,
+ Material.ExposedCutCopperStairs,
+ Material.ExposedLightningRod,
Material.FireCoralBlock,
Material.Furnace,
+ Material.GildedBlackstone,
Material.GoldBlock,
Material.GoldOre,
Material.Granite,
+ Material.GraniteSlab,
+ Material.GraniteStairs,
+ Material.GraniteWall,
Material.GrayConcrete,
Material.GrayGlazedTerracotta,
Material.GrayTerracotta,
@@ -1222,6 +1356,7 @@ namespace MinecraftClient.Mapping
Material.Jigsaw,
Material.LapisBlock,
Material.LapisOre,
+ Material.LavaCauldron,
Material.LightBlueConcrete,
Material.LightBlueGlazedTerracotta,
Material.LightBlueTerracotta,
@@ -1238,11 +1373,21 @@ namespace MinecraftClient.Mapping
Material.MagentaTerracotta,
Material.MagmaBlock,
Material.MossyCobblestone,
+ Material.MossyCobblestoneSlab,
+ Material.MossyCobblestoneStairs,
+ Material.MossyCobblestoneWall,
+ Material.MossyStoneBrickSlab,
+ Material.MossyStoneBrickStairs,
+ Material.MossyStoneBrickWall,
Material.MossyStoneBricks,
Material.MudBrickSlab,
+ Material.MudBrickStairs,
+ Material.MudBrickWall,
Material.MudBricks,
Material.NetherBrickFence,
Material.NetherBrickSlab,
+ Material.NetherBrickStairs,
+ Material.NetherBrickWall,
Material.NetherBricks,
Material.NetherGoldOre,
Material.NetherQuartzOre,
@@ -1253,49 +1398,103 @@ namespace MinecraftClient.Mapping
Material.OrangeConcrete,
Material.OrangeGlazedTerracotta,
Material.OrangeTerracotta,
+ Material.OxidizedChiseledCopper,
+ Material.OxidizedCopper,
+ Material.OxidizedCopperBulb,
+ Material.OxidizedCopperChest,
+ Material.OxidizedCopperGrate,
+ Material.OxidizedCopperTrapdoor,
+ Material.OxidizedCutCopper,
+ Material.OxidizedCutCopperSlab,
+ Material.OxidizedCutCopperStairs,
+ Material.OxidizedLightningRod,
Material.PetrifiedOakSlab,
Material.PinkConcrete,
Material.PinkGlazedTerracotta,
Material.PinkTerracotta,
Material.PolishedAndesite,
+ Material.PolishedAndesiteSlab,
+ Material.PolishedAndesiteStairs,
Material.PolishedBasalt,
+ Material.PolishedBlackstone,
+ Material.PolishedBlackstoneBrickSlab,
+ Material.PolishedBlackstoneBrickStairs,
+ Material.PolishedBlackstoneBrickWall,
+ Material.PolishedBlackstoneBricks,
+ Material.PolishedBlackstoneSlab,
+ Material.PolishedBlackstoneStairs,
+ Material.PolishedBlackstoneWall,
+ Material.PolishedDeepslate,
+ Material.PolishedDeepslateSlab,
+ Material.PolishedDeepslateStairs,
+ Material.PolishedDeepslateWall,
Material.PolishedDiorite,
+ Material.PolishedDioriteSlab,
+ Material.PolishedDioriteStairs,
Material.PolishedGranite,
+ Material.PolishedGraniteSlab,
+ Material.PolishedGraniteStairs,
+ Material.PolishedTuff,
+ Material.PolishedTuffSlab,
+ Material.PolishedTuffStairs,
+ Material.PolishedTuffWall,
+ Material.PowderSnowCauldron,
Material.Prismarine,
Material.PrismarineBrickSlab,
+ Material.PrismarineBrickStairs,
Material.PrismarineBricks,
Material.PrismarineSlab,
+ Material.PrismarineStairs,
+ Material.PrismarineWall,
Material.PurpleConcrete,
Material.PurpleGlazedTerracotta,
Material.PurpleTerracotta,
Material.PurpurBlock,
Material.PurpurPillar,
Material.PurpurSlab,
+ Material.PurpurStairs,
Material.QuartzBlock,
+ Material.QuartzBricks,
Material.QuartzPillar,
Material.QuartzSlab,
+ Material.QuartzStairs,
Material.RawCopperBlock,
Material.RawGoldBlock,
Material.RawIronBlock,
Material.RedConcrete,
Material.RedGlazedTerracotta,
+ Material.RedNetherBrickSlab,
+ Material.RedNetherBrickStairs,
+ Material.RedNetherBrickWall,
Material.RedNetherBricks,
Material.RedSandstone,
Material.RedSandstoneSlab,
+ Material.RedSandstoneStairs,
+ Material.RedSandstoneWall,
Material.RedTerracotta,
Material.RedstoneBlock,
Material.RedstoneOre,
Material.RepeatingCommandBlock,
Material.ResinBrickSlab,
+ Material.ResinBrickStairs,
Material.ResinBrickWall,
Material.ResinBricks,
Material.RespawnAnchor,
Material.Sandstone,
Material.SandstoneSlab,
+ Material.SandstoneStairs,
+ Material.SandstoneWall,
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.Snow,
@@ -1303,18 +1502,75 @@ namespace MinecraftClient.Mapping
Material.Spawner,
Material.Stone,
Material.StoneBrickSlab,
+ Material.StoneBrickStairs,
+ Material.StoneBrickWall,
Material.StoneBricks,
Material.StoneSlab,
+ Material.StoneStairs,
Material.Stonecutter,
Material.StructureBlock,
Material.Terracotta,
Material.TubeCoralBlock,
Material.Tuff,
+ Material.TuffBrickSlab,
+ Material.TuffBrickStairs,
+ Material.TuffBrickWall,
+ Material.TuffBricks,
+ Material.TuffSlab,
+ Material.TuffStairs,
+ Material.TuffWall,
Material.WarpedNylium,
+ Material.WaterCauldron,
+ Material.WaxedChiseledCopper,
+ Material.WaxedCopperBlock,
+ Material.WaxedCopperBulb,
+ Material.WaxedCopperChest,
+ Material.WaxedCopperGrate,
+ Material.WaxedCopperTrapdoor,
+ Material.WaxedCutCopper,
Material.WaxedCutCopperSlab,
+ Material.WaxedCutCopperStairs,
+ Material.WaxedExposedChiseledCopper,
+ Material.WaxedExposedCopper,
+ Material.WaxedExposedCopperBulb,
+ Material.WaxedExposedCopperChest,
+ Material.WaxedExposedCopperGrate,
+ Material.WaxedExposedCopperTrapdoor,
+ Material.WaxedExposedCutCopper,
Material.WaxedExposedCutCopperSlab,
+ Material.WaxedExposedCutCopperStairs,
+ Material.WaxedExposedLightningRod,
+ Material.WaxedLightningRod,
+ Material.WaxedOxidizedChiseledCopper,
+ Material.WaxedOxidizedCopper,
+ Material.WaxedOxidizedCopperBulb,
+ Material.WaxedOxidizedCopperChest,
+ Material.WaxedOxidizedCopperGrate,
+ Material.WaxedOxidizedCopperTrapdoor,
+ Material.WaxedOxidizedCutCopper,
Material.WaxedOxidizedCutCopperSlab,
+ Material.WaxedOxidizedCutCopperStairs,
+ Material.WaxedOxidizedLightningRod,
+ Material.WaxedWeatheredChiseledCopper,
+ Material.WaxedWeatheredCopper,
+ Material.WaxedWeatheredCopperBulb,
+ Material.WaxedWeatheredCopperChest,
+ Material.WaxedWeatheredCopperGrate,
+ Material.WaxedWeatheredCopperTrapdoor,
+ Material.WaxedWeatheredCutCopper,
Material.WaxedWeatheredCutCopperSlab,
+ Material.WaxedWeatheredCutCopperStairs,
+ Material.WaxedWeatheredLightningRod,
+ Material.WeatheredChiseledCopper,
+ Material.WeatheredCopper,
+ Material.WeatheredCopperBulb,
+ Material.WeatheredCopperChest,
+ Material.WeatheredCopperGrate,
+ Material.WeatheredCopperTrapdoor,
+ Material.WeatheredCutCopper,
+ Material.WeatheredCutCopperSlab,
+ Material.WeatheredCutCopperStairs,
+ Material.WeatheredLightningRod,
Material.WhiteConcrete,
Material.WhiteGlazedTerracotta,
Material.WhiteTerracotta,
diff --git a/MinecraftClient/Mapping/MiningCalculator.cs b/MinecraftClient/Mapping/MiningCalculator.cs
index 6f49fd4a..458057f2 100644
--- a/MinecraftClient/Mapping/MiningCalculator.cs
+++ b/MinecraftClient/Mapping/MiningCalculator.cs
@@ -16,6 +16,15 @@ namespace MinecraftClient.Mapping
///
public static class MiningCalculator
{
+ public sealed class MiningOptions
+ {
+ public static readonly MiningOptions Vanilla = new();
+
+ public bool ApplyEfficiencyEnchantments { get; init; } = true;
+
+ public bool ApplyHasteEffects { get; init; } = true;
+ }
+
///
/// Compute the number of ticks required to break a block in survival mode.
/// Returns 0 for instant-break blocks, -1 for unbreakable blocks.
@@ -37,8 +46,10 @@ namespace MinecraftClient.Mapping
Dictionary playerAttributes,
bool isUnderwater,
bool isOnGround,
- int protocolVersion)
+ int protocolVersion,
+ MiningOptions? options = null)
{
+ options ??= MiningOptions.Vanilla;
float hardness = BlockHardness.GetHardness(blockMaterial);
if (hardness < 0)
@@ -49,7 +60,7 @@ namespace MinecraftClient.Mapping
float destroySpeed = GetDestroySpeed(
blockMaterial, heldItem, helmetItem, effects, playerAttributes,
- isUnderwater, isOnGround, protocolVersion);
+ isUnderwater, isOnGround, protocolVersion, options);
bool correctTool = HasCorrectToolForDrops(blockMaterial, heldItem, protocolVersion);
int divisor = correctTool ? 30 : 100;
@@ -73,18 +84,22 @@ namespace MinecraftClient.Mapping
Dictionary playerAttributes,
bool isUnderwater,
bool isOnGround,
- int protocolVersion)
+ int protocolVersion,
+ MiningOptions options)
{
float speed = GetToolSpeed(blockMaterial, heldItem, protocolVersion);
- if (speed > 1.0f)
+ if (speed > 1.0f && options.ApplyEfficiencyEnchantments)
{
speed += GetEfficiencyBonus(heldItem, playerAttributes, protocolVersion);
}
- int digSpeedAmplifier = GetDigSpeedAmplifier(effects);
- if (digSpeedAmplifier >= 0)
- speed *= 1.0f + (digSpeedAmplifier + 1) * 0.2f;
+ if (options.ApplyHasteEffects)
+ {
+ int digSpeedAmplifier = GetDigSpeedAmplifier(effects);
+ if (digSpeedAmplifier >= 0)
+ speed *= 1.0f + (digSpeedAmplifier + 1) * 0.2f;
+ }
// Mining Fatigue
if (effects.TryGetValue(Effects.MiningFatigue, out var fatigueData))
diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs
index 6d89f219..cde3ad55 100644
--- a/MinecraftClient/McClient.cs
+++ b/MinecraftClient/McClient.cs
@@ -2875,7 +2875,8 @@ namespace MinecraftClient
/// Location of block to dig
/// Also perform the "arm swing" animation
/// Also look at the block before digging
- public bool DigBlock(Location location, Direction blockFace, bool swingArms = true, bool lookAtBlock = true, double duration = 0)
+ public bool DigBlock(Location location, Direction blockFace, bool swingArms = true, bool lookAtBlock = true,
+ double duration = 0, MiningCalculator.MiningOptions? miningOptions = null)
{
// TODO select best face from current player location
@@ -2883,7 +2884,8 @@ namespace MinecraftClient
return false;
if (InvokeRequired)
- return InvokeOnMainThread(() => DigBlock(location, blockFace, swingArms, lookAtBlock, duration));
+ return InvokeOnMainThread(() => DigBlock(location, blockFace, swingArms, lookAtBlock, duration,
+ miningOptions));
lock (DigLock)
{
@@ -2898,10 +2900,12 @@ namespace MinecraftClient
UpdateLocation(GetCurrentLocation(), location);
// Auto-compute dig duration for survival/adventure mode when not explicitly supplied
+ bool autoComputedDuration = false;
if (duration <= 0 && protocolversion >= Protocol18Handler.MC_1_8_Version
&& gamemode is 0 or 2) // Survival or Adventure
{
- duration = ComputeAutoDigDuration(location);
+ autoComputedDuration = true;
+ duration = ComputeAutoDigDuration(location, miningOptions);
}
// Send dig start and dig end, will need to wait for server response to know dig result
@@ -2909,6 +2913,9 @@ namespace MinecraftClient
bool result = handler.SendPlayerDigging(0, location, blockFace, sequenceId++)
&& (!swingArms || DoAnimation((int)Hand.MainHand));
+ if (autoComputedDuration && duration <= 0)
+ return result;
+
if (duration <= 0)
result &= handler.SendPlayerDigging(2, location, blockFace, sequenceId++);
else
@@ -2926,7 +2933,7 @@ namespace MinecraftClient
/// enchantments, effects, attributes, and player state.
/// Returns 0 for instant-break blocks.
///
- private double ComputeAutoDigDuration(Location location)
+ private double ComputeAutoDigDuration(Location location, MiningCalculator.MiningOptions? miningOptions = null)
{
try
{
@@ -2954,16 +2961,49 @@ namespace MinecraftClient
playerAttributes,
playerPhysics.InWater,
playerPhysics.OnGround,
- protocolversion);
+ protocolversion,
+ miningOptions);
- if (ticks <= 0)
+ if (ticks < 0)
+ return -1;
+
+ if (ticks == 0)
return 0;
return (double)ticks / Settings.ClientTicksPerSecond;
}
catch
{
- return 0;
+ return ComputeConservativeAutoDigDuration(location);
+ }
+ }
+
+ private double ComputeConservativeAutoDigDuration(Location location)
+ {
+ try
+ {
+ Block block = world.GetBlock(location);
+ if (block.Type == Material.Air)
+ return 0;
+
+ int ticks = MiningCalculator.ComputeDigTicks(
+ blockMaterial: block.Type,
+ heldItem: null,
+ helmetItem: null,
+ effects: new(),
+ playerAttributes: new(),
+ isUnderwater: playerPhysics.InWater,
+ isOnGround: playerPhysics.OnGround,
+ protocolVersion: protocolversion);
+
+ if (ticks < 0)
+ return -1;
+
+ return ticks == 0 ? 1.0 : (double)ticks / Settings.ClientTicksPerSecond;
+ }
+ catch
+ {
+ return 1.0;
}
}
diff --git a/MinecraftClient/Resources/ConfigComments/ConfigComments.Designer.cs b/MinecraftClient/Resources/ConfigComments/ConfigComments.Designer.cs
index fe4b188b..64f83f4a 100644
--- a/MinecraftClient/Resources/ConfigComments/ConfigComments.Designer.cs
+++ b/MinecraftClient/Resources/ConfigComments/ConfigComments.Designer.cs
@@ -394,6 +394,24 @@ namespace MinecraftClient {
}
}
+ ///
+ /// Looks up a localized string similar to Apply Efficiency enchantment speed when AutoDig computes mining time. Disable this for strict anti-cheat compatibility..
+ ///
+ internal static string ChatBot_AutoDig_Apply_Efficiency_Enchantments {
+ get {
+ return ResourceManager.GetString("ChatBot.AutoDig.Apply_Efficiency_Enchantments", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Apply Haste and Conduit Power speed effects when AutoDig computes mining time. Disable this for strict anti-cheat compatibility..
+ ///
+ internal static string ChatBot_AutoDig_Apply_Haste_Effects {
+ get {
+ return ResourceManager.GetString("ChatBot.AutoDig.Apply_Haste_Effects", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Mining a block for more than "Dig_Timeout" seconds will be considered a timeout..
///
diff --git a/MinecraftClient/Resources/ConfigComments/ConfigComments.resx b/MinecraftClient/Resources/ConfigComments/ConfigComments.resx
index d18c32be..75879f54 100644
--- a/MinecraftClient/Resources/ConfigComments/ConfigComments.resx
+++ b/MinecraftClient/Resources/ConfigComments/ConfigComments.resx
@@ -242,6 +242,12 @@ For the naming of the block, please see https://mccteam.github.io/r/block/#L15
Automatically switch to the appropriate tool.
+
+ Apply Efficiency enchantment speed when AutoDig computes mining time. Disable this for strict anti-cheat compatibility.
+
+
+ Apply Haste and Conduit Power speed effects when AutoDig computes mining time. Disable this for strict anti-cheat compatibility.
+
Mining a block for more than "Dig_Timeout" seconds will be considered a timeout.
diff --git a/MinecraftClient/Scripting/ChatBot.cs b/MinecraftClient/Scripting/ChatBot.cs
index c8d20edb..83824281 100644
--- a/MinecraftClient/Scripting/ChatBot.cs
+++ b/MinecraftClient/Scripting/ChatBot.cs
@@ -1154,9 +1154,10 @@ namespace MinecraftClient.Scripting
/// Also perform the "arm swing" animation
/// Also look at the block before digging
/// Dig duration in seconds. 0 = auto-compute for survival, or instant for creative
- protected bool DigBlock(Location location, Direction direction, bool swingArms = true, bool lookAtBlock = true, double duration = 0)
+ protected bool DigBlock(Location location, Direction direction, bool swingArms = true, bool lookAtBlock = true,
+ double duration = 0, MiningCalculator.MiningOptions? miningOptions = null)
{
- return Handler.DigBlock(location, direction, swingArms, lookAtBlock, duration);
+ return Handler.DigBlock(location, direction, swingArms, lookAtBlock, duration, miningOptions);
}
///
diff --git a/docs/guide/chat-bots.md b/docs/guide/chat-bots.md
index a8705b82..ff12f19c 100644
--- a/docs/guide/chat-bots.md
+++ b/docs/guide/chat-bots.md
@@ -763,6 +763,34 @@ redirectFrom:
- **Default:** `false`
+ #### `Apply_Efficiency_Enchantments`
+
+ - **Description:**
+
+ Include Efficiency enchantments when Auto Dig calculates how long it should wait before finishing a block break.
+
+ Disable this if a server's anti-cheat expects slower mining timing. This only changes MCC's timing calculation; it does not remove the enchantment from your tool.
+
+ - **Available values:** `true` and `false`
+
+ - **Type:** `boolean`
+
+ - **Default:** `true`
+
+ #### `Apply_Haste_Effects`
+
+ - **Description:**
+
+ Include Haste and Conduit Power effects when Auto Dig calculates how long it should wait before finishing a block break.
+
+ Disable this if a server's anti-cheat does not allow the faster timing. This only changes MCC's timing calculation; it does not remove the effect from your player.
+
+ - **Available values:** `true` and `false`
+
+ - **Type:** `boolean`
+
+ - **Default:** `true`
+
#### `Durability_Limit`
- **Description:**