package Ġme . nok ko . playground . item . tools Ċ Ċ import Ġnet . minecraft . block . BlockState Ċ import Ġnet . minecraft . block . Blocks Ċ import Ġnet . minecraft . block . Material Ċ import Ġnet . minecraft . entity . Equipment Slot Ċ import Ġnet . minecraft . entity . Living Entity Ċ import Ġnet . minecraft . entity . player . Player Entity Ċ import Ġnet . minecraft . item . ItemGroup Ċ import Ġnet . minecraft . item . ItemStack Ċ import Ġnet . minecraft . item . Pick axe Item Ċ import Ġnet . minecraft . item . Tool Materials Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . world . World ĊĊ Ċ class ĠBed rock Pick axe Item Ġ: ĠPick axe Item ( Tool Materials . DI AM OND , Ġ 3 , Ġ- 2 . 8 f , ĠSettings (). group ( ItemGroup . TOOLS )) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem ID : ĠString Ġ= Ġ" bed rock _ pick axe " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Mine ( state : ĠBlock State ?, Ġworld : ĠWorld ?, Ġpos : ĠBlockPos ?, Ġminer : ĠPlayer Entity ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Effective On ( state : ĠBlock State ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( state ?. is Of ( Blocks . B ED RO CK ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . is Effective On ( state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Min ing Speed Multiplier ( stack : ĠItemStack ?, Ġstate : ĠBlock State ): ĠFloat Ġ{ Ċ // ĠĠĠĠĠ ĠSpecial Ġcase Ġfor Ġbed rock ĊĠĠĠĠĠĠĠ Ġif Ġ( state . is Of ( Blocks . B ED RO CK )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmining Speed ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmaterial Ġ= Ġstate . material ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( material Ġ!= ĠMaterial . MET AL Ġ&& Ġmaterial Ġ!= ĠMaterial . RE PAIR _ ST ATION Ġ&& Ġmaterial Ġ!= ĠMaterial . ST ONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . getMin ing Speed Multiplier ( stack , Ġstate ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġmining Speed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost Mine ( ĊĠĠĠĠĠĠĠ Ġstack : ĠItemStack , ĊĠĠĠĠĠĠĠ Ġworld : ĠWorld , ĊĠĠĠĠĠĠĠ Ġstate : ĠBlock State , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos ?, ĊĠĠĠĠĠĠĠ Ġminer : ĠL iving Entity ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmining Callback : Ġ( Living Entity ) Ġ-> ĠUnit Ġ= Ġ{ Ġe : ĠL iving Entity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . send Equipment Break Status ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quipment Slot . MAIN HAND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠ ĠBreaking Ġbed rock Ġtakes Ġa Ġt oll Ġon Ġthe Ġtool ! ĊĠĠĠĠĠĠĠ Ġif Ġ(! world . is Client Ġ&& Ġstate . get Hard ness ( world , Ġpos ) Ġ== Ġ- 1 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . damage ( 1 0 0 , Ġminer , Ġmining Callback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! world . is Client Ġ&& Ġstate . get Hard ness ( world , Ġpos ) Ġ!= Ġ 0 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . damage ( 1 , Ġminer , Ġmining Callback ) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠ ĠBlocks Ġwith Ġ< Ġ 0 . 0 Ġhard ness Ġdon 't Ġdamage Ġthe Ġpick axe , Ġas Ġusual . ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊ Ċ }