class_name CanonicalWowWorldPosition
extends RefCounted

## Immutable WoW 3.3.5a world position in client/server axis order and yards.
## X and Y are the horizontal coordinates reported by the client and world
## server; Z is height. This type deliberately does not expose a [Vector3].

var x_yards: float:
	get:
		return _x_yards

var y_yards: float:
	get:
		return _y_yards

var z_yards: float:
	get:
		return _z_yards

var _x_yards: float
var _y_yards: float
var _z_yards: float


## Creates a canonical position without changing precision or validating map bounds.
func _init(x_yards_value: float, y_yards_value: float, z_yards_value: float) -> void:
	_x_yards = x_yards_value
	_y_yards = y_yards_value
	_z_yards = z_yards_value
