3 #include "mapnode_contentfeatures.h"
6 DiggingProperties getDiggingProperties(u16 material, ToolDiggingProperties *tp)
9 MaterialProperties &mp = content_features(material).material;
10 if(mp.diggability == DIGGABLE_NOT)
11 return DiggingProperties(false, 0, 0);
12 if(mp.diggability == DIGGABLE_CONSTANT)
13 return DiggingProperties(true, mp.constant_time, 0);
15 float time = tp->basetime;
16 time += tp->dt_weight * mp.weight;
17 time += tp->dt_crackiness * mp.crackiness;
18 time += tp->dt_crumbliness * mp.crumbliness;
19 time += tp->dt_cuttability * mp.cuttability;
23 float durability = tp->basedurability;
24 durability += tp->dd_weight * mp.weight;
25 durability += tp->dd_crackiness * mp.crackiness;
26 durability += tp->dd_crumbliness * mp.crumbliness;
27 durability += tp->dd_cuttability * mp.cuttability;
31 float wear = 1.0 / durability;
32 u16 wear_i = wear/65535.;
33 return DiggingProperties(true, time, wear_i);