import { getDatacenterIdOfTick } from "../../util/timeline"; import { setCurrentDatacenter } from "../topology/building"; export const GO_TO_TICK = "GO_TO_TICK"; export const SET_LAST_SIMULATED_TICK = "SET_LAST_SIMULATED_TICK"; export function incrementTick() { return (dispatch, getState) => { const { currentTick } = getState(); dispatch(goToTick(currentTick + 1)); }; } export function goToTick(tick) { return (dispatch, getState) => { const state = getState(); let sections = []; if (state.currentExperimentId !== -1) { const sectionIds = state.objects.path[ state.objects.experiment[state.currentExperimentId].pathId ].sectionIds; if (sectionIds) { sections = sectionIds.map( sectionId => state.objects.section[sectionId] ); } } const newDatacenterId = getDatacenterIdOfTick(tick, sections); if (state.currentDatacenterId !== newDatacenterId) { dispatch(setCurrentDatacenter(newDatacenterId)); } dispatch({ type: GO_TO_TICK, tick }); }; } export function setLastSimulatedTick(tick) { return { type: SET_LAST_SIMULATED_TICK, tick }; }