Picked observer, global observer
This commit is contained in:
@@ -4,6 +4,8 @@ var item_count_manager: ESCItemCountManager
|
||||
|
||||
var tooltip_manager: ESCTootltipManager
|
||||
|
||||
var global_observer: RTMIGlobalObserver
|
||||
|
||||
var cursor_manager: RTMICursorManager = RTMICursorManager.new()
|
||||
|
||||
var csv_parser: RTMICsvParser = RTMICsvParser.new()
|
||||
|
||||
@@ -42,7 +42,6 @@ func register_components():
|
||||
|
||||
func autoload_components():
|
||||
add_child(ESCItemComponentOutline.new())
|
||||
add_child(ESCItemComponentInventoryChecker.new())
|
||||
|
||||
|
||||
func set_custom_data(data: Dictionary) -> void:
|
||||
|
||||
@@ -86,8 +86,9 @@ var last_target: Object
|
||||
@export var dev_tools_node: Control
|
||||
|
||||
func _init():
|
||||
gymkhana.tooltip_manager = ESCTootltipManager.new()
|
||||
gymkhana.item_count_manager = ESCItemCountManager.new()
|
||||
gymkhana.tooltip_manager = ESCTootltipManager.new()
|
||||
gymkhana.global_observer = RTMIGlobalObserver.new()
|
||||
escoria.di = RTMIDependencyInjector.new()
|
||||
|
||||
func _ready():
|
||||
|
||||
@@ -37,4 +37,4 @@ func _process(delta: float) -> void:
|
||||
get_parent().visible = output_value
|
||||
|
||||
elif targeted_property == TargetProperty.interactive:
|
||||
escoria.object_manager.get_object(get_global_id()).active = output_value
|
||||
escoria.object_manager.get_object(get_global_id()).interactive = output_value
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
extends ESCItemComponent
|
||||
class_name ESCItemComponentPickedObserver
|
||||
|
||||
|
||||
|
||||
func get_component_type():
|
||||
return "picked-observer"
|
||||
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if "globals_manager" not in escoria:
|
||||
return
|
||||
|
||||
var object = escoria.object_manager.get_object(get_global_id())
|
||||
if object == null:
|
||||
return
|
||||
|
||||
var is_picked = escoria.globals_manager.get_global(get_global_id() + RTMIGlobalObserver.PICKED_SUFFIX )
|
||||
if is_picked == null or !is_picked:
|
||||
return
|
||||
|
||||
escoria.object_manager.get_object(get_global_id()).active = false
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://cde2xhhd2twx4
|
||||
@@ -0,0 +1,21 @@
|
||||
extends Resource
|
||||
class_name RTMIGlobalObserver
|
||||
|
||||
const PICKED_SUFFIX = "_picked"
|
||||
|
||||
func _init() -> void:
|
||||
escoria.globals_manager.global_changed.connect(_on_escoria_global_changed)
|
||||
|
||||
|
||||
func _on_escoria_global_changed(global: String, old_value, new_value) -> void:
|
||||
if !global.begins_with("i/"):
|
||||
return
|
||||
|
||||
var item = global.rsplit("i/", false)
|
||||
|
||||
if item.size() != 1:
|
||||
return
|
||||
if !new_value:
|
||||
return
|
||||
|
||||
escoria.globals_manager.set_global("%s%s" % [item.get(0),PICKED_SUFFIX], true)
|
||||
@@ -0,0 +1 @@
|
||||
uid://codbrh1h68q0c
|
||||
Reference in New Issue
Block a user