コード例 #1
0
        public Unit(Field location, UnitMetadata metadata)
        {
            Metadata = metadata;
            Id       = metadata.EntityId;

            if (metadata.IsEmpty)
            {
                return;
            }

            var model         = location.World.Model;
            var position      = location.Position;
            var hexModel      = location.World.Model;
            var resources     = location.World.Resources;
            var emblemTexture = resources.Get <EditorTilesets>().Miscellaneous.Emblem;

            var unitSize = hexModel.Size / 2;

            emblemSprite = new Sprite
            {
                Color       = metadata.Owner.Value.ToRGB(),
                Position    = hexModel.GetTopLeftCorner(position),
                Scale       = emblemTexture.Scale(hexModel.Size),
                Texture     = emblemTexture.Texture,
                TextureRect = emblemTexture.Bounds
            };

            unitSprite = new Sprite
            {
                Position    = hexModel.GetShiftedTopLeftCenter(position, unitSize),
                Scale       = metadata.Tile.Scale(unitSize),
                Texture     = metadata.Tile.Texture,
                TextureRect = metadata.Tile.Bounds
            };
        }
コード例 #2
0
 public static double GetConversionFactor(this SpeedUnit unit)
 {
     return(UnitMetadata.For(unit).ConversionFactor);
 }
コード例 #3
0
 public UnitBrush(UnitMetadata metadata) : base(metadata)
 {
 }
コード例 #4
0
 public static void AddUnitBrush(this List <ImageBrushPair> list, Image image, UnitMetadata metadata)
 {
     list.Add(new ImageBrushPair(
                  brush: new UnitBrush(
                      metadata: metadata
                      ),
                  image: image
                  ));
 }
コード例 #5
0
 public void Create(UnitMetadata metadata)
 {
     Unit = new Unit(this, metadata);
 }