anchor.diff:  	bool canMakeOn(Tile tile) => tile.outdoors;
   }
   
  +class RecipeMineshaft2 extends RecipeMineshaft {
  +	RecipeMineshaft2() : super() {
  +		desc = "Dig deeper, greedier, ever downwards... More valuable materials lie below. Like MORE cobblestone!";
  +		space = 5;
  +	}
  +	
  +	@override
  +	bool canMakeOn(Tile tile) {
  +		// can only make in a mineshaft that has no mineshaft yet.
  +		if (tile is! TileMineshaft) {
  +			return false;
  +		}
  +		for (Feature f in tile.features) {
  +			if (f is FeatureMineshaft) {
  +				return false;
  +			}
  +		}
  +		return true;
  +	}
  +}
  +
   class TileMineshaft extends FeatureTile {
   	TileMineshaft(FeatureMineshaft feature) : super(feature) {
   		maxFeatureSpace = 10;
  
positive.code: 	TileMineshaft.raw() : super.raw();
  	static Tile loadClass(World world, Map<String, Object> json) {
  		return new TileMineshaft.raw();
  	}
  }
  
  
negative.code: 	
  	double get baseLight => 0.0;
  	Tile get customUp => feature.tile;
  	Tile get customDown {
  		for (Feature f in features) {
  			if (f is FeatureMineshaft) {
  				return (f as FeatureMineshaft).innerTile;
  			}
  		}
  		return null;
  	}
  	
  	bool get outdoors => false;
  	bool get underground => true;
  