@Override protected Boolean updateVisibility(LiveGameData gameData, boolean isEditorMode) { super.updateVisibility(gameData, isEditorMode); ScoringInfo scoringInfo = gameData.getScoringInfo(); if (!startedPositionsInitialized) initStartedFromPositions(scoringInfo); if (RaceInfosWidget.visible()) return false; currentLap.update(scoringInfo.getLeadersVehicleScoringInfo().getLapsCompleted()); if (currentLap.hasChanged() && currentLap.getValue() > 0 && (short) (Math.random() * randMulti.getValue()) == 0 || isEditorMode) { // fetch what data is shown others-gaps 1-places gained/lost if (scoringInfo.getLeadersVehicleScoringInfo().getFinishStatus().isFinished() || isEditorMode) shownData = 1; else shownData = (short) (Math.random() * 2); if (scoringInfo.getGamePhase() == GamePhase.SESSION_OVER) visibleEnd = scoringInfo.getSessionNanos() + visibleTime.getDelayNanos() * 3; else visibleEnd = scoringInfo.getSessionNanos() + visibleTime.getDelayNanos(); clearArrayValues(scoringInfo.getNumVehicles()); FillArrayValues(1, scoringInfo, isEditorMode, gameData); if (!isEditorMode) forceCompleteRedraw(true); return true; } if (scoringInfo.getSessionNanos() < visibleEnd || isEditorMode) { // how many on the same lap? int onlap = 0; for (int j = 0; j < scoringInfo.getNumVehicles(); j++) { if (scoringInfo.getVehicleScoringInfo(j).getLapsCompleted() == scoringInfo.getLeadersVehicleScoringInfo().getLapsCompleted()) onlap++; } carsOnLeadLap.update(onlap); if (carsOnLeadLap.hasChanged() && !isEditorMode) { FillArrayValues(onlap, scoringInfo, false, gameData); forceCompleteRedraw(true); } return true; } return false; }
@Override protected void drawWidget( Clock clock, boolean needsCompleteRedraw, LiveGameData gameData, boolean isEditorMode, TextureImage2D texture, int offsetX, int offsetY, int width, int height) { AmbientTemp.update((int) Math.floor(gameData.getWeatherInfo().getAmbientTemperature())); TrackTemp.update((int) Math.floor(gameData.getWeatherInfo().getTrackTemperature())); if (ShowAmbiant.getValue() && (needsCompleteRedraw || AmbientTemp.hasChanged())) { dsAmbient.draw(offsetX, offsetY, Loc.ambiant_temp, texture); dsAmbientTemp.draw(offsetX, offsetY, AmbientTemp.getValueAsString(), texture); } if (needsCompleteRedraw || TrackTemp.hasChanged()) { dsTrack.draw(offsetX, offsetY, Loc.track_temp, texture); dsTrackTemp.draw(offsetX, offsetY, TrackTemp.getValueAsString(), texture); } }
@Override protected Boolean updateVisibility(LiveGameData gameData, boolean isEditorMode) { super.updateVisibility(gameData, isEditorMode); ScoringInfo scoringInfo = gameData.getScoringInfo(); cveh.update(scoringInfo.getViewedVehicleScoringInfo().getDriverId()); cpit.update(scoringInfo.getViewedVehicleScoringInfo().isInPits()); if (QualTimeWidget.visible()) return false; if ((cveh.hasChanged() || cpit.hasChanged()) && !isEditorMode) { forceCompleteRedraw(true); visibleEnd = scoringInfo.getSessionNanos() + visibleTime.getDelayNanos(); return true; } if (scoringInfo.getSessionNanos() < visibleEnd || cpit.getValue()) return true; return false; }