public void ReplaceFlagEntityEventListener(IFlagEntityEventListener newValue)
    {
        var index     = TestComponentsLookup.FlagEntityEventListener;
        var component = CreateComponent <FlagEntityEventListenerComponent>(index);

        component.value = newValue;
        ReplaceComponent(index, component);
    }
    public void AddFlagEntityEventListener(IFlagEntityEventListener value)
    {
        var listeners = hasFlagEntityEventListener
            ? flagEntityEventListener.value
            : new System.Collections.Generic.List <IFlagEntityEventListener>();

        listeners.Add(value);
        ReplaceFlagEntityEventListener(listeners);
    }
    public void RemoveFlagEntityEventListener(IFlagEntityEventListener value)
    {
        var listeners = flagEntityEventListener.value;

        listeners.Remove(value);
        if (listeners.Count == 0)
        {
            RemoveFlagEntityEventListener();
        }
        else
        {
            ReplaceFlagEntityEventListener(listeners);
        }
    }