seeding-planets/entities/scripts/inspectable_entity.gd
Zacharie Guet f1ef41323a équilibrages, fix et évolutions
* résolution du bug de disparition des items #94
* améliorations définitives dans le camion via compost #88
* ajout de plus d'aléatoire dans le zone de départ
* suppression des récompenses de quota (pour l'instant)
* équilibrage du gain en graine
* ajout de la clarté dans les actions
2025-10-17 17:53:38 +02:00

46 lines
1.2 KiB
GDScript

extends Area2D
class_name InspectableEntity
const MODULATE_INSPECTED_COLOR = Color.GRAY
const MODULATE_AFFECTED_COLOR = Color.RED
var terrain : Terrain
var planet : Planet :
get(): return terrain if terrain is Planet else null
@export var default_info_title = ""
@export var default_info_desc = ""
@onready var default_modulate : Color = modulate
@onready var inspectable_signals_setuped : bool = setup_inspectable_signals()
func inspect(is_inspected : bool = true):
modulate = MODULATE_INSPECTED_COLOR if is_inspected else default_modulate
func affect_preview(is_affected : bool = true):
modulate = MODULATE_AFFECTED_COLOR if is_affected else default_modulate
func setup_inspectable_signals() -> bool:
mouse_entered.connect(_on_mouse_entered)
mouse_exited.connect(_on_mouse_excited)
return true
func _on_mouse_entered():
Pointer.inspect(self, inspector_info())
func _on_mouse_excited():
Pointer.stop_inspect(self)
func pointer_text() -> String:
return default_info_title
func inspector_info() -> Inspector.Info:
return Inspector.Info.new(
pointer_text(),
default_info_desc
)
func _notification(what):
if (what == NOTIFICATION_PREDELETE):
Pointer.stop_inspect(self)