Example #1
0
 def execute(self, context):
     import bge_netlogic.utilities as tools
     stripped_tree_name = tools.strip_tree_name(self.tree_name)
     py_module_name = tools.py_module_name_for_stripped_tree_name(
         stripped_tree_name)
     for ob in [
             x for x in context.scene.objects if x.select_get()
             and tools.object_has_treeitem_for_treename(x, self.tree_name)
     ]:
         gs = ob.game
         controllers = [
             c for c in gs.controllers if py_module_name in c.name
         ]
         actuators = [a for a in gs.actuators if py_module_name in a.name]
         sensors = [s for s in gs.sensors if py_module_name in s.name]
         for c in controllers:
             bge_netlogic.debug("remove", c.name, "from", ob.name)
             bpy.ops.logic.controller_remove(controller=c.name,
                                             object=ob.name)
         for a in actuators:
             bge_netlogic.debug("remove", a.name, "from", ob.name)
             bpy.ops.logic.actuator_remove(actuator=a.name, object=ob.name)
         for s in sensors:
             bge_netlogic.debug("remove", s.name, "from", ob.name)
             bpy.ops.logic.sensor_remove(sensor=s.name, object=ob.name)
         bge_netlogic.utilities.remove_tree_item_from_object(
             ob, self.tree_name)
         bge_netlogic.utilities.remove_network_initial_status_key(
             ob, self.tree_name)
     return {'FINISHED'}
    def execute(self, context):
        import bge_netlogic.utilities as tools
        stripped_tree_name = tools.strip_tree_name(self.tree_name)
        py_module_name = tools.py_module_name_for_stripped_tree_name(
            stripped_tree_name)
        py_module_name = py_module_name.split('NL')[-1]
        for ob in [
                x for x in context.scene.objects if x.select_get()
                and tools.object_has_treeitem_for_treename(x, self.tree_name)
        ]:
            gs = ob.game
            controllers = [
                c for c in gs.controllers if py_module_name in c.name
            ]
            actuators = [a for a in gs.actuators if py_module_name in a.name]
            sensors = [s for s in gs.sensors if py_module_name in s.name]
            for s in sensors:
                print("Removed Sensor", s.name, "from", ob.name)
                bpy.ops.logic.sensor_remove(sensor=s.name, object=ob.name)
            for c in controllers:
                print("Removed Controller", c.name, "from", ob.name)
                bpy.ops.logic.controller_remove(controller=c.name,
                                                object=ob.name)
            for a in actuators:
                print("Removed Actuator", a.name, "from", ob.name)
                bpy.ops.logic.actuator_remove(actuator=a.name, object=ob.name)

            bge_netlogic.utilities.remove_tree_item_from_object(
                ob, self.tree_name)
            bge_netlogic.utilities.remove_network_initial_status_key(
                ob, self.tree_name)
            print("Succsessfully removed tree {} from object {}.".format(
                self.tree_name, ob.name))
        return {'FINISHED'}
Example #3
0
    def execute(self, context):
        import bge_netlogic.utilities as tools
        stripped_tree_name = tools.strip_tree_name(self.tree_name)
        py_module_name = tools.py_module_name_for_stripped_tree_name(
            stripped_tree_name)
        py_module_name = py_module_name.split('NL')[-1]
        objs = [
            ob for ob in context.scene.objects if ob.select_get()
            and tools.object_has_treeitem_for_treename(ob, self.tree_name)
        ]
        for ob in objs:
            tree_name = utils.make_valid_name(self.tree_name)
            module = f'nl_{tree_name.lower()}'
            gs = ob.game
            idx = 0
            for c in gs.components:
                if c.module == module:
                    bpy.ops.logic.python_component_remove(index=idx)
                idx += 1
            controllers = [
                c for c in gs.controllers if py_module_name in c.name
            ]
            actuators = [a for a in gs.actuators if py_module_name in a.name]
            sensors = [s for s in gs.sensors if py_module_name in s.name]
            for s in sensors:
                bpy.ops.logic.sensor_remove(sensor=s.name, object=ob.name)
            for c in controllers:
                bpy.ops.logic.controller_remove(controller=c.name,
                                                object=ob.name)
            for a in actuators:
                bpy.ops.logic.actuator_remove(actuator=a.name, object=ob.name)

            bge_netlogic.utilities.remove_tree_item_from_object(
                ob, self.tree_name)
            bge_netlogic.utilities.remove_network_initial_status_key(
                ob, self.tree_name)
            utils.success(
                "Successfully removed tree {} from object {}.".format(
                    self.tree_name, ob.name))
        return {'FINISHED'}