use of pcgen.base.math.OrderedPair in project pcgen by PCGen.
the class FaceToken method getSquaresToken.
/**
* Get squares sub token
*
* @param display
* @return squares sub token
*/
public static String getSquaresToken(CharacterDisplay display) {
OrderedPair face = getFace(display.getCharID());
String retString = "";
double squareSize = SettingsHandler.getGame().getSquareSize();
if (CoreUtility.doublesEqual(face.getPreciseY().doubleValue(), 0.0)) {
retString = new DecimalFormat("#.#").format(face.getPreciseX().doubleValue() / squareSize);
} else {
retString = new DecimalFormat("#.#").format(face.getPreciseX().doubleValue() / squareSize) + " x " + new DecimalFormat("#.#").format(face.getPreciseY().doubleValue() / squareSize);
}
return retString;
}
use of pcgen.base.math.OrderedPair in project pcgen by PCGen.
the class FaceToken method getFace.
public static OrderedPair getFace(CharID id) {
String varName = ControlUtilities.getControlToken(Globals.getContext(), CControl.FACE);
if (varName == null) {
varName = "Face";
}
ResultFacet resultFacet = FacetLibrary.getFacet(ResultFacet.class);
return (OrderedPair) resultFacet.getGlobalVariable(id, varName);
}
use of pcgen.base.math.OrderedPair in project pcgen by PCGen.
the class FaceToken method getShortToken.
/**
* Get SHORT sub token
*
* @param display
* @return SHORT sub toke
*/
public static String getShortToken(CharacterDisplay display) {
OrderedPair face = getFace(display.getCharID());
String retString = "";
if (CoreUtility.doublesEqual(face.getPreciseY().doubleValue(), 0.0)) {
retString = Globals.getGameModeUnitSet().displayDistanceInUnitSet(face.getPreciseX().doubleValue()) + Globals.getGameModeUnitSet().getDistanceUnit();
} else {
retString = Globals.getGameModeUnitSet().displayDistanceInUnitSet(face.getPreciseX().doubleValue()) + Globals.getGameModeUnitSet().getDistanceUnit() + " x " + Globals.getGameModeUnitSet().displayDistanceInUnitSet(face.getPreciseY().doubleValue()) + Globals.getGameModeUnitSet().getDistanceUnit();
}
return retString;
}
use of pcgen.base.math.OrderedPair in project pcgen by PCGen.
the class FaceToken method parseNonEmptyToken.
@Override
protected ParseResult parseNonEmptyToken(LoadContext context, Race race, String value) {
if (ControlUtilities.hasControlToken(context, CControl.FACE)) {
return new ParseResult.Fail("FACE: LST Token is disabled when FACE: control is used", context);
}
if (value.indexOf(',') == -1) {
value = value + ',' + 0;
}
FormatManager<OrderedPair> formatManager = (FormatManager<OrderedPair>) context.getReferenceContext().getFormatManager("ORDEREDPAIR");
ScopeInstance scopeInst = context.getActiveScope();
LegalScope scope = scopeInst.getLegalScope();
PCGenModifier<OrderedPair> modifier;
try {
modifier = context.getVariableContext().getModifier(MOD_IDENTIFICATION, value, MOD_PRIORITY, scope, formatManager);
} catch (IllegalArgumentException iae) {
return new ParseResult.Fail(getTokenName() + " Modifier " + MOD_IDENTIFICATION + " had value " + value + " but it was not valid: " + iae.getMessage(), context);
}
OrderedPair pair = modifier.process(null);
if (pair.getPreciseX().doubleValue() < 0.0) {
return new ParseResult.Fail(getTokenName() + " had value " + value + " but first item cannot be negative", context);
}
if (pair.getPreciseY().doubleValue() < 0.0) {
return new ParseResult.Fail(getTokenName() + " had value " + value + " but second item cannot be negative", context);
}
if (!context.getVariableContext().isLegalVariableID(scope, VAR_NAME)) {
return new ParseResult.Fail(getTokenName() + " internal error: found invalid var name: " + VAR_NAME + ", Modified on " + race.getClass().getSimpleName() + ' ' + race.getKeyName(), context);
}
VarModifier<OrderedPair> vm = new VarModifier<>(VAR_NAME, scope, modifier);
context.getObjectContext().addToList(race, ListKey.MODIFY, vm);
return ParseResult.SUCCESS;
}
use of pcgen.base.math.OrderedPair in project pcgen by PCGen.
the class FaceToken method parseFace.
protected ParseResult parseFace(LoadContext context, PCTemplate fObj, String value) {
if (ControlUtilities.hasControlToken(context, CControl.FACE)) {
return new ParseResult.Fail("FACE: LST Token is disabled when FACE: control is used", context);
}
if (value.indexOf(',') == -1) {
value = value + ',' + 0;
}
@SuppressWarnings("unchecked") FormatManager<OrderedPair> formatManager = (FormatManager<OrderedPair>) context.getReferenceContext().getFormatManager("ORDEREDPAIR");
ScopeInstance scopeInst = context.getActiveScope();
LegalScope scope = scopeInst.getLegalScope();
PCGenModifier<OrderedPair> modifier;
try {
modifier = context.getVariableContext().getModifier(MOD_IDENTIFICATION, value, MOD_PRIORITY, scope, formatManager);
} catch (IllegalArgumentException iae) {
return new ParseResult.Fail(getTokenName() + " Modifier SET had value " + value + " but it was not valid: " + iae.getMessage(), context);
}
OrderedPair pair = modifier.process(null);
if (pair.getPreciseX().doubleValue() < 0.0) {
return new ParseResult.Fail(getTokenName() + " had value " + value + " but first item cannot be negative", context);
}
if (pair.getPreciseY().doubleValue() < 0.0) {
return new ParseResult.Fail(getTokenName() + " had value " + value + " but second item cannot be negative", context);
}
String varName = VAR_NAME;
if (!context.getVariableContext().isLegalVariableID(scope, varName)) {
return new ParseResult.Fail(getTokenName() + " internal error: found invalid fact name: " + varName + ", Modified on " + fObj.getClass().getSimpleName() + ' ' + fObj.getKeyName(), context);
}
VarModifier<OrderedPair> vm = new VarModifier<>(varName, scope, modifier);
context.getObjectContext().addToList(fObj, ListKey.MODIFY, vm);
return ParseResult.SUCCESS;
}
Aggregations