public MapObject(DungeonObjectId id, Vector3 initialPosition, Vector2 size, bool onFloor) { _sprite = AttachChild(new MapSprite <DungeonObjectId>( id, DrawLayer.Underlay, SpriteKeyFlags.UseCylindrical, SpriteFlags.FlipVertical | (onFloor ? SpriteFlags.Floor | SpriteFlags.MidAligned : SpriteFlags.Billboard)) { Size = size, Position = initialPosition }); _sprite.Selected += (sender, args) => args.RegisterHit(this); On <SlowClockEvent>(e => { if (_sprite.FrameCount == 1) { Exchange.Unsubscribe <SlowClockEvent>(this); } _sprite.Frame += e.Delta; }); }
public MapObjectSprite(DungeonObjectId id, Vector3 position, Vector2 size, bool onFloor) : base(Handlers) { _id = id; _position = position; _onFloor = onFloor; _size = size; }
public MapObject(DungeonObjectId id, Vector3 initialPosition, Vector2 size, bool onFloor) : base(Handlers) { _initialPosition = initialPosition; _sprite = new MapSprite <DungeonObjectId>(id, DrawLayer.Underlay, 0, SpriteFlags.FlipVertical | (onFloor ? SpriteFlags.Floor | SpriteFlags.MidAligned : SpriteFlags.Billboard)); _sprite.Size = size; Children.Add(_sprite); }