anchor.diff:  }
   
   FeatureRecipe selFeatureRecipe;
  -bool autocraft = true;
  +bool autocraft = false;
   void handleCraftFeature(Console c) {
   	c.labels.add(new ConsoleLabel(0, 0,  "Craft Structure"));
   	
  
positive.code: 	c.labels.add(new ConsoleLink(c.rightJustified(autocraftString), c.height - 1,  autocraftString, 190, (c, l) {
  		autocraft = !autocraft;
  	}, autocraftColor));
  }
negative.code: 					
  					selFeatureRecipe.craft(world.player.tile, items);
  					
  					selFeatureRecipe = null;
  					c.onRefresh = handleTileView;
  				} else {
  					int i = 0;
  					SelectMaterialCallback onMatSel;
  					onMatSel = (c, stack) {
  						if (stack == null) {
  							i--;
  							if (i < 0) {
  								c.onRefresh = handleCraftFeature;
  							} else {
  								ItemStack cancelled = items.removeLast();
  								cancelled.give(selFeatureRecipe.inputs[i].amt);
  								if (!world.player.inventory.items.contains(cancelled)) {
  									world.player.inventory.add(cancelled);
  								}
  								
  								c.onRefresh = onSelectMaterial(c, selFeatureRecipe.inputs[i], onMatSel);
  							}
  						} else {
  							items.add(stack);
  							stack.take(selFeatureRecipe.inputs[i].amt);
  							i++;
  							
  							if (i >= selFeatureRecipe.inputs.length) {
  								// craft
  								selFeatureRecipe.craft(world.player.tile, items);
  								c.onRefresh = handleTileView;
  							} else {
  								c.onRefresh = onSelectMaterial(c, selFeatureRecipe.inputs[i], onMatSel);
  							}
  						}
  					};
  					c.onRefresh = onSelectMaterial(c, selFeatureRecipe.inputs[i], onMatSel);
  				}
  			}));
  		} else {
  