diff --git a/examples/demo.py b/examples/demo.py index 28dad21858a07e5703010571d097119403bb3e4c..e619475f1c2609c093fe04438d580b8c89edca8d 100644 --- a/examples/demo.py +++ b/examples/demo.py @@ -171,7 +171,12 @@ if False: -demo_001 = Demo(Scenario_Generator.load_scenario('./env-data/railway/example_flatland_001.pkl')) -demo_001.set_record_frames('./rendering/frame_{:04d}.bmp') -demo_001.run_demo(60) +demo_001 = Demo(Scenario_Generator.load_scenario('./env-data/railway/temp.pkl')) +demo_001.run_demo(10) demo_001 = None + +if True: + demo_001 = Demo(Scenario_Generator.load_scenario('./env-data/railway/example_flatland_001.pkl')) + demo_001.set_record_frames('./rendering/frame_{:04d}.bmp') + demo_001.run_demo(60) + demo_001 = None diff --git a/flatland/utils/editor.py b/flatland/utils/editor.py index ccff0fa7ca68e9f91aca74ff65e6c84614700ed5..a1909bd20499bb2a52a1696ccf5ec6586fee10f2 100644 --- a/flatland/utils/editor.py +++ b/flatland/utils/editor.py @@ -654,13 +654,15 @@ class EditorModel(object): self.log("load file: ", self.env_filename) # self.env.rail.load_transition_map(self.env_filename, override_gridsize=True) self.env.load(self.env_filename) - - if not self.regen_size_height == self.env.height and not self.regen_size_width == self.env.width: + if not self.regen_size_height == self.env.height or not self.regen_size_width == self.env.width: self.regen_size_height = self.env.height self.regen_size_width = self.env.width self.regenerate(None, 0, self.env) self.env.load(self.env_filename) + self.env.restart_agents() + self.env.reset(False,False) + self.fix_env() self.set_env(self.env) self.redraw() @@ -670,7 +672,12 @@ class EditorModel(object): def save(self): self.log("save to ", self.env_filename, " working dir: ", os.getcwd()) # self.env.rail.save_transition_map(self.env_filename) + temp_store = self.env.agents + # clear agents before save , because we want the "init" position of the agent to expert + self.env.agents = [] self.env.save(self.env_filename) + # reset agents current (current position) + self.env.agents = temp_store def regenerate(self, method=None, nAgents=0, env=None): self.log("Regenerate size", diff --git a/notebooks/Editor2.ipynb b/notebooks/Editor2.ipynb index 5218e6d9538238f56b6187cbc1d8f40e07954953..4b99594cdde568e6e1df0456213da495c303db21 100644 --- a/notebooks/Editor2.ipynb +++ b/notebooks/Editor2.ipynb @@ -78,7 +78,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "<flatland.utils.graphics_pil.PILSVG object at 0x000001C03C7A3080> <class 'flatland.utils.graphics_pil.PILSVG'>\n", + "<flatland.utils.graphics_pil.PILSVG object at 0x000001E6748D1128> <class 'flatland.utils.graphics_pil.PILSVG'>\n", "<super: <class 'PILSVG'>, <PILSVG object>> <class 'super'>\n", " 0000000000000000 Background_#91D1DD.svg\n", "WE 0000000000000100 Gleis_Deadend.svg\n", @@ -149,7 +149,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "82d6d69b02d14d51b773a3c2257844e6", + "model_id": "0fd27ca20d9c411586c8ccae843f3950", "version_major": 2, "version_minor": 0 }, @@ -159,6 +159,40 @@ }, "metadata": {}, "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<flatland.utils.graphics_pil.PILSVG object at 0x000001E674DEF048> <class 'flatland.utils.graphics_pil.PILSVG'>\n", + "<super: <class 'PILSVG'>, <PILSVG object>> <class 'super'>\n", + " 0000000000000000 Background_#91D1DD.svg\n", + "WE 0000000000000100 Gleis_Deadend.svg\n", + "WW EE NN SS 1000010000100001 Gleis_Diamond_Crossing.svg\n", + "WW EE 0000010000000001 Gleis_horizontal.svg\n", + "EN SW 0000100000010000 Gleis_Kurve_oben_links.svg\n", + "WN SE 0000000001001000 Gleis_Kurve_oben_rechts.svg\n", + "ES NW 0001001000000000 Gleis_Kurve_unten_links.svg\n", + "NE WS 0100000000000010 Gleis_Kurve_unten_rechts.svg\n", + "NN SS 1000000000100000 Gleis_vertikal.svg\n", + "NN SS EE WW ES NW SE WN 1001011001101001 Weiche_Double_Slip.svg\n", + "EE WW EN SW 0000110000010001 Weiche_horizontal_oben_links.svg\n", + "EE WW SE WN 0000010001001001 Weiche_horizontal_oben_rechts.svg\n", + "EE WW ES NW 0001011000000001 Weiche_horizontal_unten_links.svg\n", + "EE WW NE WS 0100010000000011 Weiche_horizontal_unten_rechts.svg\n", + "NN SS EE WW NW ES 1001011000100001 Weiche_Single_Slip.svg\n", + "NE NW ES WS 0101001000000010 Weiche_Symetrical.svg\n", + "NN SS EN SW 1000100000110000 Weiche_vertikal_oben_links.svg\n", + "NN SS SE WN 1000000001101000 Weiche_vertikal_oben_rechts.svg\n", + "NN SS NW ES 1001001000100000 Weiche_vertikal_unten_links.svg\n", + "NN SS NE WS 1100000000100010 Weiche_vertikal_unten_rechts.svg\n", + "EW 0000000100000000 Bahnhof_#d50000_Deadend_links.svg\n", + "NS 0010000000000000 Bahnhof_#d50000_Deadend_oben.svg\n", + "WE 0000000000000100 Bahnhof_#d50000_Deadend_rechts.svg\n", + "SN 0000000010000000 Bahnhof_#d50000_Deadend_unten.svg\n", + "EE WW 0000010000000001 Bahnhof_#d50000_Gleis_horizontal.svg\n", + "NN SS 1000000000100000 Bahnhof_#d50000_Gleis_vertikal.svg\n" + ] } ], "source": [ @@ -175,7 +209,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "047cd0c1a66e47ae9fcdbcef6eb6773d", + "model_id": "e4c58e43c54847c7bc4ad0327ca506d8", "version_major": 2, "version_minor": 0 },