text: //#include include/takeable.js
  
  var label = "Pick";
  var version = "1355086256";
  var name_single = "Pick";
  var name_plural = "Picks";
  var article = "a";
  var description = "A relatively sturdy pick, without which mining cannot be done. A plain pick takes care of business, but it's not designed to last.";
  var is_hidden = false;
  var has_info = true;
  var has_infopage = true;
  var proxy_item = null;
  var is_routable = false;
  var adjusted_scale = 1;
  var stackmax = 1;
  var base_cost = 500;
  var input_for = [];
  var parent_classes = ["pick", "tool_base", "takeable"];
  var has_instance_props = true;
  
  var classProps = {
  	"collection_id"	: "",	// defined by takeable
  	"making_type"	: "",	// defined by tool_base
  	"required_skill"	: "mining_1",	// defined by tool_base (overridden by pick)
  	"points_capacity"	: "100",	// defined by tool_base (overridden by pick)
  	"display_wear"	: "1",	// defined by tool_base (overridden by pick)
  	"can_repair"	: "1"	// defined by tool_base
  };
  
  function initInstanceProps(){
  	this.instanceProps = {};
  	this.instanceProps.points_remaining = "100";	// defined by tool_base (overridden by pick)
  	this.instanceProps.is_broken = "0";	// defined by tool_base
  }
  
  var instancePropsDef = {
  	points_remaining : ["Number of hit points remaining"],
  	is_broken : ["Is this broken?"],
  };
  
  var instancePropsChoices = {
  	points_remaining : [""],
  	is_broken : [""],
  };
  
  var verbs = {};
  
  verbs.pickup = { // defined by takeable
  	"name"				: "pick up",
  	"ok_states"			: ["in_location"],
  	"requires_target_pc"		: false,
  	"requires_target_item"		: false,
  	"include_target_items_from_location"		: false,
  	"is_default"			: false,
  	"is_emote"			: false,
  	"sort_on"			: 50,
  	"tooltip"			: "Put it in your pack",
  	"is_drop_target"		: false,
  	"proximity_override"			: 800,
  	"conditions"			: function(pc, drop_stack){
  
  		return this.takeable_pickup_conditions(pc, drop_stack);
  	},
  	"handler"			: function(pc, msg, suppress_activity){
  
  		return this.takeable_pickup(pc, msg);
  	}
  };
  
  verbs.give = { // defined by takeable
  	"name"				: "give",
  	"ok_states"			: ["in_pack"],
  	"requires_target_pc"		: true,
  	"requires_target_item"		: false,
  	"include_target_items_from_location"		: false,
  	"is_default"			: false,
  	"is_emote"			: false,
  	"sort_on"			: 52,
  	"tooltip"			: "Or, drag item to player",
  	"is_drop_target"		: false,
  	"conditions"			: function(pc, drop_stack){
  
  		return this.takeable_give_conditions(pc, drop_stack);
  	},
  	"handler"			: function(pc, msg, suppress_activity){
  
  		return this.takeable_give(pc, msg);
  	}
  };
  
  verbs.drop = { // defined by takeable
  	"name"				: "drop",
  	"ok_states"			: ["in_pack"],
  	"requires_target_pc"		: false,
  	"requires_target_item"		: false,
  	"include_target_items_from_location"		: false,
  	"is_default"			: false,
  	"is_emote"			: false,
  	"sort_on"			: 53,
  	"tooltip"			: "Drop it on the ground",
  	"is_drop_target"		: false,
  	"conditions"			: function(pc, drop_stack){
  
  		return this.takeable_drop_conditions(pc, drop_stack);
  	},
  	"handler"			: function(pc, msg, suppress_activity){
  
  		return this.takeable_drop(pc, msg);
  	}
  };
  
  verbs.repair = { // defined by tool_base
  	"name"				: "repair",
  	"ok_states"			: ["in_pack"],
  	"requires_target_pc"		: false,
  	"requires_target_item"		: false,
  	"include_target_items_from_location"		: false,
  	"is_default"			: false,
  	"is_emote"			: false,
  	"sort_on"			: 55,
  	"tooltip"			: "The full repair takes $total_energy energy and $time seconds",
  	"is_drop_target"		: true,
  	"drop_many"			: true,
  	"drop_tip"			: "Repair with your Tinkertool",
  	"drop_ok_code"			: function(stack, pc){
  
  		if (this.tsid == stack.tsid) return false;
  		if (this.class_tsid == 'tinkertool'){
  			if (stack.getClassProp('can_repair') == "0") return false;
  			if (stack.isWorking && !stack.isWorking()) return true;
  			if (stack.getClassProp('display_wear') == 1 && stack.getInstanceProp('points_remaining') < stack.getClassProp('points_capacity')) return true;
  		}
  		else if (stack.class_tsid == 'tinkertool'){
  			if (this.getClassProp('can_repair') == "0") return false;
  			if (this.isWorking && !this.isWorking()) return true;
  			if (this.getClassProp('display_wear') == 1 && this.getInstanceProp('points_remaining') < this.getClassProp('points_capacity')) return true;
  		}
  
  		return false;
  	},
  	"conditions"			: function(pc, drop_stack){
  
  		if (this.getClassProp('can_repair') == "0") return {state:null};
  
  		var needs_repair = false;
  
  		if (this.class_tsid == 'tinkertool' && drop_stack){
  			if (drop_stack.getClassProp('can_repair') == "0") return {state:null};
  			if(drop_stack.class_tsid == 'butterfly_lotion' || drop_stack.class_tsid == 'random_kindness') {
  				return {state:null};
  			}
  
  			if (drop_stack.getInstanceProp('is_broken') == 1){
  				needs_repair = true;
  			}
  			else if (drop_stack.getInstanceProp('points_remaining') < drop_stack.getClassProp('points_capacity') && drop_stack.getClassProp('display_wear') == 1){
  				needs_repair = true;
  			}
  		}
  		else{
  			if (this.getInstanceProp('is_broken') == 1){
  				needs_repair = true;
  			}
  			else if (this.getInstanceProp('points_remaining') < this.getClassProp('points_capacity') && this.getClassProp('display_wear') == 1){
  				needs_repair = true;
  			}
  		}
  
  		//if (!needs_repair && this.class_tsid != 'tinkertool') return {state:null};
  		if (!needs_repair) return {state:null};
  
  		if ((this.class_tsid != 'tinkertool' || drop_stack) && needs_repair){
  			// Find a tinkertool
  			function is_tinkertool(it){ return it.class_tsid == 'tinkertool' && it.isWorking() ? true : false; }
  			var tinkertool = pc.findFirst(is_tinkertool);
  
  			if (!tinkertool){
  				return {state:'disabled', reason: "You need a Tinkertool to repair this."};
  			}
  
  			if (!pc.skills_has('tinkering_1')) return {state:'disabled', reason: "You need to know "+pc.skills_get_name('tinkering_1')+" to repair this."};
  		}
  		else{
  			if (needs_repair){
  				if (!pc.skills_has('tinkering_3')) return {state:'disabled', reason: "You need to know "+pc.skills_get_name('tinkering_3')+" to repair this."};
  			}
  			else{
  				if (!pc.skills_has('tinkering_1')) return {state:'disabled', reason: "You need to know "+pc.skills_get_name('tinkering_1')+" to use this."};
  			}
  		}
  
  		//var details = pc.getSkillPackageDetails('tinkering');
  
  		var min_energy = this.getEnergyPerTwoTicksRepair(pc) + 1; // The cost of repairing is 2 ticks minimum
  
  		if (pc.metabolics_get_energy() <= min_energy) return {state:'disabled', reason: "You don't have enough energy to repair this."};
  
  		if (pc.making_is_making()) return {state:'disabled', reason: "You are too busy making something."};
  
  		if (pc['!in_house_deco_mode']){
  			return {state:'disabled', reason:"No repairing while decorating."};
  		}
  
  		return {state:'enabled'};
  	},
  	"effects"			: function(pc){
  
  		var ret = pc.trySkillPackage('tinkering');
  		var details = pc.getSkillPackageDetails('tinkering');
  		var duration = Math.ceil((this.getClassProp('points_capacity')-this.getInstanceProp('points_remaining')) / details.tool_wear);
  
  		ret.time = duration;
  		duration = Math.max(duration, 2);
  
  		//pc.sendActivity('Duration '+duration);
  
  		// this comes from tinkertool.onTick(), which removes energy every other tick
  		ret.min = this.getEnergyPerTwoTicksRepair(pc);
  		ret.energy_cost_per = ret.min / 2;
  
  
  		// Total energy cost is always rounded up to an even number of ticks.
  		if ((duration % 2) != 0) {
  			duration += 1;
  		}
  
  		ret.total_energy = duration * ret.energy_cost_per;
  
  		return ret;
  	},
  	"handler"			: function(pc, msg, suppress_activity){
  
  		// If this is the tinkertool, we accept items dropped on us, unless we are broken, and then we do the normal thing
  		if (this.class_tsid == 'tinkertool' && (!this.needsRepair() || (msg.target_itemstack_tsid && this.isWorking()))){
  
  			if (msg.target_itemstack_tsid){
  				var stack = pc.removeItemStackTsid(msg.target_itemstack_tsid);
  				if (!stack) return false;
  
  				this.startRepair(stack);
  				return true;
  			}
  			else{
  				// We don't have a way to do this yet, so just growl it
  				pc.sendActivity('Choose Repair from the item you want to repair, or drag it onto the Tinkertool!');
  				return false;
  			}
  		}
  		else{
  			// Find a tinkertool
  			if (msg.target_itemstack_tsid){
  				var tinkertool = pc.removeItemStackTsid(msg.target_itemstack_tsid);
  				if (tinkertool.class_tsid != 'tinkertool' || !tinkertool.isWorking()) return false;
  			}
  			else{
  				function is_tinkertool(it){ return it.class_tsid == 'tinkertool' && it.isWorking() ? true : false; }
  				var tinkertool = pc.findFirst(is_tinkertool);
  			}
  
  			if (!tinkertool && this.class_tsid != 'tinkertool'){
  				return false;
  			}
  			else if (this.class_tsid == 'tinkertool'){
  				var tinkertool = this;
  			}
  
  			tinkertool.startRepair(this);
  		}
  
  		return true;
  	}
  };
  
  verbs.use = { // defined by pick
  	"name"				: "use",
  	"ok_states"			: ["in_pack"],
  	"requires_target_pc"		: false,
  	"requires_target_item"		: false,
  	"include_target_items_from_location"		: false,
  	"is_default"			: true,
  	"is_emote"			: false,
  	"sort_on"			: 56,
  	"tooltip"			: "Or, drag pick to rock. Costs $energy_cost energy and takes $seconds seconds",
  	"is_drop_target"		: false,
  	"conditions"			: function(pc, drop_stack){
  
  		var required_skill = this.getClassProp('required_skill');
  		if (!pc.skills_has(required_skill)){
  			return {state:'disabled', reason:"You need to know "+pc.skills_get_name(required_skill)+" to use this."};
  		}
  		if (!this.isWorking()) return {state:'disabled', reason: "This pick has become broken, and must be repaired."}
  		return {state:'enabled'};
  	},
  	"effects"			: function(pc){
  
  		if (this.class_tsid == 'fancy_pick'){
  			return pc.trySkillPackage('mining_fancypick');
  		}else{
  			return pc.trySkillPackage('mining');
  		}
  	},
  	"handler"			: function(pc, msg, suppress_activity){
  
  		var required_skill = this.getClassProp('required_skill');
  		if (!pc.skills_has(required_skill)){
  			return false;
  		}
  
  		if (this.instanceProps.points_remaining == 0) return false;
  
  		if(this.class_tsid == 'pick') { msg.force_pick = true; }
  
  		function isMineable(it){ return it.is_mineable && it.isUseable() ? true : false; }
  		if (this.proxyVerb(pc, msg, isMineable, 100, 'mine')){
  			return true;
  		}
  
  		pc.sendActivity("But there's nothing to mine!");
  
  		return false;
  	}
  };
  
  // global block from pick
  var is_pick = true;
  var is_tool = true;
  
  function doBreak(){ // defined by tool_base
  	this.setInstanceProp('is_broken', 1);
  	this.updateState();
  	this.informClient();
  
  	if (this.getClassProp('can_repair') == 0) return;
  
  	var pc = this.apiGetLocatableContainerOrSelf();
  	if (!pc || !pc.is_player) return;
  
  	pc.announce_sound('TOOL_BREAKS');
  
  	var txt = "Ooops! You done broke your "+this.name_single+".";
  	pc.prompts_add({
  		txt		: txt,
  		icon_buttons	: false,
  		timeout		: 5,
  		choices		: [
  			{ value : 'ok', label : 'OK' }
  		]
  	});
  
  	pc.sendActivity(txt);
  
  	pc.quests_inc_counter('tool_broke_'+this.class_tsid, 1);
  	if (this.class_tsid == 'irrigator_9000'){
  		// http://bugs.tinyspeck.com/5784
  
  		pc.quests_inc_counter('tool_broke_watering_can', 1);
  	}
  }
  
  function getBaseCost(){ // defined by tool_base
  	// [20% of BC] + [80% of BC * current wear/maximum wear)
  	// This was producing issues with tools like the gassifier that do not have a points capacity
  	if(intval(this.getClassProp('points_capacity'))) {
  		return (this.base_cost * 0.2) + (this.base_cost * 0.8 * floatval(this.getInstanceProp('points_remaining')) / intval(this.getClassProp('points_capacity')));
  	} else {
  		return this.base_cost;
  	}
  }
  
  function getEnergyPerTwoTicksRepair(pc){ // defined by tool_base
  	//if (!pc) { return 0; }
  
  	var details = pc.getSkillPackageDetails('tinkering');
  
  	var energy = Math.round((details.bonus_amount / 100 * ((this.base_cost)/(this.getClassProp('points_capacity')))) * details.tool_wear);
  
  	return energy;
  }
  
  function getHitPointModifier(pc){ // defined by tool_base
  	return 1;
  }
  
  function getTooltipLabel(){ // defined by tool_base
  	if (this.getClassProp('display_wear') == 1 && hasIntVal(this.getClassProp('points_capacity')) && this.getClassProp('points_capacity') > 0){
  		return this.label + ' ('+floatval(this.getInstanceProp('points_remaining'))+'/'+intval(this.getClassProp('points_capacity'))+')';
  	}
  	else{
  		return this.label;
  	}
  }
  
  function informClient(){ // defined by tool_base
  	var container = this.apiGetLocatableContainerOrSelf();
  	if (!container || !container.is_player) return;
  
  	return;
  	container.apiSendMsgAsIs({
  		type: 'tool_state',
  		itemstack_tsid: this.tsid,
  		tool_state: this.get_tool_state()
  	});
  }
  
  function isWorking(points){ // defined by tool_base
  	// We need fully-formed instance props
  	if (!this.instanceProps || this.instanceProps.points_remaining == undefined){
  		this.initInstanceProps();
  	}
  
  	// Temp fix to make sure no one's tools became broken unexpectedly
  	if (floatval(this.getInstanceProp('points_remaining')) < 0 && intval(this.getClassProp('points_capacity')) != 0){
  		this.setInstanceProp('points_remaining', intval(this.getClassProp('points_capacity')));
  	}
  
  	// No capacity means it works
  	if (!hasIntVal(this.getClassProp('points_capacity')) || intval(this.getClassProp('points_capacity')) == 0) return true;
  
  	// Are we flagged as broken?
  	if (intval(this.getInstanceProp('is_broken')) == 1) return false;
  
  	// If we don't display wear, then we're working
  	if (intval(this.getClassProp('display_wear')) == 0) return true;
  
  	// Do we have enough points remaining
  	if (!points) points = 1;
  	var pc = this.getRootContainer();
  	if (pc && pc.is_player){
  		points *= this.getHitPointModifier(pc);
  	}
  	return (floatval(this.getInstanceProp('points_remaining')) - points) >= 0 ? true : false;
  }
  
  function needsRepair(){ // defined by tool_base
  	var needs_repair = false;
  
  	if (this.getInstanceProp('is_broken') == 1){
  		needs_repair = true;
  	}
  	else if (this.getInstanceProp('points_remaining') < this.getClassProp('points_capacity') && this.getClassProp('display_wear') == 1){
  		needs_repair = true;
  	}
  
  	return needs_repair;
  }
  
  function onContainerChanged(oldContainer, newContainer){ // defined by tool_base
  	this.updateState();
  }
  
  function onConversation(pc, msg){ // defined by tool_base
  	if (msg.choice == 'repair-no'){
  		this.conversation_end(pc, msg);
  	}
  	else{
  		this.conversation_end(pc, msg);
  
  		var contents = pc.getAllContents();
  		if (contents[msg.choice]){
  			tinkertool.startRepair(contents[msg.choice]);
  		}
  		else{
  			this.conversation_reply(pc, msg, "Not sure what you mean there...");
  		}
  	}
  }
  
  function onCreate(){ // defined by tool_base
  	this.initInstanceProps();
  	this.updateLabel();
  }
  
  function onLoad(){ // defined by tool_base
  	if (this.getInstanceProp('is_broken') == 1) return;
  	if (!this.isWorking()){
  		this.doBreak();
  	}
  	else{
  		this.updateLabel();
  	}
  }
  
  function onOverlayDismissed(pc, payload){ // defined by tool_base
  	pc.announce_sound_stop(this.class_tsid.toUpperCase());
  }
  
  function onPropsChanged(){ // defined by tool_base
  	// Set instance prop directly. Don't call setInstanceProp since that will produce a stack overflow
  	this.instanceProps['points_remaining'] = floatval(this.instanceProps['points_remaining']);
  
  	this.updateLabel();
  	this.updateState();
  }
  
  function repair(points){ // defined by tool_base
  	this.setInstanceProp('points_remaining', floatval(this.getInstanceProp('points_remaining')) + points);
  
  	if (this.getInstanceProp('points_remaining') > this.getClassProp('points_capacity')){
  		this.setInstanceProp('points_remaining', this.getClassProp('points_capacity'));
  	}
  
  	if (this.getClassProp('display_wear') == 0 && this.getInstanceProp('points_remaining') == this.getClassProp('points_capacity')){
  		this.setInstanceProp('is_broken', 0);
  	}
  	else if (this.getClassProp('display_wear') == 1 && this.getInstanceProp('points_remaining') > 0){
  		this.setInstanceProp('is_broken', 0);
  	}
  
  	this.updateLabel();
  	this.updateState();
  
  	return this.getClassProp('points_capacity') - this.getInstanceProp('points_remaining');
  }
  
  function rollCraftingBonusImagination(pc, recipe_id, count, upgrade_id, chance_of_bonus, bonus_base_cost_percentage){ // defined by tool_base
  	if (!pc.imagination_has_upgrade(upgrade_id)) return;
  
  	if (is_chance(chance_of_bonus) || pc.buffs_has('max_luck')){
  		var recipe = get_recipe(recipe_id);
  		if (!recipe) return;
  
  		var base_cost = 0;
  		var item = null;
  		var crafting = '';
  		for (var i in recipe.outputs){
  			item = apiFindItemPrototype(recipe.outputs[i][0]);
  			if (item){
  				base_cost += item.getBaseCost() * recipe.outputs[i][1] * count;
  				if (crafting != '') crafting += ',';
  				crafting += recipe.outputs[i][0];
  			}
  		}
  
  		if (!base_cost) return;
  
  		var change = Math.round(base_cost * bonus_base_cost_percentage);
  		var context = {};
  		context['tool'] = this.class_id;
  		context['crafting'] = crafting;
  		context['img_upgrade'] = upgrade_id;
  		context['base_cost'] = base_cost;
  
  		var actual = pc.stats_add_xp(change, false, context);
  
  		if (actual > 0) {
  			pc.sendActivity('Hey, you got '+actual+' bonus imagination for making that.');
  		}
  		
  	}
  }
  
  function updateLabel(){ // defined by tool_base
  	if (this.label != this.name_single){
  		this.label = this.name_single;
  		this.informClient();
  	}
  
  	/*if (this.getClassProp('display_wear') == 1 && hasIntVal(this.getClassProp('points_capacity')) && this.getClassProp('points_capacity') > 0){
  		this.label = this.name_single + ' (' + this.getInstanceProp('points_remaining') + '/' + this.getClassProp('points_capacity') + ')';
  		this.informClient();
  	}*/
  }
  
  function updateState(){ // defined by tool_base
  	if (this.isOnGround()){
  		if (this.isWorking()){
  			this.setAndBroadcastState('1');
  		}
  		else{
  			this.setAndBroadcastState('broken');
  		}
  	}
  	else{
  		if (this.isWorking()){
  			this.setAndBroadcastState('iconic');
  		}
  		else{
  			this.setAndBroadcastState('broken_iconic');
  		}
  	}
  }
  
  function use(pc, points){ // defined by tool_base
  	if (!this.instanceProps || this.instanceProps.points_remaining == undefined){
  		this.initInstanceProps();
  	}
  
  	if (this.getClassProp('points_capacity') == 0) return false;
  
  	if (!points) points = 1;
  
  	if (!this.isWorking(points)) return false;
  
  	this.instanceProps.points_remaining = floatval(this.instanceProps.points_remaining) - (points * this.getHitPointModifier(pc));
  
  	// Tools that display wear break at 0
  	// Otherwise we roll the dice
  	if (this.getInstanceProp('points_remaining') <= 0){
  		this.setInstanceProp('points_remaining', 0);
  
  		if (this.getClassProp('display_wear') == 1 || this.has_parent('potion_base')){
  			this.doBreak();
  		}
  		else{
  			var chance = 0.10;
  			if (this.getClassProp('required_skill')){
  				if (pc.skills_get_highest_level(this.getClassProp('required_skill')) == 2){
  					chance = 0.05;
  				}
  			}
  
  			// max_luck is undesirable for end of world
  			// if (is_chance(chance) || pc.buffs_has('max_luck')){
  			if (is_chance(chance)){
  				this.doBreak();
  			}
  		}
  	}
  
  	this.updateLabel();
  	return true;
  }
  
  // global block from tool_base
  var is_tool = true;
  
  function getDescExtras(pc){
  	var out = [];
  	if (pc && (!pc.skills_has("mining_1"))) out.push([1, "You need the skill <a href=\"\/skills\/52\/\" glitch=\"skill|mining_1\">Mining I<\/a> to use this."]);
  
  	// automatically generated source information...
  	out.push([2, "This can be made with a <a href=\"\/items\/563\/\" glitch=\"item|tinkertool\">Tinkertool<\/a> or purchased from a <a href=\"\/items\/1000005\/\" glitch=\"item|npc_streetspirit_hardware\">Hardware Vendor<\/a>, an <a href=\"\/items\/1000001\/\" glitch=\"item|npc_streetspirit_alchemical_goods\">Alchemical Goods Vendor<\/a>, a <a href=\"\/items\/411\/\" glitch=\"item|npc_tool_vendor\">Tool Vendor<\/a> or a <a href=\"\/items\/1000009\/\" glitch=\"item|npc_streetspirit_mining\">Mining Vendor<\/a>."]);
  	if (pc && !pc.skills_has("tinkering_1")) out.push([2, "You need to learn <a href=\"\/skills\/72\/\" glitch=\"skill|tinkering_1\">Tinkering I<\/a> to use a <a href=\"\/items\/563\/\" glitch=\"item|tinkertool\">Tinkertool<\/a>."]);
  	if (pc && !(pc.skills_has("tinkering_4") && pc.skills_has("engineering_1"))) out.push([2, "The recipe for this will become available after you learn <a href=\"\/skills\/75\/\" glitch=\"skill|tinkering_4\">Tinkering IV<\/a> and <a href=\"\/skills\/92\/\" glitch=\"skill|engineering_1\">Engineering I<\/a>."]);
  	return out;
  }
  
  var tags = [
  	"tool",
  	"mining"
  ];
  
  var has_custom_basecost = 1;
  
  
  // this is a temporary fix, while the client doesn't load item defs
  // from the XML files. we pass this data on login events.
  
  function getAssetInfo(){
  	return {
  		'position': {"x":-25,"y":-15,"w":48,"h":21},
  		'thumb': "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM\/rhtAAAEh0lEQVR42t2Y7U9bdRTH9x8QXxoL\nHQyKyLLOiBjNIkZ9Ydx4HEgfubf3wi2PLVCgtKWUlgu0pVAYk+EeKAnOKKyp0SxLpslNjIkxMekL\nE9\/2T7h\/wtd72t7JFt3YaLnEm5ykSW+bT77nnO85v9+5c\/\/Hp6fn0wqT7fOQyXZVKsQ1yWRXgrkm\nmZlWycy2Sha2LWVhO0JmR2eLJpBFQChgMPdRtMLCtEEBg9XRrkQHrFwHbHwnbFyHbO\/vSvYIPRWn\nBmi2XmWeKGdXlWvLWdln4JRQ4GAfuA7BbcfqrVjo4KeDCmmzmcnufZT66+uP9aeuro3rNCqqhRTI\nrApH0Sd0o8\/ZjUBkTE6Ll\/Eofhl\/7n+S0wTyKKx9oCuVh1OCcfaAGfwC\/oAN275mbLpq8XC1KaR5\nY1n4Lr0gfJZjBguA7FAvhiftiEfMiK9Pt2gOGHboWiJcJXx8I7jB62CHe+EYNsG\/PIOtb27L0Xtr\nRs3gRP51fdhRKRMgRZCvBT\/UDceICY5RM5a2RMR3N2TxbkKbWjwIGTIqXCF0SX7EomdHTDlu1AJh\nog87392FeCuePX24YG3Lvt9wFC6jfseN9hodYxaZd1nhFT2kIhYUGzpVwO8X38odRi5hfeQ8RL4q\nFxVee8qsHS5LOwHybhtW76xh4eYKAjfF00n1wXy9+9ft97HlrsH2eA2UOmz\/t\/c4lzXZP27DVNiN\npZ1VBDfEZNnh0oFq\/cPoJfnxejO+miQ4nfRf7wrKCOTH7XK\/UotL21HMbURkbzRaUfbG+P32FewH\nGorq6Z7rdfyElRlQAH1RL\/zrYXgTYXfZ4A7n69t\/Tr6DR4kmfBs0IObUZ47zu\/4JJjfk5eFPRhTA\nkFQe5bw1FT+uXMz9ce9DUPdSeskHj\/PbAU+fW\/Cw8K0GMROfhycRKH2zZCINmd92PsDerAH7vjqs\n9Fcd2zZ4D68Xpli4Qm5MxebgiQWYkqdW2nwX9wMGJeqwNqyXn7WVFz3CNJsd8Q\/BsxLA5LIvU\/Ku\nTYffzMPFnFUIs7qXLnTnNOse8gmYWPZhfHE2V7K6U7o2S3D5tA5Ukee90p87vZxxcIbHuDgL96IX\npbKU1GGovtixVfmR9iJbeS7kDCdPRecwFp5GCequLklwFFuu6vxIW+R0J5qnMzEfI34Zy67t3jgZ\n4IN5A6PCUd1tjp4n5Uq2kQRvRIwnglOaAipgcda+dNeWaVIYQo8Tb+OHpYt5uDtTF1BYSN8wngG4\nuiRtKHQiIziqOYI7SVOU1EoIjtRTm+JMKEdbcTrcINMIU+GKK1T2uHO2rPVGBkxwas0V0qqTNG2I\ndNBgpJQSFMGpU6JoxCnNVSOlKJ2015HHEZzIV2oLp6qmHHRAW8nhQkO+1shGCO6kE6IktZbfhBUL\nISjq0t3pC+qRMaWpagT1y9Z7+VqjqUC1tuet1T6tdF4gEHUboQ7dHKtWPtfn16ajB21NnsSgXiI4\ngiTV7gcblTQ3FRbOEg7+V37onoRqjNJK6U1HGp\/AnYnBTxCUxqOXO2dm8D99f1fZ\/s8V2dmB+xu0\n3uynR7T73AAAAABJRU5ErkJggg==",
  	};
  };
  
  var itemDef = {
  	label		: this.label,
  	name_plural	: this.name_plural,
  	stackmax	: this.stackmax,
  	is_hidden	: this.is_hidden,
  	has_info	: this.has_info,
  	adjusted_scale	: this.adjusted_scale,
  	asset_swf_v	: "http:\/\/c2.glitch.bz\/items\/2012-05\/pick-1338251455.swf",
  	admin_props	: true,
  	obey_physics	: true,
  	in_background	: false,
  	in_foreground	: false,
  	has_status	: false,
  	not_selectable	: false,
  };
  
  if (this.consumable_label_single) itemDef.consumable_label_single = this.consumable_label_single;
  if (this.consumable_label_plural) itemDef.consumable_label_plural = this.consumable_label_plural;
  
  itemDef.verbs = {
  };
  itemDef.hasConditionalVerbs = 1;
  itemDef.emote_verbs = {
  };
  itemDef.hasConditionalEmoteVerbs = 0;
  itemDef.tags = [
  	"tool",
  	"mining"
  ];
  itemDef.keys_in_location = {
  	"p"	: "pickup"
  };
  itemDef.keys_in_pack = {
  	"r"	: "drop",
  	"g"	: "give",
  	"e"	: "repair",
  	"u"	: "use"
  };
  
  log.info("pick.js LOADED");
  
  // generated ok 2012-12-09 12:50:56 by ali
  