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'}
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'}