private bool onPurchaseComplete(IglooServiceEvents.DecorationUpdated evt) { Service.Get <EventDispatcher>().RemoveListener <IglooServiceEvents.DecorationUpdated>(onPurchaseComplete); setState(ConfirmationState.Complete); hidePurchaseModal(); PersistentBreadcrumbTypeDefinitionKey type = null; StaticBreadcrumbDefinitionKey breadcrumbKey = null; string id = ""; if (evt.DecorationId.type == DecorationType.Decoration) { type = decorationTypeBreadcrumb; id = evt.DecorationId.definitionId.ToString(); breadcrumbKey = decorationBreadcrumb; } else if (evt.DecorationId.type == DecorationType.Structure) { type = structureTypeBreadcrumb; id = evt.DecorationId.definitionId.ToString(); breadcrumbKey = structureBreadcrumb; } if (notificationBreadcrumbController.GetPersistentBreadcrumbCount(type, id) == 0) { notificationBreadcrumbController.AddPersistentBreadcrumb(type, id); } notificationBreadcrumbController.AddBreadcrumb(breadcrumbKey); return(false); }
public override void Init(Texture2DContentKey customizationAssetKey, PersistentBreadcrumbTypeDefinitionKey breadcrumbIdType, int definitionId, bool canDrag) { SizeIconSelector.SetActive(value: false); itemCountPanel.SetActive(value: false); base.Init(customizationAssetKey, breadcrumbIdType, definitionId, canDrag); CheckBreadcrumb(breadcrumbIdType, definitionId); }
protected void SetupButton(PersistentBreadcrumbTypeDefinitionKey breadcrumbIdType, int definitionId, bool canDrag) { CanDrag = canDrag; DefinitionId = definitionId; LoadingSpinner.SetActive(value: true); IconImage.gameObject.SetActive(value: false); breadcrumb.SetBreadcrumbId(breadcrumbIdType, definitionId.ToString()); }
public NoSelectionState(Camera mainCam, OriginalFabricData originalFabricChannelData, OriginalDecalData originalDecalChannelData, PersistentBreadcrumbTypeDefinitionKey templateBreadcrumbType, PersistentBreadcrumbTypeDefinitionKey fabricBreadcrumbType, PersistentBreadcrumbTypeDefinitionKey decalBreadcrumbType) { this.mainCam = mainCam; this.originalFabricChannelData = originalFabricChannelData; this.originalDecalChannelData = originalDecalChannelData; this.templateBreadcrumbType = templateBreadcrumbType; this.fabricBreadcrumbType = fabricBreadcrumbType; this.decalBreadcrumbType = decalBreadcrumbType; breadcrumbController = Service.Get <NotificationBreadcrumbController>(); }
public virtual void Init(Texture2DContentKey customizationAssetKey, PersistentBreadcrumbTypeDefinitionKey breadcrumbIdType, int definitionId, bool canDrag) { SetupButton(breadcrumbIdType, definitionId, canDrag); try { Content.LoadAsync <Texture2D>(customizationAssetKey.Key, onIconLoaded); } catch (ArgumentException ex) { Log.LogException(this, ex); } }
public QuestService(Manifest manifest, PersistentBreadcrumbTypeDefinitionKey breadcrumbType) { this.breadcrumbType = breadcrumbType; dispatcher = Service.Get <EventDispatcher>(); MascotService mascotService = Service.Get <MascotService>(); List <QuestDefinition> list = new List <QuestDefinition>(); ScriptableObject[] assets = manifest.Assets; foreach (ScriptableObject scriptableObject in assets) { string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(scriptableObject.name); Mascot mascot = mascotService.GetMascot(fileNameWithoutExtension); ScriptableObject[] assets2 = ((Manifest)scriptableObject).Assets; foreach (ScriptableObject scriptableObject2 in assets2) { QuestDefinition questDefinition = (QuestDefinition)scriptableObject2; knownQuests[scriptableObject2.name] = questDefinition; questToMascotMap[scriptableObject2.name] = mascot; list.Add(questDefinition); } mascot.KnownQuests = list.ToArray(); list.Clear(); } eventChannel = new EventChannel(dispatcher); eventChannel.AddListener <QuestEvents.SuspendQuest>(onSuspendQuestRequest); eventChannel.AddListener <QuestEvents.ResumeQuest>(onResumeQuestRequest); eventChannel.AddListener <QuestEvents.StartQuest>(onStartQuestRequest); eventChannel.AddListener <QuestEvents.ReplayQuest>(onReplayQuestRequest); eventChannel.AddListener <QuestEvents.RestartQuest>(onRestartQuestRequest); eventChannel.AddListener <SplashScreenEvents.SplashScreenOpened>(onSplashScreenOpened); eventChannel.AddListener <SplashScreenEvents.SplashScreenClosed>(onSplashScreenClosed); eventChannel.AddListener <QuestEvents.QuestUpdated>(onQuestUpdated); eventChannel.AddListener <QuestEvents.QuestInitializationComplete>(onQuestInitializationComplete); eventChannel.AddListener <RewardEvents.RewardPopupComplete>(onRewardPopupComplete); eventChannel.AddListener <QuestEvents.SetPlayerOutOfWorld>(onSetPlayerOutOfWorld); eventChannel.AddListener <SceneTransitionEvents.TransitionStart>(onSceneTransition); eventChannel.AddListener <QuestEvents.RegisterQuestSubFsm>(onRegisterQuestSubFsm); eventChannel.AddListener <InWorldUIEvents.DisableActionIndicators>(onDisableActionIndicators); eventChannel.AddListener <InWorldUIEvents.EnableActionIndicators>(onEnableActionIndicators); eventChannel.AddListener <QuestServiceEvents.QuestStatesRecieved>(onQuestStatesReceived); eventChannel.AddListener <QuestServiceErrors.QuestProgressionError>(onQuestProgressionError); eventChannel.AddListener <ProgressionEvents.LevelUp>(onLevelUp); updateQuestGivers(0); timeLockedCheckTimer = new Timer(2f, repeat: true, delegate { onTimerTick(); }); CoroutineRunner.StartPersistent(timeLockedCheckTimer.Start(), this, "timeLockedQuestTimer"); }
public void CheckBreadcrumb(PersistentBreadcrumbTypeDefinitionKey breadcrumbIdType, int definitionId) { breadcrumbType = breadcrumbIdType; breadcrumbId = definitionId; }
private void addBreadCrumbsForReward <TItemDefinition, URewardable, VIdType>(Reward reward, PersistentBreadcrumbTypeDefinitionKey singleBreadcrumbId, StaticBreadcrumbDefinitionKey groupBreadcrumbId) where TItemDefinition : IMemberLocked where URewardable : AbstractListReward <VIdType> { if (reward.TryGetValue(out URewardable rewardable) && !rewardable.IsEmpty()) { bool flag = false; List <VIdType> list = (List <VIdType>)rewardable.Reward; foreach (VIdType item in list) { if (dataEntityCollection.IsLocalPlayerMember() || !RewardUtils.IsMemberLockableItemMemberOnly <TItemDefinition, VIdType>(item)) { notificationBreadcrumbController.AddPersistentBreadcrumb(singleBreadcrumbId, item.ToString()); flag = true; } } if (flag) { notificationBreadcrumbController.AddBreadcrumb(groupBreadcrumbId); } } }
private void addBreadcrumbsForReward(Reward reward) { addBreadCrumbsForReward <PropDefinition, DurableReward, int>(reward, breadcrumbIdentifiers.GearType, breadcrumbIdentifiers.Gear); addBreadCrumbsForReward <TemplateDefinition, EquipmentTemplateReward, int>(reward, breadcrumbIdentifiers.TemplateType, breadcrumbIdentifiers.Template); addBreadCrumbsForReward <FabricDefinition, FabricReward, int>(reward, breadcrumbIdentifiers.FabricType, breadcrumbIdentifiers.Fabric); addBreadCrumbsForReward <DecalDefinition, DecalReward, int>(reward, breadcrumbIdentifiers.DecalType, breadcrumbIdentifiers.Decal); addBreadCrumbsForReward <TubeDefinition, TubeReward, int>(reward, breadcrumbIdentifiers.TubeType, breadcrumbIdentifiers.Tube); addBreadCrumbsForReward <DecorationDefinition, DecorationReward, int>(reward, breadcrumbIdentifiers.DecorationType, breadcrumbIdentifiers.Decoration); addBreadCrumbsForReward <StructureDefinition, StructureReward, int>(reward, breadcrumbIdentifiers.StructureType, breadcrumbIdentifiers.Structure); addBreadCrumbsForReward <MusicTrackDefinition, MusicTrackReward, int>(reward, breadcrumbIdentifiers.MusicTrackType, breadcrumbIdentifiers.MusicTrack); addBreadCrumbsForReward <LightingDefinition, LightingReward, int>(reward, breadcrumbIdentifiers.LightingType, breadcrumbIdentifiers.Lighting); if (reward.TryGetValue(out EquipmentInstanceReward rewardable) && !rewardable.IsEmpty()) { bool flag = false; for (int i = 0; i < rewardable.EquipmentInstances.Count; i++) { if (dataEntityCollection.IsLocalPlayerMember() || !RewardUtils.IsMemberLockableItemMemberOnly <TemplateDefinition, int>(rewardable.EquipmentInstances[i].definitionId)) { NotificationBreadcrumbController obj = notificationBreadcrumbController; PersistentBreadcrumbTypeDefinitionKey inventoryType = breadcrumbIdentifiers.InventoryType; long equipmentId = rewardable.EquipmentInstances[i].equipmentId; obj.AddPersistentBreadcrumb(inventoryType, equipmentId.ToString()); flag = true; } } if (flag) { notificationBreadcrumbController.AddBreadcrumb(breadcrumbIdentifiers.Inventory); } } if (!reward.TryGetValue(out ConsumableInstanceReward rewardable2) || rewardable2.IsEmpty()) { return; } Dictionary <string, int> .Enumerator enumerator = rewardable2.Consumables.GetEnumerator(); bool flag2 = false; bool flag3 = false; while (enumerator.MoveNext()) { if (dataEntityCollection.IsLocalPlayerMember() || !RewardUtils.IsMemberLockableItemMemberOnly <PropDefinition, int>(RewardUtils.GetConsumableIdByServerName(enumerator.Current.Key))) { PersistentBreadcrumbTypeDefinitionKey type; if (RewardUtils.IsConsumablePartyGame(enumerator.Current.Key)) { type = breadcrumbIdentifiers.PartyGameType; flag3 = true; } else { type = breadcrumbIdentifiers.ConsumableType; flag2 = true; } notificationBreadcrumbController.AddPersistentBreadcrumb(type, RewardUtils.GetConsumableIdByServerName(enumerator.Current.Key).ToString()); } } if (flag2) { notificationBreadcrumbController.AddBreadcrumb(breadcrumbIdentifiers.Consumable); } if (flag3) { notificationBreadcrumbController.AddBreadcrumb(breadcrumbIdentifiers.PartyGame); } }
public void SetBreadcrumbId(PersistentBreadcrumbTypeDefinitionKey breadcrumbType, string instanceId) { SetBreadcrumbId(PersistentBreadcrumbTypeDefinition.ToStaticBreadcrumb(breadcrumbType.Id, instanceId)); }