#pragma once

// 4J Stu - In Java TickNextTickData implements Comparable<TickNextTickData>
// We don't need to do that as it is only as helper for the java sdk sorting operations

class TickNextTickData
{
private:
	static __int64 C;

public:
	int x, y, z, tileId;
	__int64 m_delay;

private:
	__int64 c;

public:
	TickNextTickData(int x, int y, int z, int tileId);

	bool equals(const void *o) const;
	int hashCode() const;
	TickNextTickData *delay(__int64 l);
	int compareTo(const TickNextTickData *tnd) const;

	static bool compare_fnct(const TickNextTickData &x, const TickNextTickData &y);
	static int hash_fnct(const TickNextTickData &k);
	static bool eq_test(const TickNextTickData &x, const TickNextTickData &y);
};

typedef struct
{
	int operator() (const TickNextTickData &k) const { return TickNextTickData::hash_fnct (k); }

} TickNextTickDataKeyHash;

typedef struct
{
	bool operator() (const TickNextTickData &x, const TickNextTickData &y) const { return TickNextTickData::eq_test (x, y); }
} TickNextTickDataKeyEq;

typedef struct
{
	bool operator() (const TickNextTickData &x, const TickNextTickData &y) const { return TickNextTickData::compare_fnct (x, y); }

} TickNextTickDataKeyCompare;