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); }
public override void PlayerConnect(Player player) { //PathOfModifiers.Instance.Logger.Debug($"PlayerConnect: {Main.netMode}"); if (Main.LocalPlayer == player) { var mapBorder = ModContent.GetInstance <MapBorder>(); MapBorder.ClearActiveBounds(); } }
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; }
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); }
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; } } }
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)); } }
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)); } }
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)); } }
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); }
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)); } }
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)); } }
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)); } }
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)); } }
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; } } }
/// <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); } }
private void Awake() { s_map_border = this; }
//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(); }
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); } } } } }