// automatically generated by the FlatBuffers compiler, do not modify

package MyGame.Example;

import java.nio.*;
import java.lang.*;
import java.util.*;
import com.google.flatbuffers.*;

public class AbilityT {
  private long id;
  private long distance;

  public long getId() { return id; }

  public void setId(long id) { this.id = id; }

  public long getDistance() { return distance; }

  public void setDistance(long distance) { this.distance = distance; }


  public AbilityT() {
    this.id = 0L;
    this.distance = 0L;
  }
}

