38 lines
913 B
GDScript
38 lines
913 B
GDScript
extends Area3D
|
|
class_name InsectTile
|
|
|
|
|
|
@export var coordinates: Vector2i
|
|
@export var is_black: bool = false
|
|
@export var resource: TileResource
|
|
|
|
@onready var hexagon_small = $HexagonSmall
|
|
|
|
var hovered: bool = false
|
|
|
|
var hover_shader: ShaderMaterial = preload("res://InsectTiles/HoverShader.tres")
|
|
|
|
var mat: StandardMaterial3D
|
|
|
|
func _ready() -> void:
|
|
if is_black:
|
|
hexagon_small.set_surface_override_material(0, resource.material_black.duplicate())
|
|
else:
|
|
hexagon_small.set_surface_override_material(0, resource.material_white.duplicate())
|
|
|
|
mat = hexagon_small.get_surface_override_material(0)
|
|
|
|
func _process(delta):
|
|
if Input.is_action_just_pressed("place_tile"):
|
|
if hovered:
|
|
GameEvents.insect_tile_selected.emit(self)
|
|
|
|
func _on_mouse_entered():
|
|
if GameData.is_player_black == is_black:
|
|
mat.next_pass = hover_shader
|
|
hovered = true
|
|
|
|
func _on_mouse_exited():
|
|
hovered = false
|
|
mat.next_pass = null
|
|
|