bfc706e6-9761-4d64-bb7e-872135f73ff6.js 3.92 KB
"use strict";
cc._RF.push(module, 'bfc70bml2FNZLt+hyE19z/2', 'CCGameCenterNodeFactory');
// script/cooperation/script/CCGameCenterNodeFactory.ts

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const CCDummyObjects_1 = require("../../common/CCDummyObjects");
const EventCenter_1 = require("../event/EventCenter");
const EventKit_1 = require("../event/EventKit");
const CCCooperationItem_1 = require("./CCCooperationItem");
const CCGameCenterMomentItem_1 = require("./CCGameCenterMomentItem");
const CooperationDataCenter_1 = require("./CooperationDataCenter");
const GameCenter_1 = require("./GameCenter");
/**
 * 游戏中心Item项工厂
 */
let CCGameCenterNodeFactory = /** @class */ (() => {
    class CCGameCenterNodeFactory {
        constructor() {
            /**朋友圈prefab */
            this._momentPrefab = CCDummyObjects_1.DummyPrefab;
            /**子游戏项prefab */
            this._subGamePrefab = CCDummyObjects_1.DummyPrefab;
            /**单独展示的子游戏列表 */
            this._mainUISubGameNodes = [];
            this._disposable = new EventKit_1.CompositeDisposable;
            /**刷新主界面中的子游戏 */
            this.onRefreshMainUISubGames = () => {
                if (!this._mainUISubGameNodes || 0 === this._mainUISubGameNodes.length) {
                    return;
                }
                let models = CooperationDataCenter_1.default.getInstance().getMainUISubGameDataModelList();
                let isShow = models && 0 !== models.length;
                for (let i = 0; i < this._mainUISubGameNodes.length; i++) {
                    let node = this._mainUISubGameNodes[i];
                    node.active = isShow;
                    let script = node.getComponent(CCCooperationItem_1.CCCooperationItem);
                    if (script) {
                        script.setRelease(GameCenter_1.default.getInstance().getIsRelease());
                        script.bindData(models[Math.floor(Math.random() * models.length)]);
                        script.setLocation(CooperationDataCenter_1.SubGameLocation.MainUI);
                    }
                }
            };
        }
        /**朋友圈游戏中心工厂单例对象 */
        static getInstance() {
            return CCGameCenterNodeFactory._instance;
        }
        /**初始化操作 */
        init() {
            this._disposable.add(EventCenter_1.EventCenter.REFRESH_SUB_GAME_LIST.on(this.onRefreshMainUISubGames));
        }
        /**注册子游戏节点到单独展示的游戏列表中 */
        registerMainUISubGameNode(node) {
            if (node) {
                this._mainUISubGameNodes.push(node);
            }
            this.onRefreshMainUISubGames();
        }
        /**获取单独展示的游戏节点列表 */
        getMainUISubGameNodes() {
            return this._mainUISubGameNodes;
        }
        /**注入朋友圈prefab */
        registerMomentPrefab(prefab) {
            this._momentPrefab = prefab;
        }
        /**注入子游戏prefab */
        registerSubGamePrefab(prefab) {
            this._subGamePrefab = prefab;
        }
        /**获取朋友圈node */
        getMomentNode() {
            if (!this._momentPrefab) {
                return undefined;
            }
            let node = cc.instantiate(this._momentPrefab);
            let script = node.getComponent(CCGameCenterMomentItem_1.default);
            if (script) {
                script.onRefreshContent();
            }
            return node;
        }
        /**获取子游戏node */
        getSubGameNode() {
            if (!this._subGamePrefab) {
                return undefined;
            }
            let node = cc.instantiate(this._subGamePrefab);
            return node;
        }
    }
    /**单例对象 */
    CCGameCenterNodeFactory._instance = new CCGameCenterNodeFactory();
    return CCGameCenterNodeFactory;
})();
exports.default = CCGameCenterNodeFactory;

cc._RF.pop();