/// <summary> /// Get TilePointLayer from position parameter /// </summary> /// <param name="position"></param> /// <returns>TilePointLayer object if exists otherwise null</returns> public TilePointLayer GetTilePointLayer(Position position) { TilePointLayer tilePointLayer = null; var tilePoint = tiles.GetTilePoint(position.X, position.Y, false); if (tilePoint != null) { tilePointLayer = tilePoint.GetLayer(position.Z); } return(tilePointLayer); }
private MapBase InitializeMap(int id, string name, int width, int height) { var tiles = new TilePointTable(); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { var tp = new TilePoint(x, y); var tpl = new TilePointLayer(tp, 1); tpl.Movement = MovementTypes.Walk; tpl.SetLayer(new TilePointTileLayer(1)); tp.SetLayer(tpl); } } return(new MapBase(id, name, tiles)); }
private bool CanCreatureMove(MovementTypes movementType, Direction direction, TilePointLayer to) { if (to.Movement == MovementTypes.Walk) { return(true); } if (to.Movement == MovementTypes.Blocked) { return(false); } if (direction == Direction.East && to.Movement.HasFlag(MovementTypes.BlockedWest)) { return(false); } if (direction == Direction.West && to.Movement.HasFlag(MovementTypes.BlockedEast)) { return(false); } if (direction == Direction.North && to.Movement.HasFlag(MovementTypes.BlockedSouth)) { return(false); } if (direction == Direction.South && to.Movement.HasFlag(MovementTypes.BlockedNorth)) { return(false); } if (!to.Movement.HasFlag(movementType)) { return(false); } return(true); }
private void SetTileValues(TilePoint tp) { if (tp == null) { this.tbTileX.Text = @"xxx"; this.tbTileY.Text = @"xxx"; ResetTileLayers(); } else { this.tbTileX.Text = tp.X.ToString(CultureInfo.InvariantCulture); this.tbTileY.Text = tp.Y.ToString(CultureInfo.InvariantCulture); if (tp.Layers.Count > 0) { this.rbLayerN3.ForeColor = tp.HasLayer(-3) ? Color.Green : Color.Red; this.rbLayerN2.ForeColor = tp.HasLayer(-2) ? Color.Green : Color.Red; this.rbLayerN1.ForeColor = tp.HasLayer(-1) ? Color.Green : Color.Red; this.rbLayer0.ForeColor = tp.HasLayer(0) ? Color.Green : Color.Red; this.rbLayerP1.ForeColor = tp.HasLayer(1) ? Color.Green : Color.Red; this.rbLayerP2.ForeColor = tp.HasLayer(2) ? Color.Green : Color.Red; this.rbLayerP3.ForeColor = tp.HasLayer(3) ? Color.Green : Color.Red; // Defaults this.tbMovementType.Text = @"Unknown"; this.pbTileLayer1.Image = Resources.sys_base; this.tbTileIdLayer1.Text = @"None"; this.pbTileLayer2.Image = Resources.sys_base; this.tbTileIdLayer2.Text = @"None"; this.pbTileLayer3.Image = Resources.sys_base; this.tbTileIdLayer3.Text = @"None"; TilePointLayer tpLayer = tp.GetLayer(GetSelectedTilePointLayer()); if (tpLayer != null) { this.tbMovementType.Text = tpLayer.Movement.ToString(); if (tpLayer.HasLayer(0)) { string tileId = tpLayer.GetLayer(0).TileId.ToString(CultureInfo.InvariantCulture); this.pbTileLayer1.Image = tileInfoController.GetBitmapForTileId(tileId); this.tbTileIdLayer1.Text = tileId; } if (tpLayer.HasLayer(1)) { string tileId = tpLayer.GetLayer(1).TileId.ToString(CultureInfo.InvariantCulture); this.pbTileLayer2.Image = tileInfoController.GetBitmapForTileId(tileId); this.tbTileIdLayer2.Text = tileId; } if (tpLayer.HasLayer(2)) { string tileId = tpLayer.GetLayer(2).TileId.ToString(CultureInfo.InvariantCulture); this.pbTileLayer3.Image = tileInfoController.GetBitmapForTileId(tileId); this.tbTileIdLayer3.Text = tileId; } } } else { ResetTileLayers(); } } }