Exemplo n.º 1
0
 private void ResetWalls()
 {
     mapBorders    = new MapBorder[4];
     mapBorders[0] = new MapBorder(wallParent.Find("Left"), WallType.Left, mapSize.x / 2);
     mapBorders[1] = new MapBorder(wallParent.Find("Top"), WallType.Top, mapSize.y / 2);
     mapBorders[2] = new MapBorder(wallParent.Find("Right"), WallType.Right, mapSize.x / 2);
     mapBorders[3] = new MapBorder(wallParent.Find("Bottom"), WallType.Bottom, mapSize.y / 2);
 }
Exemplo n.º 2
0
 public override void PlayerConnect(Player player)
 {
     //PathOfModifiers.Instance.Logger.Debug($"PlayerConnect: {Main.netMode}");
     if (Main.LocalPlayer == player)
     {
         var mapBorder = ModContent.GetInstance <MapBorder>();
         MapBorder.ClearActiveBounds();
     }
 }
Exemplo n.º 3
0
        private void OnMouseWheel(object sender, MouseWheelEventArgs e)
        {
            mapJustZoomed = true;
            double currentValue = MapBorder.GetScaleTransform().ScaleX;

            MapZoomSlider.Value += (currentValue - lastMapScalingValue) / 0.2;

            lastMapZoomSliderValue = MapZoomSlider.Value;
            lastMapScalingValue    = currentValue;
        }
Exemplo n.º 4
0
        private Thickness GetMapLocationAsMargin(Pin pin, double width, double height)
        {
            double scalingFactor = (MapImage.ActualWidth / (MapImage.Source as BitmapSource).PixelWidth) * MapBorder.GetScaleTransform().ScaleX;

            double translationX = MapBorder.GetTranslateTransform().X;
            double translationY = MapBorder.GetTranslateTransform().Y;

            Thickness thickness = new Thickness(
                (pin.xDistance * scalingFactor + translationX) - (width / 2),
                (pin.yDistance * scalingFactor + translationY) - (height / 2),
                0, 0);

            return(thickness);
        }
Exemplo n.º 5
0
        private void MapZoomSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            if (!mapJustZoomed)
            {
                double currentValue = ((Slider)sender).Value;
                double delta        = lastMapZoomSliderValue - currentValue;

                if (MapBorder.IsLoaded)
                {
                    MapBorder.ScaleContent(MapBorderCenter, delta < 0, Math.Abs(delta));
                    lastMapZoomSliderValue = currentValue;
                }
            }
        }
Exemplo n.º 6
0
 static int Stop(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         MapBorder obj = (MapBorder)ToLua.CheckObject(L, 1, typeof(MapBorder));
         obj.Stop();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Exemplo n.º 7
0
 static int SetColor(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         MapBorder         obj  = (MapBorder)ToLua.CheckObject(L, 1, typeof(MapBorder));
         UnityEngine.Color arg0 = ToLua.ToColor(L, 2);
         obj.SetColor(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Exemplo n.º 8
0
 static int SetSize(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         MapBorder obj  = (MapBorder)ToLua.CheckObject(L, 1, typeof(MapBorder));
         float     arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
         obj.SetSize(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Exemplo n.º 9
0
    private MapBorder ClosestBorder()
    {
        MapBorder closest     = mapBorders[0];
        float     minDistance = int.MaxValue;

        foreach (MapBorder border in mapBorders)
        {
            float distance = Vector3.Distance(border.Transform.position, player.position);
            if (distance < minDistance)
            {
                minDistance = distance;
                closest     = border;
            }
        }

        return(closest);
    }
Exemplo n.º 10
0
    static int get_cellSize(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            MapBorder           obj = (MapBorder)o;
            UnityEngine.Vector2 ret = obj.cellSize;
            ToLua.Push(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index cellSize on a nil value" : e.Message));
        }
    }
Exemplo n.º 11
0
    static int set_space(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            MapBorder obj  = (MapBorder)o;
            float     arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
            obj.space = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index space on a nil value" : e.Message));
        }
    }
Exemplo n.º 12
0
    static int set_cellSize(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            MapBorder           obj  = (MapBorder)o;
            UnityEngine.Vector2 arg0 = ToLua.ToVector2(L, 2);
            obj.cellSize = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index cellSize on a nil value" : e.Message));
        }
    }
Exemplo n.º 13
0
    static int get_space(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            MapBorder obj = (MapBorder)o;
            float     ret = obj.space;
            LuaDLL.lua_pushnumber(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index space on a nil value" : e.Message));
        }
    }
Exemplo n.º 14
0
 private void UpdateSearchAreaCircle()
 {
     if (IsLoaded)
     {
         if (currentBasePin != null && AddressTextBox.Text != "" && !SavedListingsButton.FilterActive)
         {
             SearchAreaCircle.Width = oneKmCircleSize * int.Parse(Filters.FilterDict["AddressProx"].ToString())
                                      * (MapImage.ActualWidth / (MapImage.Source as BitmapSource).PixelWidth) * MapBorder.GetScaleTransform().ScaleX;
             SearchAreaCircle.Height     = SearchAreaCircle.Width;
             SearchAreaCircle.Margin     = GetMapLocationAsMargin(currentBasePin, SearchAreaCircle.Width, SearchAreaCircle.Height);
             SearchAreaCircle.Visibility = Visibility.Visible;
         }
         else
         {
             SearchAreaCircle.Visibility = Visibility.Hidden;
         }
     }
 }
Exemplo n.º 15
0
        /// <summary>
        /// creates random connection tiles at <see cref="mapBorder"/> in startMap, and on the opposite border of endMap 
        /// </summary>
        /// <param name="border"></param>
        /// <param name="thickness"></param>
        /// <param name="coverage"></param>
        /// <param name="startMap"></param>
        /// <param name="startPosition"></param>
        /// <param name="startTileStem"></param>
        /// <param name="endMap"></param>
        /// <param name="endTileStem"></param>
        /// TODO(philipp): no thickness needed for bordermapconnection tile thingies?
        public void CreateBorderMapConnection(MapBorder border, int coverage, Map startMap, string startTileStem, Map endMap, string endTileStem)
        {
            #region NullChecking
            if (startMap == null)
            {
                throw new ArgumentNullException(nameof(startMap));
            }
            if (string.IsNullOrEmpty(startTileStem))
            {
                throw new ArgumentNullException(nameof(startTileStem));
            }
            if (endMap == null)
            {
                throw new ArgumentNullException(nameof(endMap));
            }
            if (string.IsNullOrEmpty(endTileStem))
            {
                throw new ArgumentNullException(nameof(endTileStem));
            }
            #endregion NullChecking

            int startX = 0;
            int startY = 0;
            int endX = 0;
            int endY = 0;

            MapBorder oppositeMapBorder = MapBorder.None;

            switch (border)
            {
                case MapBorder.West:
                    startX = 0;
                    startY = 0;
                    endX = 1;
                    endY = startMap.Height;
                    oppositeMapBorder = MapBorder.East;
                    break;
                case MapBorder.North:
                    startX = 0;
                    startY = 0;
                    endX = startMap.Width;
                    endY = 1;
                    oppositeMapBorder = MapBorder.South;
                    break;
                case MapBorder.East:
                    startX = startMap.Width - 1;
                    startY = 0;
                    endX = startMap.Width;
                    endY = startMap.Height;
                    oppositeMapBorder = MapBorder.West;
                    break;
                case MapBorder.South:
                    startX = 0;
                    startY = startMap.Height - 1;
                    endX = startMap.Width;
                    endY = startMap.Height;
                    oppositeMapBorder = MapBorder.North;
                    break;
            }
            var rememberedTilePositions = new List<Point>();
            for (var y = startY; y < endY; ++y)
            {
                for (var x = startX; x < endX; ++x)
                {
                    if (_random.Next(0, 100) <= coverage)
                    {
                        var tileIndex = startMap.PointToIndex(x, y);
                        var tile = startMap.Tiles.ElementAt(tileIndex);
                        if (!tile.IsSolid)
                        {
                            //TODO(philipp): CLEAN UP THIS MESS!
                            var subTile = Tile.GetRandomTile(startTileStem);
                            subTile.Position = startMap.IndexToPoint(tileIndex);
                            rememberedTilePositions.Add(subTile.Position);
                            var connectionStartTile = startMap.AddSubTile(subTile, subTile.Position);
                            connectionStartTile.Position = subTile.Position;
                            connectionStartTile.SteppedOn += OnTileStepOn;
                        }
                    }
                }
            }
            var endTile = Tile.GetRandomTile(endTileStem);
            foreach (var rememberedTilePosition in rememberedTilePositions)
            {
                Point endPosition = Point.Zero;
                var startPosition = rememberedTilePosition;
                switch (oppositeMapBorder)
                {
                    case MapBorder.North:
                        endPosition = new Point(startPosition.X, 0);
                        break;
                    case MapBorder.West:
                        endPosition = new Point(0, startPosition.Y);
                        break;
                    case MapBorder.East:
                        endPosition = new Point(endMap.Width - 1, startPosition.Y);
                        break;
                    case MapBorder.South:
                        endPosition = new Point(startPosition.X, endMap.Height - 1);
                        break;
                }
                var connectionEndTile = endMap.AddSubTile(endTile, endPosition, true);
                connectionEndTile.Position = startPosition;
                connectionEndTile.SteppedOn += OnTileStepOn;

                var mapConnectionStart = new MapConnection
                {
                    End = endPosition,
                    EndMap = endMap,
                    Start = rememberedTilePosition,
                };
                startMap.AddConnection(mapConnectionStart);
                var mapConnectionEnd = new MapConnection
                {
                    End = rememberedTilePosition,
                    EndMap = startMap,
                    Start = endPosition
                };
                endMap.AddConnection(mapConnectionEnd);
            }
        }
Exemplo n.º 16
0
 private void Awake()
 {
     s_map_border = this;
 }
Exemplo n.º 17
0
        //public Map[] openMaps;

        ////TODO: read maxOpenMaps from config
        ////TODO: receive maxOpenMaps from server
        //public int maxOpenMaps = 255;

        //public override void Initialize()
        //{
        //    openMaps = new Map[maxOpenMaps];
        //}

        //public int AddOpenMap(Map map, int ID = -1, bool overwrite = false)
        //{
        //    if (ID > -1)
        //    {
        //        if (!overwrite && openMaps[ID] != null)
        //            throw new Exception("Cannot add open map to the world by ID because the ID is already taken.");

        //        openMaps[ID] = map;
        //        return ID;
        //    }

        //    for (int i = 0; i < maxOpenMaps; i++)
        //    {
        //        if (openMaps[i] == null)
        //        {
        //            openMaps[i] = map;
        //            return i;
        //        }
        //    }
        //    return -1;
        //}
        //public void RemoveOpenMap(int ID)
        //{
        //    openMaps[ID] = null;
        //}

        public override void Initialize()
        {
            var mapBorder = ModContent.GetInstance <MapBorder>();

            MapBorder.ClearActiveBounds();
        }
Exemplo n.º 18
0
        public void AddBorderTiles(MapBorder border, string stem, int thickness, int coverage)
        {
            int startX = 0;
            int startY = 0;
            int endX = 0;
            int endY = 0;

            switch (border)
            {
                case MapBorder.West:
                    startX = 0;
                    startY = 0;
                    endX = thickness;
                    endY = Height;
                    break;
                case MapBorder.North:
                    startX = 0;
                    startY = 0;
                    endX = Width;
                    endY = thickness;
                    break;
                case MapBorder.East:
                    startX = Width - thickness;
                    startY = 0;
                    endX = Width;
                    endY = Height;
                    break;
                case MapBorder.South:
                    startX = 0;
                    startY = Height - thickness;
                    endX = Width;
                    endY = Height;
                    break;
            }

            for (var y = startY; y < endY; ++y)
            {
                for (var x = startX; x < endX; ++x)
                {
                    if (_random.Next(0, 100) <= coverage)
                    {
                        var tileIndex = PointToIndex(x, y);
                        var tile = _tiles[tileIndex];
                        tile.Type = stem.ToTileType();
                        if (!tile.IsSolid)
                        {
                            var subTile = Tile.GetRandomTile(stem);
                            subTile.Position = IndexToPoint(tileIndex);
                            tile.AddSubtile(subTile);
                        }
                    }
                }
            }
        }