Skip to content
Snippets Groups Projects
Commit ace4cefc authored by Florent Berthaut's avatar Florent Berthaut
Browse files

Added properties for ivmi-properties, including immediate sending mode

parent d8fcce66
No related branches found
No related tags found
No related merge requests found
...@@ -54,6 +54,7 @@ func _allow_send_data(value : bool): ...@@ -54,6 +54,7 @@ func _allow_send_data(value : bool):
func _add_property(prop, values) : func _add_property(prop, values) :
_properties[prop] = load("res://addons/ivmi-builder/core/IvmiProperty.gd").new() _properties[prop] = load("res://addons/ivmi-builder/core/IvmiProperty.gd").new()
_properties[prop].set_values(values) _properties[prop].set_values(values)
_properties[prop].set_name(prop)
var tags = "" var tags = ""
for v in values : for v in values :
if v is float : if v is float :
...@@ -63,6 +64,7 @@ func _add_property(prop, values) : ...@@ -63,6 +64,7 @@ func _add_property(prop, values) :
elif v is String : elif v is String :
tags+="s" tags+="s"
_properties[prop].set_tags(tags) _properties[prop].set_tags(tags)
_properties[prop].set_ivmi_node(self)
func parse(prop, args) : func parse(prop, args) :
if _properties.has(prop) : if _properties.has(prop) :
...@@ -153,7 +155,11 @@ func _process(delta): ...@@ -153,7 +155,11 @@ func _process(delta):
for k in _properties.keys(): for k in _properties.keys():
if _properties[k]._changed : if _properties[k]._changed :
if _properties[k]._listen : if _properties[k]._listen :
_ivmi.send(name+"/"+k, _properties[k]._tags, get_property(k)) send_prop(k)
if _ivmi.is_recording(): if _ivmi.is_recording():
_ivmi.record_property(name+"/"+k, _properties[k]._tags, get_property(k)) _ivmi.record_property(name+"/"+k, _properties[k]._tags, get_property(k))
_properties[k]._changed=false _properties[k]._changed=false
func send_prop(prop) :
_ivmi.send(name+"/"+prop, _properties[prop]._tags, get_property(prop))
...@@ -8,6 +8,8 @@ var _type = "" ...@@ -8,6 +8,8 @@ var _type = ""
var _changed = false var _changed = false
var _listen = false var _listen = false
var _tags = "" var _tags = ""
var _immediate = false
var _ivmi_node = null
func _ready(): func _ready():
pass pass
...@@ -18,9 +20,25 @@ func set_values(vals) : ...@@ -18,9 +20,25 @@ func set_values(vals) :
_changed=true _changed=true
_values = vals _values = vals
if _immediate and _listen :
_changed = false
_ivmi_node.send_prop(_name)
func set_tags(t): func set_tags(t):
_tags=t _tags=t
func set_name(n):
_name=n
func set_listen(l) :
_listen=l
func set_immediate(i) :
_immediate=i
func set_ivmi_node(n) :
_ivmi_node=n
func duplicate(flags: int = 15): func duplicate(flags: int = 15):
var new_IvmiProperty = get_script().new() var new_IvmiProperty = get_script().new()
...@@ -30,5 +48,6 @@ func duplicate(flags: int = 15): ...@@ -30,5 +48,6 @@ func duplicate(flags: int = 15):
new_IvmiProperty._changed = _changed new_IvmiProperty._changed = _changed
new_IvmiProperty._listen = _listen new_IvmiProperty._listen = _listen
new_IvmiProperty._type = _type new_IvmiProperty._type = _type
new_IvmiProperty._immediate = _immediate
return new_IvmiProperty return new_IvmiProperty
...@@ -336,7 +336,8 @@ func _process(delta) : ...@@ -336,7 +336,8 @@ func _process(delta) :
func _parse_message(msg) : func _parse_message(msg) :
#print("received ", msg["address"], " ", msg["args"]) if _debug :
print("received ", msg["address"], " ", msg["args"])
var split = msg["address"].split("/") var split = msg["address"].split("/")
if split[1] == "ivmi" && split.size()>2 : if split[1] == "ivmi" && split.size()>2 :
if split[2] == "scene" : if split[2] == "scene" :
......
...@@ -75,7 +75,7 @@ func _update_slices() : ...@@ -75,7 +75,7 @@ func _update_slices() :
func _physics_process(delta): func _physics_process(delta):
if !Engine.editor_hint and _ivmi._pd_mode!=IvmiScene.PdMode.NONE: if !Engine.editor_hint and _ivmi._pd_mode!=IvmiScene.PdMode.NONE:
var results = _area.get_overlapping_bodies() var results = _area.get_overlapping_areas()
if results.size()>0: if results.size()>0:
for r in results : for r in results :
var col = r.get_parent() var col = r.get_parent()
......
...@@ -99,6 +99,8 @@ func _select_update(delta): ...@@ -99,6 +99,8 @@ func _select_update(delta):
if result and result.get_parent().is_in_group("ivmi_nodes") \ if result and result.get_parent().is_in_group("ivmi_nodes") \
and result.get_parent()._can_be_selected: and result.get_parent()._can_be_selected:
#print(result.get_parent().name)
var obj = result.get_parent() var obj = result.get_parent()
var _selection_changed = false var _selection_changed = false
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment