package com.igorcrevar.rolloverchuck.objects.boxes;
import com.badlogic.gdx.math.Vector3;
/**
* @author crewce
* At one time only one box can exist in one region
* This is mandatory and will not change
*/
public class BoxRegion implements IBoxRegion {
protected float posX;
protected float posY;
protected float cellCenterOffset;
protected boolean isFree;
public BoxRegion(float posX, float posY, float cellCenterOffset) {
this.posX = posX;
this.posY = posY;
this.cellCenterOffset = cellCenterOffset;
this.isFree = true;
}
@Override
public void take() {
isFree = false;
}
@Override
public void free() {
isFree = true;
}
@Override
public boolean isFreeAndNotNear(Vector3 basePosition, Vector3 tmpVector,
float minDistanceSquared) {
if (!isFree) {
return false;
}
populatePosition(tmpVector);
return tmpVector.dst2(basePosition) >= minDistanceSquared;
}
@Override
public boolean isFree() {
return isFree;
}
@Override
public void populatePosition(Vector3 pos) {
pos.set(posX + cellCenterOffset, 0.0f, posY + cellCenterOffset);
}
}