def validate_fsm_name(name): path = format.append_to_path(fsm.get_fsms_lib(), name) try: # Lookup will fail if it's a new name (name not found) pynebula.lookup(path) msg = "Another finite state machine called '%s' already exists." % name cjr.show_error_message(msg) return False except: msg = "Renaming this FSM will invalidate any references to it that " \ "any agent has.\nAre you sure that you want to rename it?" result = cjr.confirm_yes_no(None, msg) return result == wx.ID_YES
def validate_fsm_name(name): path = format.append_to_path( fsm.get_fsms_lib(), name ) try: # Lookup will fail if it's a new name (name not found) pynebula.lookup( path ) msg = "Another finite state machine called '%s' already exists." % name cjr.show_error_message(msg) return False except: msg = "Renaming this FSM will invalidate any references to it that " \ "any agent has.\nAre you sure that you want to rename it?" result = cjr.confirm_yes_no(None, msg) return result == wx.ID_YES
def on_select_fsm(self, event): type = self.__get_selected_list_item( self.ID_AgentType ) if type != "": sm_name = self.choice_fsm.GetStringSelection() if sm_name == "<none>": sm = None else: sm_path = format.append_to_path( fsm.get_fsms_lib(), sm_name ) sm = pynebula.lookup( sm_path ) entity_class = servers.get_entity_class_server().getentityclass( str(type) ) entity_class.setparentfsm( sm ) servers.get_entity_class_server().setentityclassdirty( entity_class, True ) index = self.__get_selected_list_index() self.list.SetStringItem( index, self.ID_FSM, sm_name )
def on_select_fsm(self, event): type = self.__get_selected_list_item(self.ID_AgentType) if type != "": sm_name = self.choice_fsm.GetStringSelection() if sm_name == "<none>": sm = None else: sm_path = format.append_to_path(fsm.get_fsms_lib(), sm_name) sm = pynebula.lookup(sm_path) entity_class = servers.get_entity_class_server().getentityclass( str(type)) entity_class.setparentfsm(sm) servers.get_entity_class_server().setentityclassdirty( entity_class, True) index = self.__get_selected_list_index() self.list.SetStringItem(index, self.ID_FSM, sm_name)
def __set_properties(self): # Grimoire saver = GrimoireLibrarySaver() if saver.is_save_allowed(): self.savers.append(saver) # Current level saver = CurrentLevelSaver() if saver.is_save_allowed(): self.savers.append(saver) # Entity classes saver = EntityClassesSaver() if saver.is_save_allowed(): self.savers.append(saver) # Current preset saver = CurrentPresetSaver() if saver.is_save_allowed(): self.savers.append(saver) # FSMs state_machine = pynebula.lookup(fsm.get_fsms_lib()).gethead() while state_machine is not None: if state_machine.isdirty(): self.savers.append(FSMSaver(state_machine)) state_machine = state_machine.getsucc() # Sound library saver = SoundLibSaver() if saver.is_save_allowed(): self.savers.append(saver) # Material library saver = MaterialLibSaver() if saver.is_save_allowed(): self.savers.append(saver) # Global variables saver = GlobalVarSaver() if saver.is_save_allowed(): self.savers.append(saver) # Dialogs for child in app.get_top_window().GetChildren(): if isinstance(child, dialoggui.guiDialog): if child.is_dirty(): saver = child.get_saver() if saver is not None: self.savers.append(saver) # Fill check list for saver in self.savers: i = self.checklist.Append(saver.get_brief()) self.checklist.Check(i, True) # Default button if self.exiting: self.button_yes.SetDefault() else: self.button_save.SetDefault()
def __init__(self, parent): LibraryDialog.__init__(self, parent, fsm.get_fsms_lib(), 'nfsm', "finite state machine")
def __set_properties(self): # Grimoire saver = GrimoireLibrarySaver() if saver.is_save_allowed(): self.savers.append( saver ) # Current level saver = CurrentLevelSaver() if saver.is_save_allowed(): self.savers.append( saver ) # Entity classes saver = EntityClassesSaver() if saver.is_save_allowed(): self.savers.append( saver ) # Current preset saver = CurrentPresetSaver() if saver.is_save_allowed(): self.savers.append( saver ) # FSMs state_machine = pynebula.lookup( fsm.get_fsms_lib() ).gethead() while state_machine is not None: if state_machine.isdirty(): self.savers.append( FSMSaver(state_machine) ) state_machine = state_machine.getsucc() # Sound library saver = SoundLibSaver() if saver.is_save_allowed(): self.savers.append( saver ) # Material library saver = MaterialLibSaver() if saver.is_save_allowed(): self.savers.append( saver ) # Global variables saver = GlobalVarSaver() if saver.is_save_allowed(): self.savers.append( saver ) # Dialogs for child in app.get_top_window().GetChildren(): if isinstance(child, dialoggui.guiDialog): if child.is_dirty(): saver = child.get_saver() if saver is not None: self.savers.append( saver ) # Fill check list for saver in self.savers: i = self.checklist.Append( saver.get_brief() ) self.checklist.Check( i, True ) # Default button if self.exiting: self.button_yes.SetDefault() else: self.button_save.SetDefault()