in mae_envs/modules/walls.py [0:0]
def build_world_step(self, env, floor, floor_size):
# Create rooms
walls = outside_walls(self.grid_size, rgba=self.outside_wall_rgba,
use_low_wall_height=self.low_outside_walls)
failures = 0
if self.random_room_number:
self.num_actual_rooms = env._random_state.randint(self.num_rooms) + 1
else:
self.num_actual_rooms = self.num_rooms
while len(walls) < self.num_actual_rooms + 3:
new_wall = choose_new_split(walls, self.min_room_size, random_state=env._random_state)
if new_wall is None:
walls = outside_walls(self.grid_size, rgba=self.outside_wall_rgba,
use_low_wall_height=self.low_outside_walls)
failures += 1
else:
walls.append(new_wall)
if failures == self.num_tries:
return False
# Add doors
new_walls, doors = split_walls(walls[4:], self.door_size, random_state=env._random_state)
if env._random_state.uniform() < self.prob_outside_walls:
walls = walls[:4] + new_walls
else:
walls = new_walls
# Convert doors into mujoco frame
if self.gen_door_obs:
self.door_obs = construct_door_obs(np.array(doors), floor_size, self.grid_size)
walls_to_mujoco(floor, floor_size, self.grid_size, walls, friction=self.friction)
add_walls_to_grid(env.placement_grid, walls)
return True