/** Updates all train data and refreshes the GUI. */ public static void timeTick(Date date, int delta) { if (!isPaused) { refreshUI += delta; double time = date.getHours() * 60 * 60 + date.getMinutes() * 60 + date.getSeconds(); for (int i = 0; i < trainList.size(); i++) { // Update the data for each train. boolean isSelectedByTNC = false; if (!isSolo) { isSelectedByTNC = tncUI.uiSelect(trainList.get(i).id); } trainList.get(i).timeTick(time, ((double) (delta)) / 1000.0, isSolo, isSelectedByTNC); } if (refreshUI >= 1000) { // Refresh the train module GUI. if (isSolo) { // If TNM is running solo, figure out the new time. soloTime += 1; if (soloTime >= 24 * 60 * 60) { soloTime = soloTime % (24 * 60 * 60); } int hrs = (int) soloTime / (60 * 60); int min = ((int) soloTime / 60) % 60; int sec = (int) soloTime - (hrs * 60 * 60 + min * 60); soloDate = new Date(93, 2, 2, hrs, min, sec); } else { soloTime = time; } refreshUI = refreshUI % 1000; setSelectedId(selectedId); } } }