- allow RNA_property_enum_items to take the totitems int pointer as NULL (spares a loop on all the enum items). this change also makes enums types with no enum array crash in some places, could support these though Id rather disallow them, generating docs is a quick way to test for this. - open recent file operator used and enum to open the recent file without an enum array, changed to an int type. - added space_logic.py poll functions
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import bpy
 | 
						|
 | 
						|
class LOGIC_PT_physics(bpy.types.Panel):
 | 
						|
	__space_type__ = "LOGIC_EDITOR"
 | 
						|
	__region_type__ = "UI"
 | 
						|
	__label__ = "Physics"
 | 
						|
 | 
						|
	def poll(self, context):
 | 
						|
		ob = context.active_object
 | 
						|
		return ob and ob.game
 | 
						|
 | 
						|
	def draw(self, context):
 | 
						|
		layout = self.layout
 | 
						|
		ob = context.active_object
 | 
						|
		
 | 
						|
		game = ob.game
 | 
						|
 | 
						|
		flow = layout.column_flow()
 | 
						|
		flow.active = True
 | 
						|
		flow.itemR(game, "physics_type")
 | 
						|
		flow.itemR(game, "actor")
 | 
						|
		
 | 
						|
		row = layout.row()
 | 
						|
		row.itemR(game, "ghost")
 | 
						|
		row.itemR(ob, "restrict_render", text="Invisible") # out of place but useful
 | 
						|
		
 | 
						|
		flow = layout.column_flow()
 | 
						|
		flow.itemR(game, "mass")
 | 
						|
		flow.itemR(game, "radius")
 | 
						|
		flow.itemR(game, "no_sleeping")
 | 
						|
		flow.itemR(game, "damping")
 | 
						|
		flow.itemR(game, "rotation_damping")
 | 
						|
		flow.itemR(game, "minimum_velocity")
 | 
						|
		flow.itemR(game, "maximum_velocity")
 | 
						|
		
 | 
						|
		row = layout.row()
 | 
						|
		row.itemR(game, "do_fh")
 | 
						|
		row.itemR(game, "rotation_fh")
 | 
						|
		
 | 
						|
		flow = layout.column_flow()
 | 
						|
		flow.itemR(game, "form_factor")
 | 
						|
		flow.itemR(game, "anisotropic_friction")
 | 
						|
		
 | 
						|
		flow = layout.column_flow()
 | 
						|
		flow.active = game.anisotropic_friction
 | 
						|
		flow.itemR(game, "friction_coefficients")
 | 
						|
		
 | 
						|
		split = layout.split()
 | 
						|
		sub = split.column()
 | 
						|
		sub.itemR(game, "lock_x_axis")
 | 
						|
		sub.itemR(game, "lock_y_axis")
 | 
						|
		sub.itemR(game, "lock_z_axis")
 | 
						|
		sub = split.column()
 | 
						|
		sub.itemR(game, "lock_x_rot_axis")
 | 
						|
		sub.itemR(game, "lock_y_rot_axis")
 | 
						|
		sub.itemR(game, "lock_z_rot_axis")
 | 
						|
 | 
						|
 | 
						|
class LOGIC_PT_collision_bounds(bpy.types.Panel):
 | 
						|
	__space_type__ = "LOGIC_EDITOR"
 | 
						|
	__region_type__ = "UI"
 | 
						|
	__label__ = "Collision Bounds"
 | 
						|
 | 
						|
	def poll(self, context):
 | 
						|
		ob = context.active_object
 | 
						|
		return ob and ob.game
 | 
						|
	
 | 
						|
	def draw_header(self, context):
 | 
						|
		layout = self.layout
 | 
						|
		ob = context.active_object
 | 
						|
		game = ob.game
 | 
						|
 | 
						|
		layout.itemR(game, "use_collision_bounds", text="")
 | 
						|
	
 | 
						|
	def draw(self, context):
 | 
						|
		layout = self.layout
 | 
						|
		
 | 
						|
		ob = context.scene.objects[0]
 | 
						|
		game = ob.game
 | 
						|
		
 | 
						|
		flow = layout.column_flow()
 | 
						|
		flow.active = game.use_collision_bounds
 | 
						|
		flow.itemR(game, "collision_bounds")
 | 
						|
		flow.itemR(game, "collision_compound")
 | 
						|
		flow.itemR(game, "collision_margin")
 | 
						|
 | 
						|
bpy.types.register(LOGIC_PT_physics)
 | 
						|
bpy.types.register(LOGIC_PT_collision_bounds)
 |