<commit_before>
#pragma once

#include "ItemHandler.h"
#include "../World.h"
#include "../Player.h"





class cItemShearsHandler :
	public cItemHandler
{
public:
	cItemShearsHandler(int a_ItemType) :
		cItemHandler(a_ItemType)
	{
	}
	
	
	virtual bool IsTool(void) override
	{
		return true;
	}
	
	
	virtual bool OnDiggingBlock(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Dir) override
	{
		BLOCKTYPE Block = a_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ);
		if (Block == E_BLOCK_LEAVES)
		{
			cItems Drops;
			Drops.push_back(cItem(E_BLOCK_LEAVES, 1, a_World->GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ)));
			a_World->SpawnItemPickups(Drops, a_BlockX, a_BlockY, a_BlockZ);

			a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_AIR, 0);
			a_Player->UseEquippedItem();
			return true;
		}
		// TODO: cobweb, vines
		return false;
	}


	virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) override<commit_msg>Shears mask the leaves' meta<commit_after>
#pragma once

#include "ItemHandler.h"
#include "../World.h"
#include "../Player.h"





class cItemShearsHandler :
	public cItemHandler
{
public:
	cItemShearsHandler(int a_ItemType) :
		cItemHandler(a_ItemType)
	{
	}
	
	
	virtual bool IsTool(void) override
	{
		return true;
	}
	
	
	virtual bool OnDiggingBlock(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Dir) override
	{
		BLOCKTYPE Block = a_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ);
		if (Block == E_BLOCK_LEAVES)
		{
			cItems Drops;
			Drops.push_back(cItem(E_BLOCK_LEAVES, 1, a_World->GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) & 0x03));
			a_World->SpawnItemPickups(Drops, a_BlockX, a_BlockY, a_BlockZ);

			a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, E_BLOCK_AIR, 0);
			a_Player->UseEquippedItem();
			return true;
		}
		// TODO: cobweb, vines
		return false;
	}


	virtual bool CanHarvestBlock(BLOCKTYPE a_BlockType) override
{'fraction_non_alphanumeric': 0.11088709677419355, 'fraction_numerical': 0.003528225806451613, 'mean_word_length': 4.623229461756374, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4860643', 'n_tokens_mistral': 862, 'n_tokens_neox': 783, 'n_words': 160}