Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / image / AffiliationSpriteRoot.cs
@小李xl 小李xl on 3 Nov 2023 793 bytes 优化可互动物体

using System.Collections.Generic;
using Godot;

public partial class AffiliationSpriteRoot : Node2D, IDestroy
{
    public bool IsDestroyed { get; private set; }

    private HashSet<FreezeSprite> _freezeSprites = new HashSet<FreezeSprite>();
    
    public void Destroy()
    {
        if (IsDestroyed)
        {
            return;
        }

        IsDestroyed = true;

        foreach (var freezeSprite in _freezeSprites)
        {
            freezeSprite.Destroy();
        }
        _freezeSprites.Clear();
        QueueFree();
    }

    public bool AddFreezeSprite(FreezeSprite freezeSprite)
    {
        return _freezeSprites.Add(freezeSprite);
    }

    public bool RemoveFreezeSprite(FreezeSprite freezeSprite)
    {
        return _freezeSprites.Remove(freezeSprite);
    }
}