Advertisement
Guest User

Untitled

a guest
Aug 6th, 2020
2,186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.71 KB | None | 0 0
  1. import bpy
  2.  
  3.  
  4. class ADDONNAME_PT_main_panel(bpy.types.Panel):
  5.    
  6.     bl_label = "Add Shader Panel"
  7.     bl_idname = "ADDONNAME_PT_main_panel"
  8.     bl_space_type = 'VIEW_3D'
  9.     bl_region_type = 'UI'
  10.     bl_category = 'New Tab'
  11.  
  12.     def draw(self, context):
  13.         layout = self.layout
  14.         layout.operator("addonname.addbasic_operator")
  15.  
  16.  
  17.  
  18. class ADDONNAME_OT_add_basic(bpy.types.Operator):
  19.     bl_label = "Add Basic Shader"
  20.     bl_idname = "addonname.addbasic_operator"
  21.    
  22.    
  23.     col = bpy.props.FloatVectorProperty(name= "Color", subtype= 'COLOR_GAMMA' , size=4, default= (0,1,0,1))
  24.    
  25.    
  26.     def execute(self, context):
  27.        
  28.        
  29.         material_basic = bpy.data.materials.new(name= "Basic")
  30.         material_basic.use_nodes = True
  31.        
  32.         principled_node = material_basic.node_tree.nodes.get('Principled BSDF')
  33.         principled_node.inputs[7].default_value = 0.08
  34.        
  35.         rgb_node = material_basic.node_tree.nodes.new('ShaderNodeRGB')
  36.         rgb_node.location = (-250, 0)
  37.         rgb_node.outputs[0].default_value = self.col
  38.        
  39.        
  40.         link = material_basic.node_tree.links.new
  41.         link(rgb_node.outputs[0], principled_node.inputs[0])
  42.        
  43.         bpy.context.object.active_material = material_basic
  44.    
  45.         return {'FINISHED'}
  46.    
  47.     def invoke(self, context, event):
  48.         return context.window_manager.invoke_props_dialog(self)
  49.  
  50.  
  51.  
  52.  
  53. classes = [ADDONNAME_PT_main_panel, ADDONNAME_OT_add_basic]
  54.  
  55.  
  56.  
  57. def register():
  58.     for cls in classes:
  59.         bpy.utils.register_class(cls)
  60.  
  61. def unregister():
  62.     for cls in classes:
  63.         bpy.utils.unregister_class(cls)
  64.  
  65.  
  66.  
  67. if __name__ == "__main__":
  68.     register()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement