Пример #1
0
 private static bool TryCreateChest(ActorCommonData acd, out IMapMarker item, ref bool interested)
 {
     item = null;
     if (acd.x178_GizmoType == GizmoType.Chest)
     {
         interested = true;
         if (IsValidGizmoChest(acd))
         {
             item = new MapMarkerAcdChest(acd, IsValidGizmoChest);
             return(true);
         }
     }
     else if (acd.x178_GizmoType == GizmoType.LoreChest)
     {
         interested = true;
         if (IsValidGizmoLoreChest(acd))
         {
             item = new MapMarkerAcdChest(acd, IsValidGizmoLoreChest);
             return(true);
         }
     }
     else if (acd.x178_GizmoType == GizmoType.Switch)
     {
         interested = true;
         switch (acd.x090_ActorSnoId)
         {
         case 0x0005900F:                         // x1_Global_Chest_CursedChest
         case 0x00059229:                         // x1_Global_Chest_CursedChest_B
             item = new MapMarkerAcdCursedChest(acd, IsValidSwitchCursedChest);
             return(true);
         }
     }
     return(false);
 }
Пример #2
0
		private static bool TryCreateChest(ActorCommonData acd, out IMapMarker item, ref bool interested)
		{
			item = null;
			if (acd.x180_GizmoType == GizmoType.Chest)
			{
				interested = true;
				if (IsValidGizmoChest(acd))
				{
					item = new MapMarkerAcdChest(acd, IsValidGizmoChest);
					return true;
				}
			}
			else if (acd.x180_GizmoType == GizmoType.LoreChest)
			{
				interested = true;
				if (IsValidGizmoLoreChest(acd))
				{
					item = new MapMarkerAcdChest(acd, IsValidGizmoLoreChest);
					return true;
				}
			}
			else if (acd.x180_GizmoType== GizmoType.Switch)
			{
				interested = true;
				switch (acd.x090_ActorSnoId)
				{
					case 0x0005900F: // x1_Global_Chest_CursedChest
					case 0x00059229: // x1_Global_Chest_CursedChest_B
						item = new MapMarkerAcdCursedChest(acd, IsValidSwitchCursedChest);
						return true;
				}
			}
			return false;
		}
Пример #3
0
        public void RemoveMarker(IMapMarker marker)
        {
            marker.MapView = null;
            var markerBase = marker as GoogleMapsMarkerBase;

            foreach (var markerKey in markerBase.Markers.Keys.ToList())
            {
                var mapId = markerBase.Markers[markerKey].Id;
                if (_markers.ContainsKey(mapId))
                {
                    _markers.Remove(mapId);
                }

                try
                {
                    markerBase.Markers[markerKey].Remove();
                }
                catch (Exception e)
                {
                    MvxTrace.Warning("An error occurred while removing marker id = {0}: {1}", mapId, e);
                }
                finally
                {
                    markerBase.DetachMarker(markerKey);
                }
            }
        }
Пример #4
0
        private void HandleMarker(IMapMarker marker)
        {
            if (!_markerTextures.ContainsKey(marker.TextureIdentifier))
            {
                using (var str = marker.GetImage())
                {
                    _markerTextures.Add(marker.TextureIdentifier, Texture2D.FromStream(_device, str));
                }
            }

            if (!marker.Visible)
            {
                return;
            }

            var vp = _map.LatLonToViewPoint(marker.Position);

            vp -= marker.Offset;

            var rect = new MapRectangle((int)Math.Round(vp.X), (int)Math.Round(vp.Y), marker.Size.Width, marker.Size.Height);

            // Check if a part of the thing is drawn at all...
            if (rect.X < -(rect.Width) ||
                rect.Y < -(rect.Height) ||
                rect.X > ViewBounds.X + ViewBounds.Width ||
                rect.Y > ViewBounds.Y + ViewBounds.Height)
            {
                return;
            }

            var srcRect  = _map.GetSourceRectangle(rect);
            var destRect = _map.GetDestRectangle(rect);

            _sBatch.Draw(_markerTextures[marker.TextureIdentifier], destRect.ToRectangle(), srcRect.ToRectangle(), Color.White);
        }
Пример #5
0
        public T GetDataForMarker <T>(IMapMarker marker)
        {
            var keyValuePair = _markers.FirstOrDefault(x => x.Value == marker);

            if (keyValuePair.Key != null)
            {
                return((T)keyValuePair.Key);
            }

            return(default(T));
        }
Пример #6
0
        private void OnExplore(Vector2 pos, int radius, bool showMap)
        {
            var chunkPos = World.WorldToChunk(World.Vec3ToWorld(new Vector3(pos.x, 0, pos.y)));

            //_worldmap.SetOrigin(chunkPos.cx, chunkPos.cy);
            _worldmap.RevealArea(new Vector2(pos.x, pos.y), radius);
            if (_spawnMarker == null && GameManager.instance.clientData.mapFlagIconPrefab != null)
            {
                _spawnMarker = CreateMapMarker(GameManager.instance.clientData.mapFlagIconPrefab, EMapMarkerStyle.Normal);
            }
            _spawnMarker.worldPosition = pos;
            ShowWorldMap(showMap);
        }
Пример #7
0
 private static bool TryCreateMonster(ActorCommonData acd, out IMapMarker item, ref bool interested)
 {
     item = null;
     if (acd.x17C_ActorType == ActorType.Monster)
     {
         interested = true;
         if (IsValidMonster(acd))
         {
             item = new MapMarkerAcdMonster(acd, IsValidMonster);
             return(true);
         }
     }
     return(false);
 }
Пример #8
0
		private static bool TryCreateMonster(ActorCommonData acd, out IMapMarker item, ref bool interested)
		{
			item = null;
			if (acd.x184_ActorType == ActorType.Monster)
			{
				interested = true;
				if (IsValidMonster(acd))
				{
					item = new MapMarkerAcdMonster(acd, IsValidMonster);
					return true;
				}
			}
			return false;
		}
Пример #9
0
 private static bool TryCreateWreckable(ActorCommonData acd, out IMapMarker item, ref bool interested)
 {
     item = null;
     if (acd.x178_GizmoType == GizmoType.BreakableChest ||
         acd.x178_GizmoType == GizmoType.BreakableDoor ||
         acd.x178_GizmoType == GizmoType.DestroyableObject)
     {
         interested = true;
         if (IsValidGizmoWreckableObject(acd))
         {
             item = new MapMarkerAcdWreckable(acd, IsValidGizmoWreckableObject);
             return(true);
         }
     }
     return(false);
 }
Пример #10
0
		private static bool TryCreateWreckable(ActorCommonData acd, out IMapMarker item, ref bool interested)
		{
			item = null;
			if (acd.x180_GizmoType == GizmoType.BreakableChest ||
				acd.x180_GizmoType == GizmoType.BreakableDoor ||
				acd.x180_GizmoType == GizmoType.DestroyableObject)
			{
				interested = true;
				if (IsValidGizmoWreckableObject(acd))
				{
					item = new MapMarkerAcdWreckable(acd, IsValidGizmoWreckableObject);
					return true;
				}
			}
			return false;
		}
Пример #11
0
        public void AddMarker(IMapMarker marker)
        {
            var markerBase = marker as GoogleMapsMarkerBase;

            marker.MapView = this;

            foreach (var keyValuePair in markerBase.GetOptions())
            {
                markerBase.AttachMarker(keyValuePair.Key, _map.AddMarker(keyValuePair.Value));
            }

            foreach (var mapMarker in markerBase.Markers)
            {
                _markers[mapMarker.Value.Id] = marker;
            }
        }
Пример #12
0
 private void RaiseMapMakerClickedEvent(IMapMarker marker)
 {
     this.MarkerClicked?.Invoke(this, new MapMarkerClickEventArgs(marker));
 }
Пример #13
0
 public MapMarkerClickEventArgs(IMapMarker mapMarker)
 {
     this.Marker = mapMarker;
 }
Пример #14
0
 public void RemoveMarker(IMapMarker marker)
 {
     (marker as Marker).Map = null;
 }
Пример #15
0
 public void AddMarker(IMapMarker marker)
 {
     (marker as Marker).Map = _mapView;
 }