Files
seeding-planets/entities/interactables/item_object/script/item_object_sprite.gd

35 lines
1.2 KiB
GDScript

extends Node2D
class_name ItemObjectSprite
const HAS_BEEN_INSPECTED_SPRITE_OPACITY = 0.3
@onready var icon_sprite = $Icon
@onready var tractor_beam: CPUParticles2D = $TractorBeam
const PARTICLES_SCENE : PackedScene = preload("res://common/vfx/particles/effect_particles.tscn")
func apply_texture_to_sprite(texture, item_sprite_size = 50.):
if texture:
icon_sprite.texture = texture
icon_sprite.scale = Vector2(
1./(texture.get_width()/item_sprite_size),
1./(texture.get_height()/item_sprite_size)
)
func generate_particles(particles_params : Array[EffectParticles.Parameters]):
for c in get_children():
if c is EffectParticles: queue_free()
for params in particles_params:
var particles_emitter : EffectParticles = PARTICLES_SCENE.instantiate() as EffectParticles
particles_emitter.setup_particles(params)
add_child(particles_emitter)
func set_has_been_inspected_sprite(has_been_inspected : bool, color := Color.WHITE):
color.a = HAS_BEEN_INSPECTED_SPRITE_OPACITY
%HasBeenInspectedSprite.visible = not has_been_inspected
%HasBeenInspectedSprite.modulate = color
func pickup_animation():
%AnimationPlayer.play("pickup")