- /*
- Now, the g_material_properties array is already initialized
- by the constructors to such that no digging is possible.
-
- Add some digging properties to them.
- */
-
- setStoneLikeDiggingProperties(CONTENT_STONE, 1.0);
- setStoneLikeDiggingProperties(CONTENT_MESE, 0.5);
- setStoneLikeDiggingProperties(CONTENT_COALSTONE, 1.5);
- setStoneLikeDiggingProperties(CONTENT_FURNACE, 3.0);
- setStoneLikeDiggingProperties(CONTENT_COBBLE, 1.0);
- setStoneLikeDiggingProperties(CONTENT_STEEL, 5.0);
-
- setDirtLikeDiggingProperties(CONTENT_MUD, 1.0);
- setDirtLikeDiggingProperties(CONTENT_GRASS, 1.0);
- setDirtLikeDiggingProperties(CONTENT_GRASS_FOOTSTEPS, 1.0);
- setDirtLikeDiggingProperties(CONTENT_SAND, 1.0);
-
- setWoodLikeDiggingProperties(CONTENT_TREE, 1.0);
- setWoodLikeDiggingProperties(CONTENT_LEAVES, 0.15);
- setWoodLikeDiggingProperties(CONTENT_GLASS, 0.15);
- setWoodLikeDiggingProperties(CONTENT_FENCE, 0.75);
- setWoodLikeDiggingProperties(CONTENT_WOOD, 0.75);
- setWoodLikeDiggingProperties(CONTENT_CHEST, 1.0);
-
- g_material_properties[CONTENT_SIGN_WALL].setDiggingProperties("",
- DiggingProperties(true, 0.5, 0));
- g_material_properties[CONTENT_TORCH].setDiggingProperties("",
- DiggingProperties(true, 0.0, 0));
+ if(mp->diggability == DIGGABLE_NOT)
+ return DiggingProperties(false, 0, 0);
+ if(mp->diggability == DIGGABLE_CONSTANT)
+ return DiggingProperties(true, mp->constant_time, 0);
+
+ float time = tp->basetime;
+ time += tp->dt_weight * mp->weight;
+ time += tp->dt_crackiness * mp->crackiness;
+ time += tp->dt_crumbliness * mp->crumbliness;
+ time += tp->dt_cuttability * mp->cuttability;
+ if(time < 0.2)
+ time = 0.2;
+
+ float durability = tp->basedurability;
+ durability += tp->dd_weight * mp->weight;
+ durability += tp->dd_crackiness * mp->crackiness;
+ durability += tp->dd_crumbliness * mp->crumbliness;
+ durability += tp->dd_cuttability * mp->cuttability;
+ if(durability < 1)
+ durability = 1;