void DrawVisibilityForMap(BlockMap map){
			
			Color c = GUI.color;
			
			bool viewAll = mapViewAll[map.name];
			
			if(viewAll){
				GUI.color = Color.green;
			}
			
			EditorGUILayout.BeginHorizontal();
			
			if(GUILayout.Button("View All Layers")){
				if(!viewAll){
					map.ShowAllLayers();
					mapViewAll[map.name] = true;
				}
			}
			
			GUI.color = c;
			
			if(!mapUnlockAll.ContainsKey(map.name)){
				mapUnlockAll.Add(map.name,true);
			}
			
			mapUnlockAll[map.name] = EditorGUILayout.Toggle(mapUnlockAll[map.name]);
			
			if(mapUnlockAll[map.name]){
				mapLayerLock.Clear();
			}
			
			EditorGUILayout.EndHorizontal();
			
			if(!mapLayerVisibility.ContainsKey(map.name)){
				mapLayerVisibility.Add(map.name,0);
			}
			
			int viewedLayer = mapLayerVisibility[map.name];
			
			for(int i = map.mapLowerDepth; i <= map.mapUpperDepth; i++){
				
				if(!viewAll && viewedLayer == i){
					GUI.color = Color.green;
				}
			
				EditorGUILayout.BeginHorizontal();
				
				if(GUILayout.Button("Layer " + i)){
					if(viewedLayer != i || viewAll){
						map.ShowLayer(i);
						mapLayerVisibility[map.name] = i;
						mapViewAll[map.name] = false;
					}
				}
				
				GUI.color = c;
				
				if(!mapLayerLock.ContainsKey(map.name + "_" + i)){
					mapLayerLock.Add(map.name + "_" + i,false);
				}
				
				mapLayerLock[map.name + "_" + i] = EditorGUILayout.Toggle(mapLayerLock[map.name + "_" + i]);
				
				if(mapLayerLock[map.name + "_" + i]){
					
					
					mapUnlockAll[map.name] = false;
				}
				
				EditorGUILayout.EndHorizontal();
				
			}
			
		}