From a44ea70bcbe47081c173b68961264b85acc3d074 Mon Sep 17 00:00:00 2001
From: Erik Nygren <erik.nygren@sbb.ch>
Date: Tue, 23 Jul 2019 15:42:48 -0400
Subject: [PATCH] initial changes to crossings. Now not detected anymore as
 unusable switches

---
 flatland/envs/observations.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/flatland/envs/observations.py b/flatland/envs/observations.py
index 2887610b..99139900 100644
--- a/flatland/envs/observations.py
+++ b/flatland/envs/observations.py
@@ -399,7 +399,12 @@ class TreeObsForRailEnv(ObservationBuilder):
                 break
 
             cell_transitions = self.env.rail.get_transitions(*position, direction)
-            total_transitions = bin(self.env.rail.get_full_transitions(*position)).count("1")
+            transition_bit = bin(self.env.rail.get_full_transitions(*position))
+            total_transitions = transition_bit.count("1")
+
+            # Check if crossing is found --> Not an unusable switch
+            if int(transition_bit, 2) == int('1000010000100001', 2):
+                total_transitions = 1
             num_transitions = np.count_nonzero(cell_transitions)
 
             exploring = False
-- 
GitLab