Example #1
0
        private int GetOutput()
        {
            if (!this.GetPin("Area").IsConnected())
            {
                return(-1);
            }

            var area = AreaFactory.Create(this.GetPin("Area").GetValue());

            if (!(area is RectArea))
            {
                return(-2);
            }

            if (this.GetPin("TileID").IsConnected() && !int.TryParse(this.GetPin("TileID").GetValue(), out var _))
            {
                return(-2);
            }

            return(this.GetTiles().Count());
        }
Example #2
0
        public override void Update(GameTime gameTime)
        {
            if (!this.GetPin("Copy").IsConnected() || this.GetPin("Copy").GetValue() != "1")
            {
                return;
            }

            if (!this.GetPin("Area").IsConnected())
            {
                this.Settings["Value"] = "";
                return;
            }

            var area = AreaFactory.Create(this.GetPin("Area").GetValue());

            if (!(area is RectArea))
            {
                return;
            }

            this.Settings["Value"] = string.Join(";", this.GetTiles().Select(t => t.ToString()));
        }
Example #3
0
        private IEnumerable <TileInfo> GetTiles()
        {
            var tiles = new List <TileInfo>();

            var area = AreaFactory.Create(this.GetPin("Area").GetValue());

            if (!(area is RectArea rectArea))
            {
                return(tiles);
            }

            var areaRect = rectArea.GetTileArea().GetRect();

            for (var y = areaRect.Y; y < areaRect.Y + areaRect.Height; y++)
            {
                for (var x = areaRect.X; x < areaRect.X + areaRect.Width; x++)
                {
                    tiles.Add(new TileInfo(x, y));
                }
            }

            return(tiles);
        }