Spaces:
Running
Running
import traffic from './traffic'; | |
export default class highwayTraffic extends traffic { | |
constructor (options) { | |
super(options); | |
this.lightThreshold = 30; | |
this.heavyThreshold = 58; | |
this.trafficDirection = null; | |
} | |
// determine traffic direction | |
calculateTrafficDirection () { | |
if (this.cell.highway.onramp) | |
console.log('onramp'); | |
let cells = this.cell.surrounding(); | |
// north / south highways | |
if (this.cell.highway.tile.direction == 'ns' && !this.cell.highway.onramp) | |
if (!cells.e.highway && cells.w.highway && !cells.w.highway.onramp) | |
this.trafficDirection = 'nb'; | |
else if (!cells.w.highway && cells.e.highway && !cells.e.highway.onramp) | |
this.trafficDirection = 'sb'; | |
else if (cells.e.highway && cells.w.highway && !cells.w.highway.onramp) | |
this.trafficDirection = 'nb'; | |
else if (cells.w.highway && cells.e.highway && !cells.e.highway.onramp) | |
this.trafficDirection = 'sb'; | |
// east / west highways | |
if (this.cell.highway.tile.direction == 'ew' && !this.cell.highway.onramp) | |
if (!cells.s.highway && cells.n.highway && !cells.n.highway.onramp) | |
this.trafficDirection = 'eb'; | |
else if (!cells.n.highway && cells.s.highway && !cells.s.highway.onramp) | |
this.trafficDirection = 'wb'; | |
else if (cells.s.highway && cells.n.highway && !cells.n.highway.onramp) | |
this.trafficDirection = 'eb'; | |
else if (cells.n.highway && cells.s.highway && !cells.s.highway.onramp) | |
this.trafficDirection = 'wb'; | |
// north / south onramps | |
if (this.cell.highway.onramp && cells.n.highway.tile.direction == 'ew') | |
this.trafficDirection = 'wb'; | |
if (this.cell.highway.onramp && cells.w.highway.tile.direction == 'ns') | |
this.trafficDirection = 'sb'; | |
if (['nb','wb'].includes(this.trafficDirection)) | |
this.cell.highway.reverseAnimation = false; | |
else | |
this.cell.highway.reverseAnimation = true; | |
return this.cell.highway.reverseAnimation; | |
} | |
} |