ajout des mutation et refonte de l'inspecteur

* ajout des mutations #86
* changement de l'objectif #85
* refonte de l'inspecteur #71
* changement léger de la plantation
* les plantes ne donnent que des graines de leurs espèces
* refonte partielle du code, refacto
This commit is contained in:
2025-10-12 01:03:08 +02:00
parent bb24efe46b
commit ef392595de
108 changed files with 1921 additions and 477 deletions

View File

@@ -10,6 +10,7 @@ const SPRITE_SCENE : PackedScene = preload("res://entities/interactables/item_ob
item = _item
if object_sprite:
object_sprite.apply_texture_to_sprite(item.icon, ITEM_SPRITE_SIZE)
object_sprite.generate_particles(item.get_particles())
@onready var object_sprite : ItemObjectSprite = generate_sprite()
@@ -21,6 +22,7 @@ func _ready():
generate_collision(ITEM_AREA_WIDTH)
if item and object_sprite:
object_sprite.apply_texture_to_sprite(item.icon, ITEM_SPRITE_SIZE)
object_sprite.generate_particles(item.get_particles())
func pointer_text():
var name_suffix = ""
@@ -36,11 +38,7 @@ func interact_text():
return "Take"
func inspector_info() -> Inspector.Info:
return Inspector.Info.new(
pointer_text(),
item.description,
item.icon
)
return item.inspector_info()
func interact(player : Player) -> bool:
var swapped_item = player.pick_item(item)
@@ -61,16 +59,17 @@ func pickup_animation(player : Player):
func():
queue_free()
)
object_sprite.pickup_animation()
if object_sprite:
object_sprite.pickup_animation()
func generate_sprite() -> ItemObjectSprite:
var spriteNode = SPRITE_SCENE.instantiate() as ItemObjectSprite
add_child(spriteNode)
var sprite_node = SPRITE_SCENE.instantiate() as ItemObjectSprite
add_child(sprite_node)
if item:
spriteNode.apply_texture_to_sprite(
sprite_node.apply_texture_to_sprite(
item.icon,
ITEM_SPRITE_SIZE
)
return spriteNode
return sprite_node

View File

@@ -1,15 +1,26 @@
extends Node2D
class_name ItemObjectSprite
@onready var iconSprite = $Icon
@onready var icon_sprite = $Icon
const PARTICLES_SCENE : PackedScene = preload("res://common/vfx/particles/particles.tscn")
func apply_texture_to_sprite(texture, item_sprite_size = 50.):
if texture:
iconSprite.texture = texture
iconSprite.scale = Vector2(
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[Particles.Parameters]):
for c in get_children():
if c is Particles: queue_free()
for params in particles_params:
var particles_emitter : Particles = PARTICLES_SCENE.instantiate() as Particles
particles_emitter.setup_particles(params)
add_child(particles_emitter)
func pickup_animation():
%AnimationPlayer.play("pickup")