worldToTile method
Implementation
@override
Point<int> worldToTile(Point<num> worldPos) {
final gridPoint = _toShift(Point(
(worldPos.x - zero.x) / tileWidth,
(worldPos.y - zero.y) / tileHeight,
));
final shModPeriod = (gridPoint.shift + _oneSixth) % 2.0;
final shMod = shModPeriod % 1.0;
var sh = (gridPoint.shift + _oneSixth).floor();
if (shMod < _oneThird) {
var off = hexOffset(gridPoint.shift);
var bMod = gridPoint.base % 1.0;
if (bMod > 0.5) {
bMod = 1 - bMod;
}
if (bMod < off == shModPeriod < 1) {
sh -= 1;
}
}
var b = (gridPoint.base - hexOffset(gridPoint.shift)).floor();
return _fromShift(ShiftPoint(sh, b));
}