extends Node3D class_name Entity ## Base entity class for everything interactive. ## ## Should be the parent of every units, buildings, ## npc, loot, and everything that the player can interact with in 3D func _ready() -> void: add_to_group('selectable') ## Check if the entity is contained in the [Rect2] [param selection_box] of the player. ## Need the [Camera3D] of the player to work func is_in_selection(selection_box:Rect2,player_cam:Camera3D): var p = player_cam.unproject_position(global_position) if min(selection_box.size.x,selection_box.size.y) <0: breakpoint return selection_box.has_point(p) func select(): add_to_group('selected-by-'+str(get_tree().get_multiplayer().get_unique_id())) print(self.name," selected") func deselect(): remove_from_group('selected-by-'+str(get_tree().get_multiplayer().get_unique_id())) print(self.name," unselected")