mirror of
https://github.com/DigvijaysinhGohil/Godot-Shader-Lib.git
synced 2025-09-20 04:15:58 +08:00
Code refactored to incorporate #6
This commit is contained in:
68
addons/ShaderLib_v2_2_4/Procedural/Shapes/Ellipse.gd
Normal file
68
addons/ShaderLib_v2_2_4/Procedural/Shapes/Ellipse.gd
Normal file
@ -0,0 +1,68 @@
|
||||
@tool
|
||||
class_name VisualShaderNodeProceduralEllipse extends ShaderLib
|
||||
|
||||
func _init() -> void:
|
||||
output_port_for_preview = 0
|
||||
|
||||
func _get_name() -> String:
|
||||
return "Ellipse"
|
||||
|
||||
func _get_category() -> String:
|
||||
return "Procedural/Shapes"
|
||||
|
||||
func _get_description() -> String:
|
||||
return "Generates an ellipse shape based on input UV at the size specified by inputs width and height."
|
||||
|
||||
func _get_return_icon_type() -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_count() -> int:
|
||||
return 3
|
||||
|
||||
func _get_input_port_name(port: int) -> String:
|
||||
match port:
|
||||
0:
|
||||
return "uv"
|
||||
1:
|
||||
return "width"
|
||||
2:
|
||||
return "height"
|
||||
return ""
|
||||
|
||||
func _get_input_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
match port:
|
||||
0:
|
||||
return PORT_TYPE_VECTOR_2D
|
||||
1, 2:
|
||||
return PORT_TYPE_SCALAR
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_default_value(port: int) -> Variant:
|
||||
match port:
|
||||
1, 2:
|
||||
return 0.5
|
||||
_:
|
||||
return null
|
||||
|
||||
func _get_output_port_count() -> int:
|
||||
return 1
|
||||
|
||||
func _get_output_port_name(port: int) -> String:
|
||||
return "output"
|
||||
|
||||
func _get_output_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_global_code(mode: Shader.Mode) -> String:
|
||||
return "#include \"res://addons/ShaderLib_%s/Procedural/Procedural.gdshaderinc\"" % [version]
|
||||
|
||||
func _get_code(input_vars: Array[String], output_vars: Array[String], mode: Shader.Mode, type: VisualShader.Type) -> String:
|
||||
var uv: String = "UV"
|
||||
|
||||
if input_vars[0]:
|
||||
uv = input_vars[0]
|
||||
|
||||
var width: String = input_vars[1]
|
||||
var height: String = input_vars[2]
|
||||
|
||||
return output_vars[0] + " = ellipse_shape(%s, %s, %s);" % [uv, width, height]
|
75
addons/ShaderLib_v2_2_4/Procedural/Shapes/Polygon.gd
Normal file
75
addons/ShaderLib_v2_2_4/Procedural/Shapes/Polygon.gd
Normal file
@ -0,0 +1,75 @@
|
||||
@tool
|
||||
class_name VisualShaderNodeProceduralPolygon extends ShaderLib
|
||||
|
||||
func _init() -> void:
|
||||
output_port_for_preview = 0
|
||||
|
||||
func _get_name() -> String:
|
||||
return "Polygon"
|
||||
|
||||
func _get_category() -> String:
|
||||
return "Procedural/Shapes"
|
||||
|
||||
func _get_description() -> String:
|
||||
return "Generates a regular polygon shape based on input UV at the size specified by inputs width and height. The polygon's amount of sides is determined by input sides."
|
||||
|
||||
func _get_return_icon_type() -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_count() -> int:
|
||||
return 4
|
||||
|
||||
func _get_input_port_name(port: int) -> String:
|
||||
match port:
|
||||
0:
|
||||
return "uv"
|
||||
1:
|
||||
return "sides"
|
||||
2:
|
||||
return "width"
|
||||
3:
|
||||
return "height"
|
||||
return ""
|
||||
|
||||
func _get_input_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
match port:
|
||||
0:
|
||||
return PORT_TYPE_VECTOR_2D
|
||||
1:
|
||||
return PORT_TYPE_SCALAR_INT
|
||||
2, 3:
|
||||
return PORT_TYPE_SCALAR
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_default_value(port: int) -> Variant:
|
||||
match port:
|
||||
1:
|
||||
return 3
|
||||
2, 3:
|
||||
return 0.5
|
||||
_:
|
||||
return null
|
||||
|
||||
func _get_output_port_count() -> int:
|
||||
return 1
|
||||
|
||||
func _get_output_port_name(port: int) -> String:
|
||||
return "output"
|
||||
|
||||
func _get_output_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_global_code(mode: Shader.Mode) -> String:
|
||||
return "#include \"res://addons/ShaderLib_%s/Procedural/Procedural.gdshaderinc\"" % [version]
|
||||
|
||||
func _get_code(input_vars: Array[String], output_vars: Array[String], mode: Shader.Mode, type: VisualShader.Type) -> String:
|
||||
var uv: String = "UV"
|
||||
|
||||
if input_vars[0]:
|
||||
uv = input_vars[0]
|
||||
|
||||
var sides: String = input_vars[1]
|
||||
var width: String = input_vars[2]
|
||||
var height: String = input_vars[3]
|
||||
|
||||
return output_vars[0] + " = polygon_shape(%s, %s, %s, %s);" % [uv, sides, width, height]
|
68
addons/ShaderLib_v2_2_4/Procedural/Shapes/Rectangle.gd
Normal file
68
addons/ShaderLib_v2_2_4/Procedural/Shapes/Rectangle.gd
Normal file
@ -0,0 +1,68 @@
|
||||
@tool
|
||||
class_name VisualShaderNodeProceduralRectangle extends ShaderLib
|
||||
|
||||
func _init() -> void:
|
||||
output_port_for_preview = 0
|
||||
|
||||
func _get_name() -> String:
|
||||
return "Rectangle"
|
||||
|
||||
func _get_category() -> String:
|
||||
return "Procedural/Shapes"
|
||||
|
||||
func _get_description() -> String:
|
||||
return "Generates a rectangle shape based on input UV at the size specified by inputs width and height."
|
||||
|
||||
func _get_return_icon_type() -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_count() -> int:
|
||||
return 3
|
||||
|
||||
func _get_input_port_name(port: int) -> String:
|
||||
match port:
|
||||
0:
|
||||
return "uv"
|
||||
1:
|
||||
return "width"
|
||||
2:
|
||||
return "height"
|
||||
return ""
|
||||
|
||||
func _get_input_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
match port:
|
||||
0:
|
||||
return PORT_TYPE_VECTOR_2D
|
||||
1, 2:
|
||||
return PORT_TYPE_SCALAR
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_default_value(port: int) -> Variant:
|
||||
match port:
|
||||
1, 2:
|
||||
return 0.5
|
||||
_:
|
||||
return null
|
||||
|
||||
func _get_output_port_count() -> int:
|
||||
return 1
|
||||
|
||||
func _get_output_port_name(port: int) -> String:
|
||||
return "output"
|
||||
|
||||
func _get_output_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_global_code(mode: Shader.Mode) -> String:
|
||||
return "#include \"res://addons/ShaderLib_%s/Procedural/Procedural.gdshaderinc\"" % [version]
|
||||
|
||||
func _get_code(input_vars: Array[String], output_vars: Array[String], mode: Shader.Mode, type: VisualShader.Type) -> String:
|
||||
var uv: String = "UV"
|
||||
|
||||
if input_vars[0]:
|
||||
uv = input_vars[0]
|
||||
|
||||
var width: String = input_vars[1]
|
||||
var height: String = input_vars[2]
|
||||
|
||||
return output_vars[0] + " = rectangle_shape(%s, %s, %s);" % [uv, width, height]
|
77
addons/ShaderLib_v2_2_4/Procedural/Shapes/RoundedPolygon.gd
Normal file
77
addons/ShaderLib_v2_2_4/Procedural/Shapes/RoundedPolygon.gd
Normal file
@ -0,0 +1,77 @@
|
||||
@tool
|
||||
class_name VisualShaderNodeProceduralRoundedPolygon extends ShaderLib
|
||||
|
||||
func _init() -> void:
|
||||
output_port_for_preview = 0
|
||||
|
||||
func _get_name() -> String:
|
||||
return "RoundedPolygon"
|
||||
|
||||
func _get_category() -> String:
|
||||
return "Procedural/Shapes"
|
||||
|
||||
func _get_description() -> String:
|
||||
return "Generates a rounded polygon shape based on input UV at the size specified by inputs width and height. The input sides specifies the number of sides, and the input roundness defines the roundness of each corner."
|
||||
|
||||
func _get_return_icon_type() -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_count() -> int:
|
||||
return 5
|
||||
|
||||
func _get_input_port_name(port: int) -> String:
|
||||
match port:
|
||||
0:
|
||||
return "uv"
|
||||
1:
|
||||
return "width"
|
||||
2:
|
||||
return "height"
|
||||
3:
|
||||
return "sides"
|
||||
4:
|
||||
return "roundness"
|
||||
return ""
|
||||
|
||||
func _get_input_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
match port:
|
||||
0:
|
||||
return PORT_TYPE_VECTOR_2D
|
||||
_:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_default_value(port: int) -> Variant:
|
||||
match port:
|
||||
1, 2:
|
||||
return 0.5
|
||||
3:
|
||||
return 3
|
||||
4:
|
||||
return 1.0
|
||||
_:
|
||||
return null
|
||||
|
||||
func _get_output_port_count() -> int:
|
||||
return 1
|
||||
|
||||
func _get_output_port_name(port: int) -> String:
|
||||
return "output"
|
||||
|
||||
func _get_output_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_global_code(mode: Shader.Mode) -> String:
|
||||
return "#include \"res://addons/ShaderLib_%s/Procedural/Procedural.gdshaderinc\"" % [version]
|
||||
|
||||
func _get_code(input_vars: Array[String], output_vars: Array[String], mode: Shader.Mode, type: VisualShader.Type) -> String:
|
||||
var uv: String = "UV"
|
||||
|
||||
if input_vars[0]:
|
||||
uv = input_vars[0]
|
||||
|
||||
var width: String = input_vars[1]
|
||||
var height: String = input_vars[2]
|
||||
var sides: String = input_vars[3]
|
||||
var roundness: String = input_vars[4]
|
||||
|
||||
return output_vars[0] + " = rounded_polygon_shape(%s, %s, %s, float(%s), %s);" % [uv, width, height, sides, roundness]
|
@ -0,0 +1,73 @@
|
||||
@tool
|
||||
class_name VisualShaderNodeProceduralRoundedRectangle extends ShaderLib
|
||||
|
||||
func _init() -> void:
|
||||
output_port_for_preview = 0
|
||||
|
||||
func _get_name() -> String:
|
||||
return "RoundedRectangle"
|
||||
|
||||
func _get_category() -> String:
|
||||
return "Procedural/Shapes"
|
||||
|
||||
func _get_description() -> String:
|
||||
return "Generates a rounded rectangle shape based on input UV at the size specified by inputs width and height. The radius of each corner is defined by input radius."
|
||||
|
||||
func _get_return_icon_type() -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_count() -> int:
|
||||
return 4
|
||||
|
||||
func _get_input_port_name(port: int) -> String:
|
||||
match port:
|
||||
0:
|
||||
return "uv"
|
||||
1:
|
||||
return "width"
|
||||
2:
|
||||
return "height"
|
||||
3:
|
||||
return "radius"
|
||||
return ""
|
||||
|
||||
func _get_input_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
match port:
|
||||
0:
|
||||
return PORT_TYPE_VECTOR_2D
|
||||
1, 2, 3:
|
||||
return PORT_TYPE_SCALAR
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_input_port_default_value(port: int) -> Variant:
|
||||
match port:
|
||||
1, 2:
|
||||
return 0.5
|
||||
3:
|
||||
return 1.0
|
||||
_:
|
||||
return null
|
||||
|
||||
func _get_output_port_count() -> int:
|
||||
return 1
|
||||
|
||||
func _get_output_port_name(port: int) -> String:
|
||||
return "output"
|
||||
|
||||
func _get_output_port_type(port: int) -> VisualShaderNode.PortType:
|
||||
return PORT_TYPE_SCALAR
|
||||
|
||||
func _get_global_code(mode: Shader.Mode) -> String:
|
||||
return "#include \"res://addons/ShaderLib_%s/Procedural/Procedural.gdshaderinc\"" % [version]
|
||||
|
||||
func _get_code(input_vars: Array[String], output_vars: Array[String], mode: Shader.Mode, type: VisualShader.Type) -> String:
|
||||
var uv: String = "UV"
|
||||
|
||||
if input_vars[0]:
|
||||
uv = input_vars[0]
|
||||
|
||||
var width: String = input_vars[1]
|
||||
var height: String = input_vars[2]
|
||||
var radius: String = input_vars[3]
|
||||
|
||||
return output_vars[0] + " = rounded_rectangle_shape(%s, %s, %s, %s);" % [uv, width, height, radius]
|
Reference in New Issue
Block a user