bfc706e6-9761-4d64-bb7e-872135f73ff6.js
3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"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();