示例#1
0
        public override CommandResult Evaluate(EntryRenderContext ctx)
        {
            var binaryIndex = GetArgument("BI");

            if (binaryIndex == null || !int.TryParse(binaryIndex, out var id) || ctx.Document.BinaryChunks == null)
            {
                return(new CommandResult(false));
            }

            var chunk = ctx.Document.BinaryChunks.FirstOrDefault(bc => bc.Id == id);

            if (chunk == null)
            {
                return(new CommandResult(false));
            }

            int writtenChars = 0;

            if (Tag != null)
            {
                writtenChars = WriteString(ctx, Tag);
            }

            SpriteObj    = new Sprites.Sprite(chunk.Data);
            SpriteOffset = ctx.RenderPosition + writtenChars;

            return(new CommandResult(true, writtenChars));
        }
示例#2
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="owner"><see cref="_owner"/></param>
 /// <param name="hexColor"><see cref="_hexColor"/></param>
 /// <param name="imageName"><see cref="_imageName"/></param>
 /// <param name="mosaicDisplay"><see cref="_mosaicDisplay"/></param>
 /// <param name="animationElapser"><see cref="_animationElapser"/></param>
 /// <param name="elapserNextStep"><see cref="_elapserNextStep"/></param>
 private DefaultRender(Sprites.Sprite owner, string hexColor, string imageName, bool mosaicDisplay,
                       Enums.ElapserUse?animationElapser, double elapserNextStep)
 {
     _owner            = owner;
     _imageName        = imageName;
     _mosaicDisplay    = mosaicDisplay;
     _brushByStatus    = new Dictionary <KeyValuePair <int, Enums.Direction>, Brush>();
     _elapserNextStep  = elapserNextStep;
     _animationElapser = animationElapser;
     _hexColor         = hexColor;
     if (animationElapser.HasValue)
     {
         _topIndex = 0;
         while (File.Exists(Tools.GetImagePath(Engine.ResourcesPath, string.Concat(_imageName, _topIndex))))
         {
             _topIndex++;
         }
         _topIndex--;
     }
 }
示例#3
0
        protected void OnHandleEvent(Sprites.Sprite sprite, TileEvent ev, bool handled = false)
        {
            if (handled)
            {
                return;
            }

            if (ev.Info.IsGlobal)
            {
                return;
            }

            if (ev.Info == EventInfo.Warp)
            {
                for (int i = 0; i < level.Events.Count; i++)
                {
                    if (level.Events[i].Info == EventInfo.WarpTarget)
                    {
                        sprite.Position = new Vector2(level.Events[i].TileData.X * GFX.TileSet.TileSize, level.Events[i].TileData.Y * GFX.TileSet.TileSize);
                    }
                }
            }
        }
示例#4
0
 public void HandleEvent(Sprites.Sprite sprite, TileEvent ev)
 {
     OnHandleEvent(sprite, ev);
 }
示例#5
0
 /// <summary>
 /// Creates an animated image instance with mosaic display.
 /// </summary>
 /// <param name="owner"><see cref="_owner"/></param>
 /// <param name="imageName"><see cref="_imageName"/></param>
 /// <param name="animationElapser"><see cref="_animationElapser"/></param>
 /// <param name="elapserNextStep"><see cref="_elapserNextStep"/></param>
 /// <returns><see cref="DefaultRender"/></returns>
 internal static DefaultRender AnimatedImageWithMosaic(Sprites.Sprite owner, string imageName,
                                                       Enums.ElapserUse animationElapser, double elapserNextStep)
 {
     return(new DefaultRender(owner, null, imageName, true, animationElapser, elapserNextStep));
 }
示例#6
0
 /// <summary>
 /// Creates an image instance with mosaic display.
 /// </summary>
 /// <param name="owner"><see cref="_owner"/></param>
 /// <param name="imageName"><see cref="_imageName"/></param>
 /// <returns><see cref="DefaultRender"/></returns>
 internal static DefaultRender ImageWithMosaic(Sprites.Sprite owner, string imageName)
 {
     return(new DefaultRender(owner, null, imageName, true, null, 0));
 }
示例#7
0
 /// <summary>
 /// Creates a basic image instance.
 /// </summary>
 /// <param name="owner"><see cref="_owner"/></param>
 /// <param name="imageName"><see cref="_imageName"/></param>
 /// <returns><see cref="DefaultRender"/></returns>
 internal static DefaultRender BasicImage(Sprites.Sprite owner, string imageName)
 {
     return(new DefaultRender(owner, null, imageName, false, null, 0));
 }
示例#8
0
 /// <summary>
 /// Creates a plain color instance.
 /// </summary>
 /// <param name="owner"><see cref="_owner"/></param>
 /// <param name="hexColor"><see cref="_hexColor"/></param>
 /// <returns><see cref="DefaultRender"/></returns>
 internal static DefaultRender PlainColor(Sprites.Sprite owner, string hexColor)
 {
     return(new DefaultRender(owner, hexColor, null, false, null, 0));
 }