예제 #1
0
    def unregister(cls):
        """Unregister a system class

        Returns:
            True if the system was unregistered, false if Not
        """
        try:
            SystemManager.unregister_system(cls.__registered_as)
            cls.__registered_as = None
        except NotRegisteredError as error:
            print(error)
            return False
예제 #2
0
    def edit_systems(self):
        """Show the dialog to edit systems"""
        dialog = Systems(self)
        values = dialog.show_modal(self.editor_gui.editor_window,
                                   self.engine.pump)
        if not dialog.return_value:
            return False
        SystemManager.clear_systems()
        current_items = list(values["current_items"])
        self.project.set("fife-rpg", "Systems", current_items)
        self.register_systems(current_items)

        self.project_changed = True
예제 #3
0
    def register(cls, name):
        """Registers the class as a system

        Args:
            name: The name under which the class should be registered

        Returns:
            True if the system was registered, False if not.
        """
        try:
            for dependency in cls.dependencies:
                if not dependency.registered_as:
                    dependency.register()
            SystemManager.register_system(name, cls())
            cls.__registered_as = name
            return True
        except AlreadyRegisteredError as error:
            print error
            return False
예제 #4
0
 def configure(self):
     """Configure the worlds components and systems"""
     World.configure(self)
     components = ComponentManager.get_components()
     for name, component in components.iteritems():
         setattr(self.components, name, component)
     systems = SystemManager.get_systems()
     for name, system in systems.iteritems():
         setattr(self.systems, name, system)
     if not General.registered_as:
         General.register()
예제 #5
0
 def configure(self):
     """Configure the worlds components and systems"""
     World.configure(self)
     components = ComponentManager.get_components()
     for name, component in components.items():
         setattr(self.components, name, component)
     systems = SystemManager.get_systems()
     for name, system in systems.items():
         setattr(self.systems, name, system)
     if not General.registered_as:
         General.register()
예제 #6
0
    def register(cls, name):
        """Registers the class as a system

        Args:
            name: The name under which the class should be registered

        Returns:
            True if the system was registered, False if not.
        """
        try:
            for dependency in cls.dependencies:
                if not dependency.registered_as:
                    dependency.register()
            # pylint: disable=abstract-class-instantiated
            SystemManager.register_system(name, cls())
            # pylint: enable=abstract-class-instantiated
            cls.__registered_as = name
            return True
        except AlreadyRegisteredError as error:
            print(error)
            return False
예제 #7
0
 def clear(self):
     """Clears all data and restores saved settings"""
     self._maps = {}
     self._current_map = None
     self._components = {}
     self._actions = {}
     self._systems = {}
     self._behaviours = {}
     self.changed_maps = []
     self.project_changed = False
     self.entity_changed = False
     self.editor_gui.reset_layerlist()
     self.map_entities = None
     self.set_selected_object(None)
     tmp_settings = list(self.settings.getSettingsFromFile("fife-rpg").keys())
     for setting in tmp_settings:
         if setting in self.editor_settings:
             self.settings.set("fife-rpg", setting,
                               self.editor_settings[setting])
         else:
             self.settings.remove("fife-rpg", setting)
     ComponentManager.clear_components()
     ComponentManager.clear_checkers()
     ActionManager.clear_actions()
     ActionManager.clear_commands()
     SystemManager.clear_systems()
     BehaviourManager.clear_behaviours()
     self.editor.delete_maps()
     self.editor.delete_objects()
     if self.project_source is not None:
         self.engine.getVFS().removeSource(self.project_source)
         self.project_source = None
     if self.project_dir is not None:
         sys.path.remove(self.project_dir)
         self.project_dir = None
     self.project = None
     for callback in self._project_cleared_callbacks:
         callback()
     self.create_world()