Exemple #1
0
        public static Models.MapNote Load(string fqn)
        {
            Models.MapNote result;
            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);

            Models.MapNote mpn = new Models.MapNote();
            return(Load(mpn, obj));
        }
Exemple #2
0
        public static Models.MapNote Load(ulong nodeId)
        {
            Models.MapNote result;
            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);

            Models.MapNote mpn = new Models.MapNote();
            return(Load(mpn, obj));
        }
Exemple #3
0
        public static Models.MapNote Load(Models.MapNote mpn, GomObject obj)
        {
            if (obj == null)
            {
                return(null);
            }
            if (mpn == null)
            {
                return(null);
            }

            mpn.Fqn    = obj.Name;
            mpn.NodeId = obj.Id;

            long mpnAssetID = obj.Data.Get <long>("mpnAssetID");

            mpn.Id = (ulong)(mpnAssetID >> 32);

            var textLookup     = obj.Data.Get <Dictionary <object, object> >("locTextRetrieverMap");
            var nameLookupData = (GomObjectData)textLookup[NameLookupKey];

            mpn.Name = StringTable.TryGetString(mpn.Fqn, nameLookupData);

            mpn.Icon = MapNoteIconExtensions.ToMapNoteIcon(obj.Data.Get <string>("mpnIconAsset"));
            if (obj.Data.ContainsKey("mpnConditionEType"))
            {
                mpn.Condition = MapNoteConditionExtensions.ToMapNoteCondition(obj.Data.Get <object>("mpnConditionEType").ToString());
            }
            if (obj.Data.ContainsKey("mpnHuntingRadius"))
            {
                mpn.HuntingRadius = HuntingRadiusExtensions.ToHuntingRadius(obj.Data.Get <long>("mpnHuntingRadius"));
            }
            if (obj.Data.ContainsKey("mpnHuntingRadiusBonus"))
            {
                mpn.BonusHuntingRadius = HuntingRadiusExtensions.ToHuntingRadius(obj.Data.Get <long>("mpnHuntingRadiusBonus"));
            }

            if (obj.Data.ContainsKey("mpnMapLink"))
            {
                var   mapLink = obj.Data.Get <GomObjectData>("mpnMapLink");
                ulong areaId  = mapLink.Get <ulong>("mapLinkAreaId");
                long  sId     = mapLink.Get <long>("mapLinkMapNameSId");

                GetLinkedMapId(mpn, areaId, sId);
            }

            // if (obj.Data.ContainsKey("mpnMetadataFullFQN") && mpn.Icon != MapNoteIcon.Taxi && mpn.Icon != MapNoteIcon.Wonkavator) { Console.WriteLine(mpn.Fqn); }
            if (obj.Data.ContainsKey("mpnMetadataInt"))
            {
                mpn.WonkaPackageId = obj.Data.Get <long>("mpnMetadataInt");
            }
            if (obj.Data.ContainsKey("mpnMetadataID"))
            {
                mpn.WonkaDestinationId = (long)obj.Data.Get <ulong>("mpnMetadataID");
            }

            if (mpn.Icon == MapNoteIcon.Taxi)
            {
                if (obj.Data.ContainsKey("mpnMetadataFullFQN"))
                {
                    ulong taxiNodeId = obj.Data.Get <ulong>("mpnMetadataFullFQN");
                    var   taxiNode   = DataObjectModel.GetObject(taxiNodeId);
                    if (taxiNode != null)
                    {
                        long taxNameId  = taxiNode.Data.ValueOrDefault <long>("taxNameId", -1);
                        long taxFaction = taxiNode.Data.ValueOrDefault <long>("taxFaction", 0);
                        mpn.Name = taxiTerminals.GetText(0x7D60500000000 + taxNameId, mpn.Fqn);
                    }
                }
            }

            return(mpn);
        }