﻿using Bolt;
using Ludiq;
using UnityEngine;

namespace InfinityCode.OnlineMapsBolt
{
    [UnitTitle("Subscribe To Cache Events")]
    [UnitSubtitle("(arg - tile)")]
    public class SubscribeToCacheEvents : OnlineMapsBoltEventBase
    {
        [DoNotSerialize]
        [PortLabel("Loaded From Cache")]
        public ValueInput OnLoadedFromCache;

        [DoNotSerialize]
        [PortLabel("Loaded From File Cache")]
        public ValueInput OnLoadedFromFileCache;

        protected override void OnDefinition()
        {
            OnLoadedFromCache = ValueInput("OnLoadedFromCache", string.Empty);
            OnLoadedFromFileCache = ValueInput("OnLoadedFromFileCache", string.Empty);
        }

        protected override void OnEnter(Flow flow)
        {
            OnlineMapsCache cache = OnlineMapsCache.instance;
            if (cache == null)
            {
                Debug.Log("Cache is null");
                return;
            }

            SubscribeToEvent(flow, ref cache.OnLoadedFromCache, OnLoadedFromCache);
            SubscribeToEvent(flow, ref cache.OnLoadedFromFileCache, OnLoadedFromFileCache);
        }
    }
}