public GoalRecordAppInstall(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row) { if (_goalIdOrdinal == -1) { _goalIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalId"); } if (_appStoreIdOrdinal == -1) { _appStoreIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AppStoreId"); } if (_appPlatformOrdinal == -1) { _appPlatformOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AppPlatform"); } if (_lookbackWindowOrdinal == -1) { _lookbackWindowOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "LookbackWindow"); } if (_goalValueOrdinal == -1) { _goalValueOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValue"); } if (_AccountIdOrdinal == -1) { _AccountIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AccountId"); } if (_goalTrackingType == -1) { _goalTrackingType = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalTrackingType"); } if (_goalValueSourceIdOrdinal == -1) { _goalValueSourceIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValueSourceId"); } if (_customerIdOrdinal == -1) { _customerIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "CustomerId"); } GoalId = (int)row[_goalIdOrdinal]; AppStoreId = (string)row[_appStoreIdOrdinal]; AppPlatform = (string)row[_appPlatformOrdinal]; LookbackWindow = (int)row[_lookbackWindowOrdinal]; GoalValue = (double?)row[_goalValueOrdinal]; AccountId = (int?)row[_AccountIdOrdinal]; GoalTrackingType = (short)row[_goalTrackingType]; GoalValueSourceId = (short)row[_goalValueSourceIdOrdinal]; CustomerId = (int)row[_customerIdOrdinal]; }
/// <summary> /// Constructor /// </summary> /// <param name="columnMetadata"> Column name to column index mapping. </param> /// <param name="row"></param> protected TagToGoalRecord(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row) { if (_tagIdOrdinal == -1) { _tagIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "TagId"); } if (_goalIdOrdinal == -1) { _goalIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalId"); } if (_lookbackWindowOrdinal == -1) { _lookbackWindowOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "LookbackWindow"); } if (_goalValue == -1) { _goalValue = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValue"); } if (_goalTrackingType == -1) { _goalTrackingType = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalTrackingType"); } if (_accountIdOrdinal == -1) { _accountIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "AccountId"); } if (_goalValueSourceIdOrdinal == -1) { _goalValueSourceIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "GoalValueSourceId"); } TagId = (int)row[_tagIdOrdinal]; GoalId = (int)row[_goalIdOrdinal]; LookbackWindow = (int)row[_lookbackWindowOrdinal]; GoalValue = (double?)row[_goalValue]; GoalTrackingType = (short)row[_goalTrackingType]; AccountId = (int?)row[_accountIdOrdinal]; GoalValueSourceId = (short)row[_goalValueSourceIdOrdinal]; }
public TagToCustomerRecord(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row) { if (_tagIdOrdinal == -1) { _tagIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "TagId"); } if (_customerIdOrdinal == -1) { _customerIdOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "CustomerId"); } if (_tagNameOrdinal == -1) { _tagNameOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "TagName"); } TagId = (int)row[_tagIdOrdinal]; CustomerId = (int)row[_customerIdOrdinal]; TagName = (string)row[_tagNameOrdinal]; }
public TagToGoalRecordDestinationUrl(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row) : base(columnMetadata, row) { GoalType = GoalType.DestinationUrl; if (_destinationUrlOrdinal == -1) { _destinationUrlOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "DestinationURL"); } if (_comparisonOperatorOrdinal == -1) { _comparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "DestinationURLOperator"); } var destinationUrl = (string)row[_destinationUrlOrdinal]; var comparisonOperatorByte = (byte)row[_comparisonOperatorOrdinal]; if (!GoalUtils.IsValidComparisonOperator(comparisonOperatorByte)) { throw new Exception(String.Format("DestinationUrl comparison operator value {0} is outside of range.", comparisonOperatorByte)); } var comparisonOperator = (GoalComparisonOperator)comparisonOperatorByte; if (!GoalUtils.IsValidStringOperator(comparisonOperator)) { throw new Exception(String.Format("Comparison operator value {0} is not supported by {1} goal type.", comparisonOperator.ToString(), GoalType)); } DestinationUrlProperty = new GoalProperty <string> { ComparisonOperator = comparisonOperator, PropertyValue = destinationUrl.Trim() }; }
public TagToGoalRecordPagesPerVisit(IReadOnlyDictionary <string, int> columnMetadata, IList <object> row) : base(columnMetadata, row) { GoalType = GoalType.PagesPerVisit; if (_numberOfPagesOrdinal == -1) { _numberOfPagesOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "PageVisitGoal"); } if (_comparisonOperatorOrdinal == -1) { _comparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "PageVisitOperator"); } var numberOfPages = (short)row[_numberOfPagesOrdinal]; var valueOperatorByte = (byte)row[_comparisonOperatorOrdinal]; if (!GoalUtils.IsValidValueOperator(valueOperatorByte)) { throw new Exception(String.Format("NumberOfPages comparison operator value {0} is outside of range.", valueOperatorByte)); } var valueComparisonOperator = (ValueComparisonOperator)valueOperatorByte; if (!GoalUtils.IsValidNumericOperator(valueComparisonOperator)) { throw new Exception(String.Format("Value operator value {0} is not supported by {1} goal type.", valueComparisonOperator.ToString(), GoalType)); } NumberOfPagesProperty = new GoalProperty <short> { ValueComparisionOperator = valueComparisonOperator, PropertyValue = numberOfPages }; }
public override void ReadSource(SymSource aSource, TSynchronicity aSynchronicity) { // Need to work out if it's a GCCE or RVCT map file. TMapFileType type = MapFileUtils.Type(aSource.FileName); // MapReader reader = null; switch (type) { case TMapFileType.ETypeRVCT: reader = new RVCTMapFileReader(aSource, base.Tracer); break; case TMapFileType.ETypeGCCE: reader = new GCCEMapFileReader(aSource, base.Tracer); break; case TMapFileType.ETypeUnknown: default: throw new NotSupportedException(); } // reader.Read(aSynchronicity); }
public TagToGoalRecordCustomEvent(Dictionary <string, int> columnMetadata, object[] row) : base(columnMetadata, row) { GoalType = GoalType.CustomEvent; if (_eventCategoryOrdinal == -1) { _eventCategoryOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventCategory"); } if (_categoryComparisonOperatorOrdinal == -1) { _categoryComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventCategoryOperator"); } if (_eventNameOrdinal == -1) { _eventNameOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventName"); } if (_nameComparisonOperatorOrdinal == -1) { _nameComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventNameOperator"); } if (_eventLabelOrdinal == -1) { _eventLabelOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventLabel"); } if (_labelComparisonOperatorOrdinal == -1) { _labelComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventLabelOperator"); } if (_eventValueOrdinal == -1) { _eventValueOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventValue"); } if (_valueComparisonOperatorOrdinal == -1) { _valueComparisonOperatorOrdinal = MapFileUtils.GetColumnOrdinal(columnMetadata, "EventValueOperator"); } var eventCategory = (string)row[_eventCategoryOrdinal]; var categoryComparisonOperatorByte = (byte?)row[_categoryComparisonOperatorOrdinal]; EventCategoryProperty = CreateCustomEventGoalProperty("Category", eventCategory, categoryComparisonOperatorByte); var eventName = (string)row[_eventNameOrdinal]; var nameComparisonOperatorByte = (byte?)row[_nameComparisonOperatorOrdinal]; EventActionProperty = CreateCustomEventGoalProperty("Name", eventName, nameComparisonOperatorByte); var eventLabel = (string)row[_eventLabelOrdinal]; var labelComparisonOperatorByte = (byte?)row[_labelComparisonOperatorOrdinal]; EventLabelProperty = CreateCustomEventGoalProperty("Label", eventLabel, labelComparisonOperatorByte); var eventValue = (double?)row[_eventValueOrdinal]; var valueComparisonOperatorByte = (byte?)row[_valueComparisonOperatorOrdinal]; if (eventValue != null) { if (valueComparisonOperatorByte == null) { throw new Exception("ValueComparisonOperator value cannot be null when EventValue value is not null."); } if (!GoalUtils.IsValidValueOperator((byte)valueComparisonOperatorByte)) { throw new Exception(String.Format("ValueComparisonOperator value {0} is outside of range.", valueComparisonOperatorByte)); } var valueOperator = (ValueComparisonOperator)valueComparisonOperatorByte; if (!GoalUtils.IsValidNumericOperator(valueOperator)) { throw new Exception(String.Format("ValueOperator value {0} is not supported by {1} goal type.", valueOperator.ToString(), GoalType)); } EventValueProperty = new GoalProperty <double> { ValueComparisionOperator = valueOperator, PropertyValue = (double)eventValue }; } }
private void LoadMaps() { _mapList = MapFileUtils.GetMapList(); _pageHandler.SetElements(_mapList.ToArray()); _selectionHandler.CurrentSelectionIndex = 0; }
private void InitializeGlobalData() { if (_globalData == null) { _globalData = new GlobalData(); } _globalData.Origin = GameObject.Find("slide")?.transform.position ?? Vector3.zero; _globalData.TreeOrigin = GameObject.Find("stool")?.transform.position ?? Vector3.zero; // Tree Teleport Stuff if (_globalData.BigTreeTeleportToMap == null) { var teleporterPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(typeof(MapFileUtils).Assembly.Location), Constants.MiscObjectsFolderName, "Teleporter"); AssetBundle bundle = MapFileUtils.GetAssetBundleFromZip(teleporterPath); _globalData.BigTreeTeleportToMap = Object.Instantiate(bundle.LoadAsset <GameObject>("_Teleporter")); _globalData.BigTreeTeleportToMap.layer = Constants.MaskLayerPlayerTrigger; Object.DontDestroyOnLoad(_globalData.BigTreeTeleportToMap); _globalData.BigTreeTeleportToMap.transform.position += new Vector3(0, -0.05f, 2.9f); _globalData.BigTreeTeleportToMap.transform.Rotate(new Vector3(0, 20, 0)); } var orbPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(typeof(MapFileUtils).Assembly.Location), Constants.MiscObjectsFolderName, "Orb"); AssetBundle orbBundle = MapFileUtils.GetAssetBundleFromZip(orbPath); GameObject orb = Object.Instantiate(orbBundle.LoadAsset <GameObject>("_Orb")); GameObject orbVisuals = Object.Instantiate(orb); orb.AddComponent <RotateByHand>(); orb.GetComponent <Renderer>().enabled = false; Object.Destroy(orb.GetComponent <Renderer>()); orb.layer = 18; orbVisuals.transform.SetParent(orb.transform); orbVisuals.transform.localPosition = Vector3.zero; orbVisuals.transform.localScale = Vector3.one; orbVisuals.transform.localRotation = Quaternion.identity; orbVisuals.AddComponent <PreviewOrb>(); orbVisuals.GetComponent <Collider>().enabled = false; Object.Destroy(orbVisuals.GetComponent <Collider>()); //orb.layer = Constants.MaskLayerPlayerTrigger; Teleporter treeTeleporter = _globalData.BigTreeTeleportToMap.GetComponent <Teleporter>(); treeTeleporter.TeleporterType = TeleporterType.Map; treeTeleporter.JoinGameOnTeleport = true; treeTeleporter.TeleportPoints = new List <Transform>(); treeTeleporter.Delay = 1.5f; treeTeleporter.TouchType = GorillaTouchType.Head; Object.DontDestroyOnLoad(treeTeleporter); if (_globalData.BigTreePoint == null) { _globalData.BigTreePoint = new GameObject("TreeHomeTargetObject"); _globalData.BigTreePoint.transform.position = new Vector3(-66f, 12.3f, -83f); _globalData.BigTreePoint.transform.rotation = Quaternion.Euler(0f, -90f, 0f); Object.DontDestroyOnLoad(_globalData.BigTreePoint); } treeTeleporter.TeleportPoints.Add(_globalData.BigTreePoint.transform); ColorTreeTeleporter(new Color(0, 1, 0)); // Emergency Teleport Stuff if (_globalData.FallEmergencyTeleport != null) { Object.Destroy(_globalData.FallEmergencyTeleport); _globalData.FallEmergencyTeleport = null; } _globalData.FallEmergencyTeleport = new GameObject("FallEmergencyTeleport"); _globalData.FallEmergencyTeleport.layer = Constants.MaskLayerHandTrigger; _globalData.FallEmergencyTeleport.AddComponent <BoxCollider>().isTrigger = true; _globalData.FallEmergencyTeleport.transform.localScale = new Vector3(1000f, 1f, 1000f); _globalData.FallEmergencyTeleport.transform.position = _globalData.TreeOrigin + new Vector3(0f, -200f, 0f); Object.DontDestroyOnLoad(_globalData.FallEmergencyTeleport); Teleporter emergencyFallTeleporter = _globalData.FallEmergencyTeleport.AddComponent <Teleporter>(); emergencyFallTeleporter.TeleportPoints = new List <Transform>() { _globalData.BigTreePoint.transform }; }
public IEnumerator LoadMapFromPackageFileAsync(MapInfo mapInfo, Action <bool> isSuccess) { if (_isLoading) { yield break; } _isLoading = true; _lobbyName = ""; UnloadMap(); Logger.LogText("Loading map: " + mapInfo.FilePath + " -> " + mapInfo.PackageInfo.Descriptor.Name); var bundleDataStream = MapFileUtils.GetMapDataStreamFromZip(mapInfo); if (bundleDataStream == null) { Logger.LogText("Bundle not found in package"); _isLoading = false; isSuccess(false); yield break; } var loadBundleRequest = AssetBundle.LoadFromStreamAsync(bundleDataStream); yield return(loadBundleRequest); var bundle = loadBundleRequest.assetBundle; if (bundle == null) { Logger.LogText("Bundle NOT LOADED"); _isLoading = false; isSuccess(false); yield break; } Logger.LogText("Bundle loaded"); var assetNames = bundle.GetAllAssetNames(); Logger.LogText("Asset count: " + assetNames.Length + ", assets: " + string.Join(";", assetNames)); Logger.LogText("Asset name: " + mapInfo.PackageInfo.Descriptor.Name); string[] scenePath = bundle.GetAllScenePaths(); if (scenePath.Length <= 0) { Logger.LogText("Bundle NOT LOADED"); _isLoading = false; isSuccess(false); yield break; } var scene = SceneManager.LoadSceneAsync(scenePath[0], LoadSceneMode.Additive); yield return(scene); GameObject[] allObjects = Object.FindObjectsOfType <GameObject>(); MapDescriptor descriptor = Object.FindObjectOfType <MapDescriptor>(); foreach (GameObject gameObject in allObjects) { if (gameObject.scene.name != "GorillaTagNewVisuals" && gameObject.scene.name != "DontDestroyOnLoad") { if (gameObject.transform.parent == null & gameObject.transform != descriptor.transform) { gameObject.transform.SetParent(descriptor.transform); } } } GameObject map = descriptor.gameObject; if (map == null) { _isLoading = false; isSuccess(false); bundle.Unload(false); yield break; } Logger.LogText("Map asset loaded: " + map.name); _lobbyName = mapInfo.PackageInfo.Descriptor.Author + "_" + mapInfo.PackageInfo.Descriptor.Name; if (!String.IsNullOrWhiteSpace(mapInfo.PackageInfo.Config.GUID)) { _lobbyName = mapInfo.PackageInfo.Config.GUID + "_" + mapInfo.PackageInfo.Config.Version; } Exception ex = null; yield return(ProcessAndInstantiateMap(map).AsIEnumerator(exception => ex = exception)); yield return(null); if (ex != null) { Logger.LogException(ex); isSuccess(false); _isLoading = false; bundle.Unload(false); yield break; } bundle.Unload(false); bundleDataStream.Close(); _isLoading = false; isSuccess(true); }