2025-11-12 18:24:47 +08:00
|
|
|
using System;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using JetBrains.Annotations;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class CardOS : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
public static CardOS Instance { get; private set; }
|
|
|
|
|
private CardLockSvc cardLockSvc;
|
|
|
|
|
private CardEventSvc cardEventSvc;
|
|
|
|
|
|
|
|
|
|
private void Awake()
|
|
|
|
|
{
|
|
|
|
|
if (Instance != null && Instance != this)
|
|
|
|
|
{
|
|
|
|
|
Destroy(gameObject);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Instance = this;
|
|
|
|
|
cardLockSvc = new CardLockSvc();
|
|
|
|
|
cardEventSvc = new CardEventSvc();
|
|
|
|
|
DontDestroyOnLoad(gameObject);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// *************** 锁 ****************
|
2025-11-12 18:35:43 +08:00
|
|
|
public bool LOCK_APPLY(CardOSData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_APPLY(lock_name);
|
|
|
|
|
public void LOCK_RELEASE(CardOSData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_RELEASE(lock_name);
|
2025-11-12 18:24:47 +08:00
|
|
|
|
2025-11-12 18:35:43 +08:00
|
|
|
public bool LOCK_GET(CardOSData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_GET(lock_name);
|
2025-11-12 18:24:47 +08:00
|
|
|
|
|
|
|
|
// *************** 事件系统 ****************
|
2025-11-12 18:35:43 +08:00
|
|
|
public void EVENT_REGISTER<T>(CardOSData.EVENT_REGISTER_CARD_ENUM event_name, Action<T> callback) where T : struct =>
|
2025-11-12 18:24:47 +08:00
|
|
|
cardEventSvc.EVENT_REGISTER(event_name, callback);
|
|
|
|
|
|
2025-11-12 18:35:43 +08:00
|
|
|
public void EVENT_TRIGGER(CardOSData.EVENT_REGISTER_CARD_ENUM event_name, object data) =>
|
2025-11-12 18:24:47 +08:00
|
|
|
cardEventSvc.EVENT_TRIGGER(event_name, data);
|
|
|
|
|
|
2025-11-13 02:58:03 +08:00
|
|
|
public void EVENT_UNREGISTER<T>(CardOSData.EVENT_REGISTER_CARD_ENUM event_name, Action<T> callback) where T : struct =>
|
|
|
|
|
cardEventSvc.EVENT_UNREGISTER(event_name, callback);
|
2025-11-12 18:08:24 +08:00
|
|
|
}
|