public void smash() {
        InstanceBlock breakage = new InstanceBlock(Block.cracked, this.x + Game.translate_x, this.y - Game.translate_y, world);

        this.broken++;
        if (broken == block.hardness) {
            boolean done = false;
            ToolBar tb = world.getPlayer().getToolBar();
            int currPos = tb.getCurrToolPosition();
            int changedPositions = 0;
            while (!done || changedPositions >= 10) {
                if (tb.getCurrTool().getId() == block.drop().getId() || tb.getCurrTool().getId() == Block.air.id || tb.getCurrTool().getAmount() <= 0) {
                    tb.setCurrTool(new Stack(block.id, tb.getCurrTool().getAmount() + block.drop().getAmount()));
                    done = true;
                } else {
                    tb.setDTool(1);
                    changedPositions++;
                }
            }
            tb.setCurrToolPosition(currPos);
            this.block = Block.air;
            this.broken = 0;
        } else if (this.block != Block.air) {
            breakage.draw();
        }
    }