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)); }
/// <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--; } }
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); } } } }
public void HandleEvent(Sprites.Sprite sprite, TileEvent ev) { OnHandleEvent(sprite, ev); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }