def __load_layers_state(self): """ Get the layers state persisted to the layermanager file in the presets directory. The selected layer and the active flag value for each layer is stored, but NOT the value of the locked flag, since this is part of the data persisted with its owning level. """ servers.get_layer_manager().loadlayers(self.__get_layers_path())
def __load_layers_state(self): """ Get the layers state persisted to the layermanager file in the presets directory. The selected layer and the active flag value for each layer is stored, but NOT the value of the locked flag, since this is part of the data persisted with its owning level. """ servers.get_layer_manager().loadlayers( self.__get_layers_path() )
def layer_can_be_deleted(layer): """ Check that the layer can be deleted. Warn the user if it isn't and return false. Otherwise just return true. """ # check the layer has not been locked layer_name = layer.getlayername() if layer.islocked(): cjr.show_error_message( "You cannot delete the '%s' layer.\n\n" \ "It is not possible to delete a locked layer." % layer_name ) return False # check that there're at least two layers manager = servers.get_layer_manager() if manager.getnumlayers() <= 1: msg = "You cannot delete the '%s' layer.\n\n" \ "A level must always have at least one layer." % layer_name cjr.show_error_message(msg) return False # check if there's some entity not marked as deleted within the layer try: try: wx.BeginBusyCursor() e_server = servers.get_entity_object_server() entity = e_server.getfirstentityobject() report = [] while entity is not None: if entity.hascomponent('ncEditor'): if not entity.isdeleted(): entity_layer_id = entity.getlayerid() if entity_layer_id >= 0: entity_layer = manager.searchlayerbyid( entity_layer_id) if entity_layer.getlayername() == layer_name: entity_class = entity.getentityclass().getname( ) entity_name = "" if entity.hascomponent('ncGameplay'): entity_name = entity.getname() report.append((entity.getid(), entity_class, entity_name)) entity = e_server.getnextentityobject() finally: wx.EndBusyCursor() except: # make sure any errors are not hidden raise # show a report about all the entities found in the layer, if any if len(report) > 0: caption = "Error deleting the '%s' layer" % layer_name msg = "Unable to delete the '%s' layer because it " \ "still contains the following entities" % layer_name log = (['Id', 'Class', 'Name'], report) usagelog.UsageLogDialog(app.get_top_window(), caption, msg, log) return False return True
def save_layers_state(self): """ Save the layers state to file - see comment for the __load_layers_state method. """ servers.get_layer_manager().savelayers( self.__get_layers_path() )
def __add_all_layer_ctrls(self): selected_layer_id = servers.get_layer_manager().getselectedlayerid() layer = servers.get_layer_manager().gethead() while layer is not None: layer_id = layer.getid()
def get_layer(self): return servers.get_layer_manager().searchlayerbyid( self.get_layer_id() )
def select(self): self.is_selected = True servers.get_layer_manager().selectlayer( self.get_layer_id() ) self.update_colors()
def layer_can_be_deleted(layer): """ Check that the layer can be deleted. Warn the user if it isn't and return false. Otherwise just return true. """ # check the layer has not been locked layer_name = layer.getlayername() if layer.islocked(): cjr.show_error_message( "You cannot delete the '%s' layer.\n\n" \ "It is not possible to delete a locked layer." % layer_name ) return False # check that there're at least two layers manager = servers.get_layer_manager() if manager.getnumlayers() <= 1: msg = "You cannot delete the '%s' layer.\n\n" \ "A level must always have at least one layer." % layer_name cjr.show_error_message(msg) return False # check if there's some entity not marked as deleted within the layer try: try: wx.BeginBusyCursor() e_server = servers.get_entity_object_server() entity = e_server.getfirstentityobject() report = [] while entity is not None: if entity.hascomponent('ncEditor'): if not entity.isdeleted(): entity_layer_id = entity.getlayerid() if entity_layer_id >= 0: entity_layer = manager.searchlayerbyid( entity_layer_id ) if entity_layer.getlayername() == layer_name: entity_class = entity.getentityclass().getname() entity_name = "" if entity.hascomponent('ncGameplay'): entity_name = entity.getname() report.append( (entity.getid(), entity_class, entity_name) ) entity = e_server.getnextentityobject() finally: wx.EndBusyCursor() except: # make sure any errors are not hidden raise # show a report about all the entities found in the layer, if any if len( report ) > 0: caption = "Error deleting the '%s' layer" % layer_name msg = "Unable to delete the '%s' layer because it " \ "still contains the following entities" % layer_name log = ( ['Id', 'Class', 'Name'], report ) usagelog.UsageLogDialog( app.get_top_window(), caption, msg, log ) return False return True
def save_layers_state(self): """ Save the layers state to file - see comment for the __load_layers_state method. """ servers.get_layer_manager().savelayers(self.__get_layers_path())
def get_layer(self): return servers.get_layer_manager().searchlayerbyid(self.get_layer_id())
def select(self): self.is_selected = True servers.get_layer_manager().selectlayer(self.get_layer_id()) self.update_colors()
def __init__(self): self.layer_manager = servers.get_layer_manager() #initialize the dictionary with the default value self.layer_name_dictionary = {cfg.NO_LAYER_ID : "None"}