diff --git a/objects/collectibles/star.gd b/objects/collectibles/star.gd index fae9f71..cc71edb 100644 --- a/objects/collectibles/star.gd +++ b/objects/collectibles/star.gd @@ -1,6 +1,17 @@ +tool extends Node2D -export(int, "Red", "Yellow","Green","Blue","Magenta") var color +enum StarColor {RED, YELLOW, GREEN, BLUE, MAGENTA} + +const COLORS = { + StarColor.RED: preload("res://graphics/collectibles/pal_star_red.png"), + StarColor.YELLOW: preload("res://graphics/collectibles/pal_star_yellow.png"), + StarColor.GREEN: preload("res://graphics/collectibles/pal_star_green.png"), + StarColor.BLUE: preload("res://graphics/collectibles/pal_star_blue.png"), + StarColor.MAGENTA: preload("res://graphics/collectibles/pal_star_magenta.png") +} + +export(StarColor) var color setget _set_color export var value = 1 onready var sprite = $AnimatedSprite @@ -8,18 +19,13 @@ func _ready(): #Sync all coinframes sprite.play() #Change color - match color: - 0: - sprite.material.set_shader_param("palette",load("res://graphics/collectibles/pal_star_red.png")) - 1: - sprite.material.set_shader_param("palette",load("res://graphics/collectibles/pal_star_yellow.png")) - 2: - sprite.material.set_shader_param("palette",load("res://graphics/collectibles/pal_star_green.png")) - 3: - sprite.material.set_shader_param("palette",load("res://graphics/collectibles/pal_star_blue.png")) - 4: - sprite.material.set_shader_param("palette",load("res://graphics/collectibles/pal_star_magenta.png")) - + _set_color(color) + +func _set_color(value): + color = value + if is_inside_tree(): + sprite.material.set_shader_param("palette", COLORS[color]) + func _on_Area2D_area_entered(area): #Collect if area.is_in_group("player"):