| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System; |
| | | using Snxxz.UI; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public abstract class Model |
| | | { |
| | | public Model() |
| | | { |
| | | |
| | | } |
| | | |
| | | public abstract void Init(); //整个游戏生命周期只有一次 |
| | | public abstract void UnInit();//整个游戏生命周期最多有一次 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 玩家数据初始化(0102)之前调用 |
| | | /// </summary> |
| | | public interface IBeforePlayerDataInitialize |
| | | { |
| | | void OnBeforePlayerDataInitialize(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 玩家数据初始化(0102)之后调用 |
| | | /// </summary> |
| | | public interface IAfterPlayerDataInitialize |
| | | { |
| | | void OnAfterPlayerDataInitialize(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 玩家登录流程全部ok调用 |
| | | /// </summary> |
| | | public interface IPlayerLoginOk |
| | | { |
| | | void OnPlayerLoginOk(); |
| | | } |
| | | |
| | | public interface IMapInitOk |
| | | { |
| | | void OnMapInitOk(); |
| | | } |
| | | |
| | | public interface ISwitchAccount |
| | | { |
| | | void OnSwitchAccount(); |
| | | } |
| | | |
| | | public class ModelCenter : Singleton<ModelCenter> |
| | | { |
| | | bool inited = false; |
| | | |
| | | Dictionary<int, Model> models = new Dictionary<int, Model>(); |
| | | |
| | | public ModelCenter() |
| | | { |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; |
| | | DTC0102_tagCDBPlayer.switchAccountEvent += OnAccountSwitch; |
| | | DTC0102_tagCDBPlayer.afterPlayerDataInitializeEvent += OnAfterPlayerDataInitialize; |
| | | DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk; |
| | | DTC0403_tagPlayerLoginLoadOK.mapInitOkEvent += OnMapInitOk; |
| | | } |
| | | |
| | | public void Init() |
| | | { |
| | | if (inited) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (VersionConfig.Get().debugVersion) |
| | | { |
| | | RegisterModel<GMCmdModel>(); |
| | | } |
| | | |
| | | RegisterModel<UnionTaskModel>(); |
| | | RegisterModel<FriendsModel>(); |
| | | RegisterModel<RolePointModel>(); |
| | | RegisterModel<RoleParticularModel>(); |
| | | RegisterModel<WorldBossModel>(); |
| | | RegisterModel<RolePromoteModel>(); |
| | | RegisterModel<HowToPlayModel>(); |
| | | RegisterModel<PrayerModel>(); |
| | | RegisterModel<ComposeWinModel>(); |
| | | RegisterModel<PKModel>(); |
| | | RegisterModel<AchievementModel>(); |
| | | RegisterModel<FairyBossModel>(); |
| | | RegisterModel<MagicianModel>(); |
| | | RegisterModel<DungeonModel>(); |
| | | RegisterModel<SelectEquipModel>(); |
| | | RegisterModel<RoleModel>(); |
| | | RegisterModel<RuneTowerModel>(); |
| | | RegisterModel<ElderGodAreaModel>(); |
| | | RegisterModel<PersonalBossModel>(); |
| | | RegisterModel<FairyModel>(); |
| | | RegisterModel<SkillModel>(); |
| | | RegisterModel<StoreModel>(); |
| | | RegisterModel<GetItemPathModel>(); |
| | | RegisterModel<RuneModel>(); |
| | | RegisterModel<GemModel>(); |
| | | RegisterModel<TreasureModel>(); |
| | | RegisterModel<DailyQuestModel>(); |
| | | RegisterModel<WashProModel>(); |
| | | RegisterModel<FairyLeagueModel>(); |
| | | RegisterModel<LoginModel>(); |
| | | RegisterModel<EquipWashModel>(); |
| | | RegisterModel<HeavenBattleModel>(); |
| | | RegisterModel<WingsRedDot>(); |
| | | RegisterModel<TeamModel>(); |
| | | RegisterModel<BossHomeModel>(); |
| | | RegisterModel<RealmModel>(); |
| | | RegisterModel<RankModel>(); |
| | | RegisterModel<MapModel>(); |
| | | RegisterModel<DungeonLiquidModel>(); |
| | | RegisterModel<FindPreciousModel>(); |
| | | RegisterModel<VipModel>(); |
| | | RegisterModel<BlastFurnaceModel>(); |
| | | RegisterModel<MarketModel>(); |
| | | RegisterModel<SignInModel>(); |
| | | RegisterModel<TitleModel>(); |
| | | RegisterModel<KingFairyModel>(); |
| | | RegisterModel<DemonJarModel>(); |
| | | RegisterModel<PlayerBuffDatas>(); |
| | | RegisterModel<PlayerPetDatas>(); |
| | | RegisterModel<PlayerMountDatas>(); |
| | | RegisterModel<TaiChiModel>(); |
| | | RegisterModel<PlayerStrengthengDatas>(); |
| | | RegisterModel<OffLineOnHookModel>(); |
| | | RegisterModel<RuneComposeModel>(); |
| | | RegisterModel<ItemOverdueModel>(); |
| | | RegisterModel<NewGuideModel>(); |
| | | RegisterModel<GuideMessageModel>(); |
| | | RegisterModel<StoryHintModel>(); |
| | | RegisterModel<GuideDialogueModel>(); |
| | | RegisterModel<ResourcesBackModel>(); |
| | | RegisterModel<PlayerPackModel>(); |
| | | RegisterModel<ItemTipsModel>(); |
| | | RegisterModel<PackModelInterface>(); |
| | | RegisterModel<ActivityModel>(); |
| | | RegisterModel<PlayerDeadModel>(); |
| | | RegisterModel<BetterEquipGetModel>(); |
| | | RegisterModel<PreciousItemGetModel>(); |
| | | RegisterModel<PlayerMainDate>(); |
| | | RegisterModel<StoryMissionsModel>(); |
| | | RegisterModel<PlayerFairyAuTreasureData>(); |
| | | RegisterModel<BoxGetItemModel>(); |
| | | RegisterModel<PlayerRedPacketDatas>(); |
| | | RegisterModel<GuardModel>(); |
| | | RegisterModel<PlayerMethodData>(); |
| | | RegisterModel<ItemUseModel>(); |
| | | RegisterModel<ImpactRankModel>(); |
| | | RegisterModel<InSevenDayModel>(); |
| | | RegisterModel<OnlineRewardsModel>(); |
| | | RegisterModel<LevelGiftModel>(); |
| | | RegisterModel<PlayerSuitModel>(); |
| | | RegisterModel<CapacityDelayModel>(); |
| | | RegisterModel<TreasureEffectModel>(); |
| | | RegisterModel<MonthlyInvestmentModel>(); |
| | | RegisterModel<VipInvestModel>(); |
| | | RegisterModel<ChatCenter>(); |
| | | RegisterModel<HappyXBModel>(); |
| | | RegisterModel<FairyJadeInvestmentModel>(); |
| | | RegisterModel<OSRedEnvelopeModel>(); |
| | | RegisterModel<RedEnvelopeModel>(); |
| | | RegisterModel<TreasureFindHostModel>(); |
| | | RegisterModel<OSGiftModel>(); |
| | | RegisterModel<OSTimeLimitGiftModel>(); |
| | | RegisterModel<FirstTimeRechargeModel>(); |
| | | RegisterModel<SetPrivateModel>(); |
| | | RegisterModel<RidingAndPetActivationModel>(); |
| | | RegisterModel<GMNotify>(); |
| | | RegisterModel<LoginAdModel>(); |
| | | RegisterModel<CoinTaskTipModel>(); |
| | | RegisterModel<BossRebornModel>(); |
| | | RegisterModel<NeedForWhiteModel>(); |
| | | RegisterModel<MultipleExpModel>(); |
| | | RegisterModel<ConsumeRebateModel>(); |
| | | RegisterModel<LimitedTimePackageItemClassModel>(); |
| | | RegisterModel<FlashSaleModel>(); |
| | | RegisterModel<FairylandCeremonyModel>(); |
| | | inited = true; |
| | | } |
| | | |
| | | public T GetModel<T>() where T : Model, new() |
| | | { |
| | | T model = null; |
| | | |
| | | var token = typeof(T).MetadataToken; |
| | | if (models.ContainsKey(token)) |
| | | { |
| | | model = models[token] as T; |
| | | } |
| | | else |
| | | { |
| | | model = RegisterModel<T>(); |
| | | } |
| | | return model; |
| | | } |
| | | |
| | | T RegisterModel<T>() where T : Model, new() |
| | | { |
| | | T model = null; |
| | | var token = typeof(T).MetadataToken; |
| | | |
| | | if (!models.ContainsKey(token)) |
| | | { |
| | | model = new T(); |
| | | models[token] = model; |
| | | model.Init(); |
| | | } |
| | | |
| | | return model; |
| | | } |
| | | |
| | | void OnBeforePlayerDataInitialize() |
| | | { |
| | | foreach (var model in models.Values) |
| | | { |
| | | var beforePlayerDataInitialize = model as IBeforePlayerDataInitialize; |
| | | if (beforePlayerDataInitialize != null) |
| | | { |
| | | beforePlayerDataInitialize.OnBeforePlayerDataInitialize(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void OnAfterPlayerDataInitialize() |
| | | { |
| | | foreach (var model in models.Values) |
| | | { |
| | | var afterPlayerDataInitialize = model as IAfterPlayerDataInitialize; |
| | | if (afterPlayerDataInitialize != null) |
| | | { |
| | | afterPlayerDataInitialize.OnAfterPlayerDataInitialize(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void OnPlayerLoginOk() |
| | | { |
| | | foreach (var model in models.Values) |
| | | { |
| | | var playerLoginOk = model as IPlayerLoginOk; |
| | | if (playerLoginOk != null) |
| | | { |
| | | playerLoginOk.OnPlayerLoginOk(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void OnMapInitOk() |
| | | { |
| | | foreach (var model in models.Values) |
| | | { |
| | | var mapInitOk = model as IMapInitOk; |
| | | if (mapInitOk != null) |
| | | { |
| | | mapInitOk.OnMapInitOk(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void OnAccountSwitch() |
| | | { |
| | | foreach (var model in models.Values) |
| | | { |
| | | var switchAccount = model as ISwitchAccount; |
| | | if (switchAccount != null) |
| | | { |
| | | switchAccount.OnSwitchAccount(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using System;
|
| | | using Snxxz.UI;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | | public abstract class Model
|
| | | {
|
| | | public Model()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | public abstract void Init(); //整个游戏生命周期只有一次
|
| | | public abstract void UnInit();//整个游戏生命周期最多有一次
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 玩家数据初始化(0102)之前调用
|
| | | /// </summary>
|
| | | public interface IBeforePlayerDataInitialize
|
| | | {
|
| | | void OnBeforePlayerDataInitialize();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 玩家数据初始化(0102)之后调用
|
| | | /// </summary>
|
| | | public interface IAfterPlayerDataInitialize
|
| | | {
|
| | | void OnAfterPlayerDataInitialize();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 玩家登录流程全部ok调用
|
| | | /// </summary>
|
| | | public interface IPlayerLoginOk
|
| | | {
|
| | | void OnPlayerLoginOk();
|
| | | }
|
| | |
|
| | | public interface IMapInitOk
|
| | | {
|
| | | void OnMapInitOk();
|
| | | }
|
| | |
|
| | | public interface ISwitchAccount
|
| | | {
|
| | | void OnSwitchAccount();
|
| | | }
|
| | |
|
| | | public class ModelCenter : Singleton<ModelCenter>
|
| | | {
|
| | | bool inited = false;
|
| | |
|
| | | Dictionary<int, Model> models = new Dictionary<int, Model>();
|
| | |
|
| | | public ModelCenter()
|
| | | {
|
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
|
| | | DTC0102_tagCDBPlayer.switchAccountEvent += OnAccountSwitch;
|
| | | DTC0102_tagCDBPlayer.afterPlayerDataInitializeEvent += OnAfterPlayerDataInitialize;
|
| | | DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
|
| | | DTC0403_tagPlayerLoginLoadOK.mapInitOkEvent += OnMapInitOk;
|
| | | }
|
| | |
|
| | | public void Init()
|
| | | {
|
| | | if (inited)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (VersionConfig.Get().debugVersion)
|
| | | {
|
| | | RegisterModel<GMCmdModel>();
|
| | | }
|
| | |
|
| | | RegisterModel<UnionTaskModel>();
|
| | | RegisterModel<FriendsModel>();
|
| | | RegisterModel<RoleParticularModel>();
|
| | | RegisterModel<WorldBossModel>();
|
| | | RegisterModel<RolePromoteModel>();
|
| | | RegisterModel<HowToPlayModel>();
|
| | | RegisterModel<PrayerModel>();
|
| | | RegisterModel<ComposeWinModel>();
|
| | | RegisterModel<PKModel>();
|
| | | RegisterModel<AchievementModel>();
|
| | | RegisterModel<FairyBossModel>();
|
| | | RegisterModel<MagicianModel>();
|
| | | RegisterModel<DungeonModel>();
|
| | | RegisterModel<SelectEquipModel>();
|
| | | RegisterModel<RoleModel>();
|
| | | RegisterModel<RuneTowerModel>();
|
| | | RegisterModel<ElderGodAreaModel>();
|
| | | RegisterModel<PersonalBossModel>();
|
| | | RegisterModel<FairyModel>();
|
| | | RegisterModel<SkillModel>();
|
| | | RegisterModel<StoreModel>();
|
| | | RegisterModel<GetItemPathModel>();
|
| | | RegisterModel<RuneModel>();
|
| | | RegisterModel<GemModel>();
|
| | | RegisterModel<TreasureModel>();
|
| | | RegisterModel<DailyQuestModel>();
|
| | | RegisterModel<WashProModel>();
|
| | | RegisterModel<FairyLeagueModel>();
|
| | | RegisterModel<LoginModel>();
|
| | | RegisterModel<EquipWashModel>();
|
| | | RegisterModel<HeavenBattleModel>();
|
| | | RegisterModel<WingsRedDot>();
|
| | | RegisterModel<TeamModel>();
|
| | | RegisterModel<BossHomeModel>();
|
| | | RegisterModel<RealmModel>();
|
| | | RegisterModel<RankModel>();
|
| | | RegisterModel<MapModel>();
|
| | | RegisterModel<DungeonLiquidModel>();
|
| | | RegisterModel<FindPreciousModel>();
|
| | | RegisterModel<VipModel>();
|
| | | RegisterModel<BlastFurnaceModel>();
|
| | | RegisterModel<MarketModel>();
|
| | | RegisterModel<SignInModel>();
|
| | | RegisterModel<TitleModel>();
|
| | | RegisterModel<KingFairyModel>();
|
| | | RegisterModel<DemonJarModel>();
|
| | | RegisterModel<PlayerBuffDatas>();
|
| | | RegisterModel<PlayerPetDatas>();
|
| | | RegisterModel<PlayerMountDatas>();
|
| | | RegisterModel<TaiChiModel>();
|
| | | RegisterModel<PlayerStrengthengDatas>();
|
| | | RegisterModel<OffLineOnHookModel>();
|
| | | RegisterModel<RuneComposeModel>();
|
| | | RegisterModel<ItemOverdueModel>();
|
| | | RegisterModel<NewGuideModel>();
|
| | | RegisterModel<GuideMessageModel>();
|
| | | RegisterModel<StoryHintModel>();
|
| | | RegisterModel<GuideDialogueModel>();
|
| | | RegisterModel<ResourcesBackModel>();
|
| | | RegisterModel<PlayerPackModel>();
|
| | | RegisterModel<ItemTipsModel>();
|
| | | RegisterModel<PackModelInterface>();
|
| | | RegisterModel<ActivityModel>();
|
| | | RegisterModel<PlayerDeadModel>();
|
| | | RegisterModel<BetterEquipGetModel>();
|
| | | RegisterModel<RealmBetterEquipModel>();
|
| | | RegisterModel<PreciousItemGetModel>();
|
| | | RegisterModel<PlayerMainDate>();
|
| | | RegisterModel<StoryMissionsModel>();
|
| | | RegisterModel<PlayerFairyAuTreasureData>();
|
| | | RegisterModel<BoxGetItemModel>();
|
| | | RegisterModel<PlayerRedPacketDatas>();
|
| | | RegisterModel<GuardModel>();
|
| | | RegisterModel<PlayerMethodData>();
|
| | | RegisterModel<ItemUseModel>();
|
| | | RegisterModel<ImpactRankModel>();
|
| | | RegisterModel<InSevenDayModel>();
|
| | | RegisterModel<OnlineRewardsModel>();
|
| | | RegisterModel<LevelGiftModel>();
|
| | | RegisterModel<PlayerSuitModel>();
|
| | | RegisterModel<CapacityDelayModel>();
|
| | | RegisterModel<TreasureEffectModel>();
|
| | | RegisterModel<MonthlyInvestmentModel>();
|
| | | RegisterModel<VipInvestModel>();
|
| | | RegisterModel<ChatCenter>();
|
| | | RegisterModel<HappyXBModel>();
|
| | | RegisterModel<FairyJadeInvestmentModel>();
|
| | | RegisterModel<OSRedEnvelopeModel>();
|
| | | RegisterModel<RedEnvelopeModel>();
|
| | | RegisterModel<TreasureFindHostModel>();
|
| | | RegisterModel<OSGiftModel>();
|
| | | RegisterModel<OSTimeLimitGiftModel>();
|
| | | RegisterModel<FirstTimeRechargeModel>();
|
| | | RegisterModel<SetPrivateModel>();
|
| | | RegisterModel<RidingAndPetActivationModel>();
|
| | | RegisterModel<GMNotify>();
|
| | | RegisterModel<LoginAdModel>();
|
| | | RegisterModel<CoinTaskTipModel>();
|
| | | RegisterModel<BossRebornModel>();
|
| | | RegisterModel<NeedForWhiteModel>();
|
| | | RegisterModel<MultipleExpModel>();
|
| | | RegisterModel<ConsumeRebateModel>();
|
| | | RegisterModel<LimitedTimePackageItemClassModel>();
|
| | | RegisterModel<FlashSaleModel>();
|
| | | RegisterModel<FairylandCeremonyModel>();
|
| | | RegisterModel<TrialDungeonModel>();
|
| | | RegisterModel<ActivitiesPushMgr>();
|
| | | RegisterModel<MultipleRealmPointModel>();
|
| | | RegisterModel<DogzDungeonModel>();
|
| | | RegisterModel<DogzModel>();
|
| | | RegisterModel<TreasureSoulModel>();
|
| | | RegisterModel<FairyGrabBossModel>();
|
| | | inited = true;
|
| | | }
|
| | |
|
| | | public T GetModel<T>() where T : Model, new()
|
| | | {
|
| | | T model = null;
|
| | |
|
| | | var token = typeof(T).MetadataToken;
|
| | | if (models.ContainsKey(token))
|
| | | {
|
| | | model = models[token] as T;
|
| | | }
|
| | | else
|
| | | {
|
| | | model = RegisterModel<T>();
|
| | | }
|
| | | return model;
|
| | | }
|
| | |
|
| | | T RegisterModel<T>() where T : Model, new()
|
| | | {
|
| | | T model = null;
|
| | | var token = typeof(T).MetadataToken;
|
| | |
|
| | | if (!models.ContainsKey(token))
|
| | | {
|
| | | model = new T();
|
| | | models[token] = model;
|
| | | model.Init();
|
| | | }
|
| | |
|
| | | return model;
|
| | | }
|
| | |
|
| | | void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | foreach (var model in models.Values)
|
| | | {
|
| | | var beforePlayerDataInitialize = model as IBeforePlayerDataInitialize;
|
| | | if (beforePlayerDataInitialize != null)
|
| | | {
|
| | | beforePlayerDataInitialize.OnBeforePlayerDataInitialize();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void OnAfterPlayerDataInitialize()
|
| | | {
|
| | | foreach (var model in models.Values)
|
| | | {
|
| | | var afterPlayerDataInitialize = model as IAfterPlayerDataInitialize;
|
| | | if (afterPlayerDataInitialize != null)
|
| | | {
|
| | | afterPlayerDataInitialize.OnAfterPlayerDataInitialize();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void OnPlayerLoginOk()
|
| | | {
|
| | | foreach (var model in models.Values)
|
| | | {
|
| | | var playerLoginOk = model as IPlayerLoginOk;
|
| | | if (playerLoginOk != null)
|
| | | {
|
| | | playerLoginOk.OnPlayerLoginOk();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void OnMapInitOk()
|
| | | {
|
| | | foreach (var model in models.Values)
|
| | | {
|
| | | var mapInitOk = model as IMapInitOk;
|
| | | if (mapInitOk != null)
|
| | | {
|
| | | mapInitOk.OnMapInitOk();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void OnAccountSwitch()
|
| | | {
|
| | | foreach (var model in models.Values)
|
| | | {
|
| | | var switchAccount = model as ISwitchAccount;
|
| | | if (switchAccount != null)
|
| | | {
|
| | | switchAccount.OnSwitchAccount();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | |
|