func DirectionBetween(from, to types.Room) types.Direction { for _, exit := range from.GetExits() { nextLocation := from.NextLocation(exit) nextRoom := GetRoomByLocation(nextLocation, from.GetZoneId()) if nextRoom == to { return exit } } return types.DirectionNone }
func GetNeighbors(room types.Room) []types.Room { neighbors := []types.Room{} for _, dir := range room.GetExits() { coords := room.NextLocation(dir) neighbor := GetRoomByLocation(coords, room.GetZoneId()) if neighbor != nil { neighbors = append(neighbors, neighbor) } } for _, id := range room.GetLinks() { neighbor := GetRoom(id) if neighbor != nil { neighbors = append(neighbors, neighbor) } } return neighbors }