public Border getCeiling(boolean ignoreSeparator) { if (getIE().onBottom(mascot.getAnchor())) { FloorCeiling fc = getIE().getBottom(mascot.getAnchor()); if (!checkLayering(fc.getArea())) { mascot.setCurFC(null); return NotOnVisibleBorder.INSTANCE; } mascot.setCurFC(fc); return fc; } if (getWorkArea().getTopBorder().isOn(mascot.getAnchor())) { if (!ignoreSeparator || isScreenTopBottom()) { mascot.setCurFC(null); return getWorkArea().getTopBorder(); } } mascot.setCurFC(null); return NotOnBorder.INSTANCE; }
/* * getFloor() - Environment check. Checks both the currently active windows * and the bottom of the screen. Returns the border if on one. Controls the * current Floor/Ceiling attribute of each mascot. */ public Border getFloor(boolean ignoreSeparator) { if (getIE().onTop(mascot.getAnchor())) { FloorCeiling fc = getIE().getTop(mascot.getAnchor()); if (!checkLayering(fc.getArea())) { mascot.setCurFC(null); return NotOnVisibleBorder.INSTANCE; } if (currentWorkArea == null) currentWorkArea = impl.getWorkArea(); // Don't let the mascot get footing on any window ceiling within 64px // of the top of the screen. if (fc.getY() >= currentWorkArea.getTop() + 64) { mascot.setCurFC(fc); return getIE().getTop(mascot.getAnchor()); } } if (getWorkArea().getBottomBorder().isOn(mascot.getAnchor())) { if (!ignoreSeparator || isScreenTopBottom()) { mascot.setCurFC(null); return getWorkArea().getBottomBorder(); } } mascot.setCurFC(null); return NotOnBorder.INSTANCE; }