示例#1
0
        private string GetDesignerRegionAttribute(RegionPosition region, BorderLayoutDesigner.BorderLayoutClickAction action)
        {
            string name = string.Format("{0}_{1}", region, action);

            designerRegions.Add(new DesignerRegion(CurrentDesigner, name, false));
            return(string.Format("{0}=\"{1}\"", DesignerRegion.DesignerRegionAttributeName, designerRegions.Count - 1));
        }
示例#2
0
        internal void ResetRegion(RegionPosition region)
        {
            switch (region)
            {
            case RegionPosition.North:
                this.north = null;
                break;

            case RegionPosition.South:
                this.south = null;
                break;

            case RegionPosition.East:
                this.east = null;
                break;

            case RegionPosition.West:
                this.west = null;
                break;

            case RegionPosition.Center:
                this.center = null;
                break;

            default:
                throw new ArgumentOutOfRangeException("region");
            }
        }
        public void ReplacePath()
        {
            var regionPosition = new RegionPosition(new Position(new LatLon(50.97695325, 11.02396488)));
            var newPath        = Core.Helper.LoadHelper.ReplacePath(Server.Models.ServerConstants.REGION_FILE, regionPosition);

            Assert.IsNotNull(newPath);
        }
        public void RegionPositionTest()
        {
            // standart constructor
            var regionPos = new RegionPosition(0, 0);

            Assert.IsNotNull(regionPos);

            // Constructor RegionPosition out of a Position
            var position = new Position(0, 0);

            regionPos = new RegionPosition(position);
            Assert.IsNotNull(regionPos);

            // Constructor RegionPosition out of a PositionI
            var positionI = new PositionI(0, 0);

            regionPos = new RegionPosition(positionI);
            Assert.IsNotNull(regionPos);

            // Tests the + Operator
            var regionPos2 = new RegionPosition(1, 1);

            regionPos += regionPos2;
            Assert.AreEqual(regionPos2, regionPos);

            // Tests the == Operator
            Assert.True(regionPos == regionPos2);

            // Tests the Equals funktion
            Assert.True(regionPos.Equals(regionPos2));
        }
示例#5
0
        private void ClearRegion(RegionPosition region)
        {
            IDesignerHost host = (IDesignerHost)GetService(typeof(IDesignerHost));

            if (host != null)
            {
                using (DesignerTransaction transaction = host.CreateTransaction("Clear region"))
                {
                    IComponentChangeService changeService =
                        (IComponentChangeService)GetService(typeof(IComponentChangeService));

                    try
                    {
                        changeService.OnComponentChanging(this.layout,
                                                          TypeDescriptor.GetProperties(this.layout)[region.ToString()]);
                        this.layout.ResetRegion(region);
                    }
                    finally
                    {
                        changeService.OnComponentChanged(this.layout,
                                                         TypeDescriptor.GetProperties(this.layout)[region.ToString()],
                                                         null, null);
                    }

                    this.UpdateDesignTimeHtml();
                    transaction.Commit();
                }

                this.Tag.SetDirty(true);
            }
        }
示例#6
0
        private string GetDesignerRegionAttribute(RegionPosition region, BorderLayoutClickAction action)
        {
            string name = "{0}_{1}".FormatWith(region, action);

            this.designerRegions.Add(new DesignerRegion(this, name, false));

            return("{0}=\"{1}\"".FormatWith(DesignerRegion.DesignerRegionAttributeName, this.designerRegions.Count - 1));
        }
示例#7
0
 public MapRegionLayer(MapLayer layer, RegionPosition pos)
 {
     Layer    = layer;
     Position = pos;
     FilePath = Path.Combine(layer.Directory, ".regions",
                             $"{Position.X}_{Position.Z}.png");
     Load();
 }
示例#8
0
        public LevelMapRegion(LevelMap map, RegionPosition pos)
        {
            Map      = map;
            Position = pos;
            FilePath = Path.Combine(map.TilesDirectory, "meta",
                                    $"{Position.X}_{Position.Z}.json");

            Load();
        }
示例#9
0
        public void Enqueue(RegionPosition regionPos, MapRegionLayer region)
        {
            var entry = new TileScaleEntry(regionPos, region);

            foreach (var runner in _runners)
            {
                runner.Enqueue(entry);
            }
        }
示例#10
0
        public LevelMapRegion GetRegionLayer(RegionPosition regionPos)
        {
            lock (_regionSync)
            {
                LevelMapRegion region;
                if (!_regions.TryGetValue(regionPos, out region))
                {
                    region = new LevelMapRegion(this, regionPos);
                    _regions.Add(regionPos, region);
                }

                return(region);
            }
        }
示例#11
0
        private MapRegionLayer GetRegionLayer(RegionPosition regionPos)
        {
            lock (_cleanupSync)
            {
                MapRegionLayer layer;
                if (!_regions.TryGetValue(regionPos, out layer))
                {
                    layer = new MapRegionLayer(this, regionPos);
                    _regions.Add(regionPos, layer);
                }

                return(layer);
            }
        }
示例#12
0
        public void PositionITest()
        {
            // standart Constructor
            var position = new PositionI(0, 0);

            Assert.IsNotNull(position);

            // Constructor Position out of a ReagionPosition
            var regionPos = new RegionPosition(0, 0);
            var cellPos   = new CellPosition(0, 0);

            position = new PositionI(regionPos, cellPos);
            Assert.IsNotNull(position);

            position = new PositionI(new Position(0, 0));
            Assert.IsNotNull(position);

            // tests the + Operator
            position = new PositionI(1, 1);
            var position2 = new PositionI(0, 0);

            position2 += position;

            Assert.AreEqual(position, position2);

            // tests the - Operator
            position -= position2;

            Assert.AreNotEqual(position2, position);
            Assert.AreEqual(new PositionI(0, 0), position);

            // tests the == Operator
            Assert.True(new PositionI(0, 0) == position);

            // tests the Equals function
            Assert.True(position.Equals(new PositionI(0, 0)));

            // test Distance with PositionI
            var dist = position.Distance(position2);

            Assert.IsNotNull(dist);

            // test Distance with PositionI
            var dist2 = position2.Distance(new Position(0, 0));

            Assert.IsNotNull(dist2);
            Assert.AreEqual(dist, dist2);
        }
示例#13
0
        public void MapRegion()
        {
            // Test with a RegionPosition as Input
            var regionPosition = new RegionPosition(new Position(new LatLon(50.97695325, 11.02396488)));
            var region         = new Core.Models.Region(regionPosition);

            Assert.IsNotNull(region);
            Assert.IsInstanceOf <Core.Models.Region>(region);

            // Test with a Region as Input
            var region2 = new Region(region);

            Assert.IsNotNull(region2);
            Assert.IsInstanceOf <Core.Models.Region>(region2);
            Assert.AreEqual(region.RegionPosition, region2.RegionPosition);

            // Test with a RegionPosition and an TerrainDefinition as Input
            int[] res    = { 0, 0, 0, 0, 0 };
            var   terDef = new Core.Models.Definitions.TerrainDefinition(Core.Models.Definitions.EntityType.Grassland, res, true, true, 4, 5, 6);
            // var region3 = new Region(regionPosition, TerDef);
        }
示例#14
0
        private string GetDesignerRegionAttribute(RegionPosition region, BorderLayoutDesigner.BorderLayoutClickAction action)
        {
            string name = "{0}_{1}".FormatWith(region, action);
            designerRegions.Add(new DesignerRegion(CurrentDesigner, name, false));

            return "{0}=\"{1}\"".FormatWith(DesignerRegion.DesignerRegionAttributeName, designerRegions.Count-1);
        }
示例#15
0
        private void ClearRegion(RegionPosition region)
        {
            IDesignerHost host = (IDesignerHost)GetService(typeof(IDesignerHost));

            if (host != null)
            {
                using (DesignerTransaction transaction = host.CreateTransaction("Clear region"))
                {
                    IComponentChangeService changeService =
                        (IComponentChangeService)GetService(typeof(IComponentChangeService));

                    try
                    {
                        changeService.OnComponentChanging(this.layout,
                                                          TypeDescriptor.GetProperties(this.layout)[region.ToString()]);
                        this.layout.ResetRegion(region);
                    }
                    finally
                    {
                        changeService.OnComponentChanged(this.layout,
                                                         TypeDescriptor.GetProperties(this.layout)[region.ToString()],
                                                         null, null);
                    }

                    this.UpdateDesignTimeHtml();
                    transaction.Commit();
                }

                this.Tag.SetDirty(true);
            }
        }
示例#16
0
 internal void ResetRegion(RegionPosition region)
 {
     switch (region)
     {
         case RegionPosition.North:
             this.north = null;
             break;
         case RegionPosition.South:
             this.south = null;
             break;
         case RegionPosition.East:
             this.east = null;
             break;
         case RegionPosition.West:
             this.west = null;
             break;
         case RegionPosition.Center:
             this.center = null;
             break;
         default:
             throw new ArgumentOutOfRangeException("region");
     }
 }
示例#17
0
        /// <summary>
        /// Gets the adjacent regions, which can be affected.
        /// </summary>
        /// <returns>The adjacent regions.</returns>
        /// <param name="regionManagerC">Region manager c.</param>
        /// <param name="position">Current Position od the selected building.</param>
        /// <param name="buildpoint">PositionI from the new unit.</param>
        private ConcurrentBag <RegionPosition> GetAdjacentRegions(RegionManagerController regionManagerC, RegionPosition position, PositionI buildpoint)
        {
            var list        = new ConcurrentBag <RegionPosition>();
            var surlist     = LogicRules.SurroundRegions;
            var regionSizeX = Constants.REGION_SIZE_X;
            var regionSizeY = Constants.REGION_SIZE_Y;

            var currentpos    = LogicRules.GetSurroundedFields(buildpoint);
            var currentregion = regionManagerC.RegionManager.GetRegion(buildpoint.RegionPosition);

            foreach (var checkingpos in currentpos)
            {
                if (regionManagerC.GetRegion(checkingpos.RegionPosition) != currentregion)
                {
                    list.Add(regionManagerC.RegionManager.GetRegion(checkingpos.RegionPosition).RegionPosition);
                }
            }
            return(list);
        }
示例#18
0
        /// <summary>
        /// Check all possible regions around the start region of a unit and add them to a ConcurrentBag.
        /// </summary>
        /// <returns>The adjacent regions.</returns>
        /// <param name="regionManagerC">Region manager c.</param>
        /// <param name="position">PositionI of the region.</param>
        private ConcurrentBag <RegionPosition> GetAdjacentRegions(RegionManagerController regionManagerC, RegionPosition position)
        {
            var list        = new ConcurrentBag <RegionPosition>();
            var surlist     = LogicRules.SurroundRegions;
            var regionSizeX = Constants.REGION_SIZE_X / 2;
            var regionSizeY = Constants.REGION_SIZE_Y / 2;

            if (position.RegionX <= regionSizeX && position.RegionY <= regionSizeY)
            {
                var tempReg = position + surlist[LogicRules.SurroundRegions.Length];
                if (regionManagerC.GetRegion(tempReg).Exist)
                {
                    list.Add(tempReg);
                }

                for (int index = 0; index < 2; ++index)
                {
                    tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }
            }
            else if (position.RegionX > regionSizeX && position.RegionY <= regionSizeY)
            {
                for (int index = 1; index < 4; ++index)
                {
                    var tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }
            }
            else if (position.RegionX > regionSizeX && position.RegionY > regionSizeY)
            {
                for (int index = 3; index < 7; ++index)
                {
                    var tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }
            }
            else
            {
                for (int index = 5; index < 8; ++index)
                {
                    var tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }
            }
            return(list);
        }
示例#19
0
        public void PositionTest()
        {
            // Standart Constructor
            var position = new Position(0, 0);

            Assert.IsNotNull(position);

            // Constructor Position out of PositionI
            position = new Position(new PositionI(0, 0));
            Assert.IsNotNull(position);

            // Constructor Position out of Latitude and Longitude
            position = new Position(new LatLon(50.97695325, 11.02396488));
            Assert.IsNotNull(position);

            // Constructor Position out of a ReagionPosition
            var regionPos = new RegionPosition(0, 0);

            position = new Position(regionPos);
            Assert.IsNotNull(position);

            // Constructor Position out of a RegionPosition and a CellPosition
            var cellPos = new CellPosition(0, 0);

            position = new Position(regionPos, cellPos);
            Assert.IsNotNull(position);

            // Constructor Position out of a RegionPositionX, a RegionPositionY, a CellPositionX and a CellPositionY
            position = new Position(regionPos.RegionX, regionPos.RegionY, cellPos.CellX, cellPos.CellY);
            Assert.IsNotNull(position);

            // tests the + Operator
            position = new Position(new LatLon(50.97695325, 11.02396488));
            var position2 = new Position(0, 0);

            position2 += position;

            Assert.AreEqual(position, position2);

            // tests the - Operator
            position -= position2;

            Assert.AreNotEqual(position2, position);
            Assert.AreEqual(new Position(0, 0), position);

            // tests the == Operator
            Assert.True(new Position(0, 0) == position);

            // tests the Equals function
            Assert.True(position.Equals(new Position(0, 0)));

            // test Distance with Position
            var dist = position.Distance(position2);

            Assert.IsNotNull(dist);

            // test Distance with PositionI
            var dist2 = position2.Distance(new PositionI(0, 0));

            Assert.IsNotNull(dist2);
            Assert.AreEqual(dist, dist2);
        }
示例#20
0
 public BorderLayoutRegion(BorderLayout layout, RegionPosition region)
 {
     this.region = region;
     this.layout = layout;
 }
示例#21
0
        /// <summary>
        /// Gets the adjacent regions, which can be affected.
        /// </summary>
        /// <returns>The adjacent regions.</returns>
        /// <param name="regionManagerC">Region manager c.</param>
        /// <param name="position">Current Position od the selected building.</param>
        /// <param name="buildpoint">PositionI from the new unit.</param>
        private ConcurrentBag <RegionPosition> GetAdjacentRegions(RegionManagerController regionManagerC, RegionPosition position, PositionI buildpoint)
        {
            var list        = new ConcurrentBag <RegionPosition>();
            var surlist     = LogicRules.SurroundRegions;
            var regionSizeX = Constants.REGION_SIZE_X;
            var regionSizeY = Constants.REGION_SIZE_Y;

            if (buildpoint.CellPosition.CellX <= m_drawArea)
            {
                var tempReg = position + surlist[LogicRules.SurroundRegions.Length - 1];
                if (regionManagerC.GetRegion(tempReg).Exist)
                {
                    list.Add(tempReg);
                }

                for (int index = 0; index < 4; ++index)
                {
                    tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }
            }
            else if (buildpoint.CellPosition.CellY <= m_drawArea)
            {
                for (int index = 5; index < LogicRules.SurroundRegions.Length; ++index)
                {
                    var tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }

                var reg = position + surlist[0];
                if (regionManagerC.GetRegion(reg).Exist)
                {
                    list.Add(reg);
                }
                reg = position + surlist[1];
                if (regionManagerC.GetRegion(reg).Exist)
                {
                    list.Add(reg);
                }
            }
            else if (buildpoint.CellPosition.CellX >= regionSizeX - m_drawArea)
            {
                for (int index = 1; index < 6; ++index)
                {
                    var tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }
            }
            else if (buildpoint.CellPosition.CellY >= regionSizeY - m_drawArea)
            {
                for (int index = 3; index < LogicRules.SurroundRegions.Length; ++index)
                {
                    var tempReg = position + surlist[index];
                    if (regionManagerC.GetRegion(tempReg).Exist)
                    {
                        list.Add(tempReg);
                    }
                }
            }
            return(list);
        }
示例#22
0
 public BorderLayoutRegion(BorderLayout layout, RegionPosition region)
 {
     this.region = region;
     this.layout = layout;
 }
示例#23
0
 public TileScaleEntry(RegionPosition regionPos, MapRegionLayer region)
 {
     Position       = regionPos;
     _region        = region;
     _updatedBlocks = region.UpdatedBlocks;
 }
 public void JsonToTerrain()
 {
     var regionPosition = new RegionPosition(new Position(new LatLon(50.97695325, 11.02396488)));
     var newPath        = Core.Helper.LoadHelper.ReplacePath(Server.Models.ServerConstants.REGION_FILE, regionPosition);
     // var json = await Core.RequestAsync(newpath);
 }
示例#25
0
 /// <summary>
 /// Gets the region.
 /// </summary>
 /// <returns>The region.</returns>
 /// <param name="regionPosition">Region position.</param>
 public virtual Region GetRegion(RegionPosition regionPosition)
 {
     throw new NotImplementedException();
 }