Dart Documentationbot_textureTextureAnimationRequest

TextureAnimationRequest class

class TextureAnimationRequest {
  final EventHandle<EventArgs> _startEventHandle = new EventHandle<EventArgs>();
  final String _texturePrefix;
  final int _frameCount;
  final Coordinate _offset;
  final int _delay;
  final String _initialFrame;
  final Coordinate _initialFrameOffset;

  bool _done = false;
  int _frame = null;

  TextureAnimationRequest(this._texturePrefix, this._frameCount,
      this._offset, {int delay: 0, int startFrame: 0,
    String initialFrame: null, Coordinate initialFrameOffset: null}) :
      this._delay = delay,
      this._initialFrame = initialFrame,
      this._initialFrameOffset = initialFrameOffset {
    assert(_delay >= 0);
    assert(_texturePrefix != null);
    assert(_frameCount > 0);
    assert(_offset.isValid);
  }

  bool get fresh => _frame == null;
  bool get done => _done;

  EventRoot<EventArgs> get started => _startEventHandle;

  void update() {
    if(_frame == null) {
      _frame = -_delay;
    } else if(_frame < (_frameCount - 1)){
      _frame++;
      assert(_frame < _frameCount);
    } else {
      _done = true;
    }

    if(_frame == 0 && !_done) {
      _startEventHandle.fireEvent(EventArgs.empty);
    }
  }

  Tuple<Coordinate, String> _getFrameDetails() {
    var frameName;
    var offset = _offset;
    if(_frame < 0 && _initialFrame != null) {
      frameName = _initialFrame;
      if(_initialFrameOffset != null) {
        offset = _initialFrameOffset;
      }
    } else {

      // if we're delayed (_frame < 0), then draw frame 0
      final frame = (_frame < 0) ? 0 : _frame;

      var frameString = frame.toInt().toString();
      while(frameString.length < 4) {
        frameString = "0$frameString";
      }

      frameName = "${_texturePrefix}_$frameString.png";
    }

    return new Tuple(offset, frameName);
  }
}

Constructors

new TextureAnimationRequest(String _texturePrefix, int _frameCount, Coordinate _offset, [int delay = 0, int startFrame = 0, String initialFrame = null, Coordinate initialFrameOffset = null]) #

TextureAnimationRequest(this._texturePrefix, this._frameCount,
    this._offset, {int delay: 0, int startFrame: 0,
  String initialFrame: null, Coordinate initialFrameOffset: null}) :
    this._delay = delay,
    this._initialFrame = initialFrame,
    this._initialFrameOffset = initialFrameOffset {
  assert(_delay >= 0);
  assert(_texturePrefix != null);
  assert(_frameCount > 0);
  assert(_offset.isValid);
}

Properties

final bool done #

bool get done => _done;

final bool fresh #

bool get fresh => _frame == null;

final Type runtimeType #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

final EventRoot<EventArgs> started #

EventRoot<EventArgs> get started => _startEventHandle;

Operators

bool operator ==(other) #

inherited from Object

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

bool operator ==(other) => identical(this, other);

Methods

int hashCode() #

inherited from Object

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

external int hashCode();

noSuchMethod(String name, List args) #

inherited from Object

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

external Dynamic noSuchMethod(String name, List args);

const Object() #

inherited from Object

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

const Object();

new TextureAnimationRequest(String _texturePrefix, int _frameCount, Coordinate _offset, [int delay = 0, int startFrame = 0, String initialFrame = null, Coordinate initialFrameOffset = null]) #

TextureAnimationRequest(this._texturePrefix, this._frameCount,
    this._offset, {int delay: 0, int startFrame: 0,
  String initialFrame: null, Coordinate initialFrameOffset: null}) :
    this._delay = delay,
    this._initialFrame = initialFrame,
    this._initialFrameOffset = initialFrameOffset {
  assert(_delay >= 0);
  assert(_texturePrefix != null);
  assert(_frameCount > 0);
  assert(_offset.isValid);
}

String toString() #

inherited from Object

Returns a string representation of this object.

external String toString();

void update() #

void update() {
  if(_frame == null) {
    _frame = -_delay;
  } else if(_frame < (_frameCount - 1)){
    _frame++;
    assert(_frame < _frameCount);
  } else {
    _done = true;
  }

  if(_frame == 0 && !_done) {
    _startEventHandle.fireEvent(EventArgs.empty);
  }
}