public Improvement(Field location, ImprovementMetadata metadata)
        {
            Metadata = metadata;
            Id       = metadata.EntityId;

            if (metadata.IsEmpty)
            {
                return;
            }

            var model              = location.World.Model;
            var flagTexture        = location.World.Resources.Get <EditorTilesets>().Miscellaneous.Flag;
            var improvementTexture = metadata.Tile;

            improvementSprite = new Sprite
            {
                Position    = model.GetTopLeftCorner(location.Position),
                Scale       = improvementTexture.Scale(model.Size),
                Texture     = improvementTexture.Texture,
                TextureRect = improvementTexture.Bounds
            };

            flagSprite = new Sprite
            {
                Color       = metadata.Owner.Value.ToRGB(),
                Position    = model.GetTopLeftCorner(location.Position) + FlagOffset(model),
                Scale       = flagTexture.Scale(model.Size),
                Texture     = flagTexture.Texture,
                TextureRect = flagTexture.Bounds
            };
        }
 public ImprovementBrush(ImprovementMetadata metadata) : base(metadata)
 {
 }
 public static void AddImprovementBrush(this List <ImageBrushPair> list, Image image, ImprovementMetadata metadata)
 {
     list.Add(new ImageBrushPair(
                  brush: new ImprovementBrush(
                      metadata: metadata
                      ),
                  image: image
                  ));
 }
 public void Create(ImprovementMetadata metadata)
 {
     Improvement = new Improvement(this, metadata);
 }