def load_level(level): """ Import a level with: -Physics static object -Images with or without animation -IA (if any) -Player position, size, etc... but not recreate the player!!! """ level_data = load_json(CONST.path_prefix+level.filename) if level_data is not None: log("LOAD PLAYER") player_data = get_element(level_data, 'player') if player_data is not None: '''load the json containing the player and treat it as an AnimImage''' player = None if isinstance(player_data, CONST.string_type): log("Loading player "+player_data) player_json = load_json(CONST.path_prefix + player_data) player = load_image_from_json(player_json, level) elif isinstance(player_data,dict): player = load_image_from_json(player_data, level) else: log("Warning: Invalid format for player JSON",1) if player: level.player = player log("LOAD GUI") gui_data = get_element(level_data, 'gui') if gui_data is not None: '''load the json containing the gui parameters''' if isinstance(gui_data, CONST.string_type): GUI.load_gui_json(load_json(gui_data),level) elif isinstance(gui_data,dict): GUI.load_gui_json(gui_data,level) else: log("Warning: invalid format for GUI JSON",1) log("LOAD_BG COLOR") bg_color = get_element(level_data,'bg_color') if bg_color is not None: level.bg_color = bg_color show_mouse = get_element(level_data,'show_mouse') if show_mouse is not None: level.show_mouse = show_mouse use_physics = get_element(level_data,'use_physics') if use_physics is not None: level.use_physics = use_physics network = get_element(level_data, 'network') if network is not None: level.use_network = network log("LOAD EVENTS") event_data = get_element(level_data, "events") if event_data: for e in event_data.keys(): level.event[e] = load_event(event_data[e]) log("LOAD ImAGE OBJECTS") objects_dict = get_element(level_data, 'objects') reset_object_id() if objects_dict is not None: for object_data in objects_dict: if isinstance(object_data, CONST.string_type): load_image_from_json(load_json(object_data), level, None) elif isinstance(object_data,dict): image_type = get_element(object_data,"type") load_image_from_json(object_data,level,image_type) checkpoints = get_element(level_data, 'checkpoints') if checkpoints: log("CHECKPOINTS LIST: "+str(checkpoints)) v_checkpoints = [] for c in checkpoints: v_checkpoints.append(Vector2(c)) level.checkpoints = v_checkpoints log("END OF LOADING") return True return False