@@ -6,14 +6,24 @@ import org.nlogo.api.{ Context, MersenneTwisterFast, SimpleJobOwner, Workspace }
66import org .nlogo .core .{ AgentKind , LogoList , Nobody }
77import org .nlogo .nvm .{ ExclusiveJob , Procedure , Reporter }
88import org .nlogo .prim .{ _constboolean , _constdouble , _constlist , _conststring , _nobody }
9- import org .nlogo .workspace .{ AbstractWorkspaceScala , Plotting }
9+ import org .nlogo .workspace .{ AbstractWorkspace , Plotting }
1010
1111object RNG {
12- def apply (ctx : Context ): RNG = ctx.workspace match {
13- case p : Plotting if p.plotRNG eq ctx.getRNG => PlotRNG
14- case w : Workspace if w.mainRNG eq ctx.getRNG => MainRNG
15- case w : Workspace if w.auxRNG eq ctx.getRNG => MainRNG
16- case _ => LocalRNG
12+ def apply (ctx : Context ): RNG = {
13+ if (ctx.workspace.workspaceContext.workspaceGUI) {
14+ ctx.workspace match {
15+ case p : Plotting if p.plotRNG eq ctx.getRNG => PlotRNG
16+ case w : Workspace if w.mainRNG eq ctx.getRNG => MainRNG
17+ case w : Workspace if w.auxRNG eq ctx.getRNG => MainRNG
18+ case _ => LocalRNG
19+ }
20+ } else {
21+ ctx.workspace match {
22+ case w : Workspace if w.mainRNG eq ctx.getRNG => MainRNG
23+ case w : Workspace if w.auxRNG eq ctx.getRNG => MainRNG
24+ case _ => LocalRNG
25+ }
26+ }
1727 }
1828}
1929
@@ -27,16 +37,22 @@ case object AuxRNG extends RNG {
2737 override def apply (ws : Workspace ): MersenneTwisterFast = ws.auxRNG
2838}
2939case object PlotRNG extends RNG {
30- override def apply (ws : Workspace ): MersenneTwisterFast = ws match {
31- case p : Plotting => p.plotRNG
32- case _ => ws.auxRNG
40+ override def apply (ws : Workspace ): MersenneTwisterFast = {
41+ if (ws.workspaceContext.workspaceGUI) {
42+ ws match {
43+ case p : Plotting => p.plotRNG
44+ case _ => ws.auxRNG
45+ }
46+ } else {
47+ ws.auxRNG
48+ }
3349 }
3450}
3551case object LocalRNG extends RNG {
3652 override def apply (ws : Workspace ): MersenneTwisterFast = ws.mainRNG.clone
3753}
3854
39- class Evaluator (modelID : Int , name : String , ws : AbstractWorkspaceScala , parentWS : AbstractWorkspaceScala ) {
55+ class Evaluator (modelID : Int , name : String , ws : AbstractWorkspace , parentWS : AbstractWorkspace ) {
4056
4157 val mainOwner = new SimpleJobOwner (name, MainRNG (ws), AgentKind .Observer )
4258 val auxOwner = new SimpleJobOwner (name, AuxRNG (ws), AgentKind .Observer )
0 commit comments