mirror of
https://github.com/Relintai/material-maker.git
synced 2024-11-13 06:27:18 +01:00
Compatibility fixes for Godot 3.1.2, updated switch to support more choices, and shader nodes to support inputs in enum values
This commit is contained in:
parent
a95f1045d8
commit
8282ab24fe
@ -165,8 +165,6 @@ func subst(string, context, uv = "") -> Dictionary:
|
|||||||
var tmp_string = replace_variable(string, "seed", str(get_seed()))
|
var tmp_string = replace_variable(string, "seed", str(get_seed()))
|
||||||
if tmp_string != string:
|
if tmp_string != string:
|
||||||
string = tmp_string
|
string = tmp_string
|
||||||
if uv != "":
|
|
||||||
string = replace_variable(string, "uv", "("+uv+")")
|
|
||||||
if shader_model.has("parameters") and typeof(shader_model.parameters) == TYPE_ARRAY:
|
if shader_model.has("parameters") and typeof(shader_model.parameters) == TYPE_ARRAY:
|
||||||
for p in shader_model.parameters:
|
for p in shader_model.parameters:
|
||||||
if !p.has("name") or !p.has("type"):
|
if !p.has("name") or !p.has("type"):
|
||||||
@ -191,6 +189,8 @@ func subst(string, context, uv = "") -> Dictionary:
|
|||||||
print("Cannot replace parameter of type "+p.type)
|
print("Cannot replace parameter of type "+p.type)
|
||||||
if value_string != null:
|
if value_string != null:
|
||||||
string = replace_variable(string, p.name, value_string)
|
string = replace_variable(string, p.name, value_string)
|
||||||
|
if uv != "":
|
||||||
|
string = replace_variable(string, "uv", "("+uv+")")
|
||||||
if shader_model.has("inputs") and typeof(shader_model.inputs) == TYPE_ARRAY:
|
if shader_model.has("inputs") and typeof(shader_model.inputs) == TYPE_ARRAY:
|
||||||
var cont = true
|
var cont = true
|
||||||
while cont:
|
while cont:
|
||||||
|
@ -27,7 +27,7 @@ func update_node() -> void:
|
|||||||
var lines_list = []
|
var lines_list = []
|
||||||
if generator.editable:
|
if generator.editable:
|
||||||
lines_list.push_back( { name="outputs", tooltip="Outputs count", min=1, max=5 } )
|
lines_list.push_back( { name="outputs", tooltip="Outputs count", min=1, max=5 } )
|
||||||
lines_list.push_back( { name="choices", tooltip="Choices count", min=2, max=5 } )
|
lines_list.push_back( { name="choices", tooltip="Choices count", min=2, max=10 } )
|
||||||
lines_list.push_back( { name="source", tooltip="Current choice", min=0, max=generator.parameters.choices-1 } )
|
lines_list.push_back( { name="source", tooltip="Current choice", min=0, max=generator.parameters.choices-1 } )
|
||||||
for l in lines_list:
|
for l in lines_list:
|
||||||
var sizer = HBoxContainer.new()
|
var sizer = HBoxContainer.new()
|
||||||
|
@ -41,7 +41,7 @@ func find_control(gp) -> Dictionary:
|
|||||||
if c.get("controls") != null:
|
if c.get("controls") != null:
|
||||||
for w in c.controls:
|
for w in c.controls:
|
||||||
var widget = c.controls[w]
|
var widget = c.controls[w]
|
||||||
if Rect2(widget.rect_global_position, widget.rect_size*widget.get_global_transform().get_scale()).has_point(gp):
|
if widget != null and Rect2(widget.rect_global_position, widget.rect_size*widget.get_global_transform().get_scale()).has_point(gp):
|
||||||
return { node=c, widget=widget }
|
return { node=c, widget=widget }
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ func _input(event: InputEvent) -> void:
|
|||||||
elif event is InputEventMouseMotion:
|
elif event is InputEventMouseMotion:
|
||||||
var control = find_control(event.global_position)
|
var control = find_control(event.global_position)
|
||||||
end = get_global_transform().xform_inv(event.global_position)
|
end = get_global_transform().xform_inv(event.global_position)
|
||||||
target = control.widget if !control.empty() and generator.can_link_parameter(param_name, control.node.generator, control.widget.name) else null
|
target = control.widget if control != null and !control.empty() and generator.can_link_parameter(param_name, control.node.generator, control.widget.name) else null
|
||||||
update()
|
update()
|
||||||
elif event is InputEventMouseButton:
|
elif event is InputEventMouseButton:
|
||||||
if event.pressed:
|
if event.pressed:
|
||||||
|
@ -4,11 +4,11 @@ extends HBoxContainer
|
|||||||
var enum_values = [ {name="Foo", value="foo"} ]
|
var enum_values = [ {name="Foo", value="foo"} ]
|
||||||
var enum_current = 0
|
var enum_current = 0
|
||||||
|
|
||||||
const ENUM_ADD = -1
|
const ENUM_ADD = 10000
|
||||||
const ENUM_EDIT = -2
|
const ENUM_EDIT = 10001
|
||||||
const ENUM_REMOVE = -3
|
const ENUM_REMOVE = 10002
|
||||||
const ENUM_UP = -4
|
const ENUM_UP = 10003
|
||||||
const ENUM_DOWN = -5
|
const ENUM_DOWN = 10004
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
update_enum_list()
|
update_enum_list()
|
||||||
|
Loading…
Reference in New Issue
Block a user