예제 #1
0
def get_contour(reset=False):
    """ Gets existing contour data """
    
    contour = Contour()
    if reset:
        return contour
    
    contour_data_file = os.path.join(cli.world_dir, cli.contour_file_name)
    try:
        contour.read(contour_data_file)
    except (EnvironmentError, ContourLoadError), e:
        if e.errno != errno.ENOENT:
            error('could not read contour data: %s' % e)
예제 #2
0
            print
            print "Finished shifting, shifted: %d chunks" % shifted

    # Attempt to merge new chunks with old chunks
    elif mode == Modes.merge:
        contour_data_file = os.path.join(cli.world_dir, cli.contour_file_name)
        
        if 'gauss' in (ChunkShaper.filt_name_river, ChunkShaper.filt_name_even):
            if not hasattr(filter, 'scipy'):
                print "You must install SciPy to use the '%s' filter" % 'gauss'
                sys.exit(1)
        
        print "Getting saved world contour..."
        contour = Contour()
        try:
            contour.read(contour_data_file)
        except (EnvironmentError, ContourLoadError), e:
            if e.errno == errno.ENOENT:
                if os.path.exists(cli.world_dir):
                    error("no contour data to merge with (use trace mode to generate)")
                else:
                    error('could not read world data: File not found: %s' % cli.world_dir)
            else:
                error('could not read contour data: %s' % e)
        
        def save_contour():
            try:
                if contour.empty:
                    os.remove(contour_data_file)
                else:
                    contour.write(contour_data_file)